@echo off :: Prüfe, ob Admin-Rechte vorhanden sind NET SESSION >nul 2>&1 IF %ERRORLEVEL% NEQ 0 ( echo Starte Skript mit Admin-Rechten ... powershell -Command "Start-Process cmd -ArgumentList '/c \"%~f0\"' -Verb RunAs" exit ) :: Maschine auswählen echo Waehle die Maschinenart: echo [1] BP Maschine echo [2] MX Maschine set /p MACHINE_TYPE="Waehle die Maschinenart (1 oder 2): " :: Passenden Treiber-Link setzen if "%MACHINE_TYPE%"=="1" ( set DRIVER_URL="https://www.dropbox.com/scl/fi/36dumrg063qu5tauyctnu/SharpBP-Treiber.zip?rlkey=9osqutqtqegs7ug271p4y9xov&st=uo01gbdx&dl=1" set MACHINE_NAME="BP Maschine" ) else if "%MACHINE_TYPE%"=="2" ( set DRIVER_URL="https://www.dropbox.com/scl/fi/auhqd2mpiutej1nu4acqr/SharpMX-Treiber.zip?rlkey=mplmbchth7i9317xndoehlvj4&st=27rk3l5k&dl=1" set MACHINE_NAME="MX Maschine" ) else ( echo Ungueltige Eingabe! Starte das Skript erneut und waehle 1 oder 2. pause exit /b ) :: IP-Adresse eingeben set /p PRINTER_IP="Gib die IP-Adresse des Druckers ein: " :: Druckernamen eingeben set /p PRINTER_NAME="Gib den Namen des Druckers ein (ohne SW/Farbe): " :: Standarddrucker-Liste setzen (SW und Farbe) set PRINTER_LIST="%PRINTER_NAME% (SW)" "%PRINTER_NAME% (Farbe)" :default_path :: Nutzt automatisch den Pfad der Batch-Datei set BASE_PATH=%~dp0 set DRIVER_PATH=%BASE_PATH%sharp-treiber set DELETE_DRIVER_PATH=1 echo Verwende automatisch den Treiberordner: %DRIVER_PATH% :: Pruefe, ob der Treiberordner existiert if not exist "%DRIVER_PATH%" ( echo Treiber nicht gefunden! Lade ihn herunter... :: Treiber von HP herunterladen powershell -Command "(New-Object System.Net.WebClient).DownloadFile(\"%DRIVER_URL%\", '%BASE_PATH%sharp-treiber.zip')" :: Pruefen, ob der Download erfolgreich war if not exist "%BASE_PATH%sharp-treiber.zip" ( echo Fehler: Der Treiber konnte nicht heruntergeladen werden! pause exit /b ) echo Entpacke den Treiber... powershell -Command "Expand-Archive -Path '%BASE_PATH%sharp-treiber.zip' -DestinationPath '%BASE_PATH%sharp-treiber' -Force" :: Pruefen, ob das Entpacken erfolgreich war if not exist "%BASE_PATH%sharp-treiber" ( echo Fehler: Das Entpacken ist fehlgeschlagen! pause exit /b ) echo Entferne die ZIP-Datei... del "%BASE_PATH%sharp-treiber.zip" echo Treiber wurde erfolgreich heruntergeladen und entpackt. ) GOTO check_path :check_path :: Pruefe, ob der Treiberordner existiert if not exist "%DRIVER_PATH%" ( echo Fehler: Der Treiberordner "%DRIVER_PATH%" existiert nicht! pause exit /b ) :: Port erstellen echo Erstelle TCP/IP-Port... cscript "%WINDIR%\System32\Printing_Admin_Scripts\de-DE\prnport.vbs" -a -r %PRINTER_IP% -h %PRINTER_IP% -o raw :: Druckertreiber installieren (automatische INF-Suche in PCL6\64bit) echo Installiere Druckertreiber aus: %DRIVER_PATH%\PCL6\64bit ... pnputil /add-driver "%DRIVER_PATH%\PCL6\64bit\*.inf" /install :: Drucker installieren (inklusive der zusaetzlichen Drucker) for %%P in (%PRINTER_LIST%) do ( echo Installiere Drucker: %%P ... rundll32 printui.dll,PrintUIEntry /if /b %%P /r "%PRINTER_IP%" /m "SHARP UD3 PCL6" ) :: Nach Installation den Registry-Wert für SW-Drucker setzen echo Setze Standarddrucker-Einstellungen nach OH5 Standard... powershell -ExecutionPolicy Bypass -File "%BASE_PATH%do_default_printersettings.ps1" -PrinterName "%PRINTER_NAME%" :: Standarddrucker setzen set /p SET_DEFAULT="Soll '%PRINTER_NAME% (SW)' als Standard gesetzt werden? (J/N): " IF /I "%SET_DEFAULT%"=="J" GOTO set_default GOTO cleanup :set_default rundll32 printui.dll,PrintUIEntry /y /n "%PRINTER_NAME% (SW)" echo "%PRINTER_NAME% (SW)" ist jetzt der Standarddrucker. :cleanup :: Treiberordner loeschen, nur wenn der Benutzer "N" gewaehlt hat if "%DELETE_DRIVER_PATH%"=="1" ( if exist "%DRIVER_PATH%" ( echo Entferne den heruntergeladenen Treiberordner... rmdir /s /q "%DRIVER_PATH%" echo Treiberordner erfolgreich geloescht. ) ) :end echo Installation abgeschlossen. pause