Lokale Drucker per Batch einmalig löschen
Hallo Community,
habe ein größeres Problem vor mir. Meine Aufgabe besteht darin einen Druckserver einzurichten, die Drucker einzubinden, sowie per GPO bereitstellen.
Dies ist soweit geschehen.
Nun gibt es folgendes Problem. Bevor das ganze System live geht, muss ich die bereits davor per TCP/IP installierten Drucker auf den Clients löschen, da
die GPO die Drucker vom Printserver ja automatisch auf die Clients klatscht. (Sonst hat jeder User am Ende 2-3 Drucker zur Auswahl)
Da wir in unserem Unternehmen über 700 Clients haben hätte ich das gern per Logonscript getan.
Ich habe allerdings wirklich keinen Dunst von Batch oder Skirpts schreiben.
Die Clients arbeiten auf Win7 und teilweise noch WinXP. Der Printserver ist ein Windows 2008 R2.
Könnt ihr mir weiterhelfen mit Anleitung am Besten?
Vielen vielen Dank im voraus :D
habe ein größeres Problem vor mir. Meine Aufgabe besteht darin einen Druckserver einzurichten, die Drucker einzubinden, sowie per GPO bereitstellen.
Dies ist soweit geschehen.
Nun gibt es folgendes Problem. Bevor das ganze System live geht, muss ich die bereits davor per TCP/IP installierten Drucker auf den Clients löschen, da
die GPO die Drucker vom Printserver ja automatisch auf die Clients klatscht. (Sonst hat jeder User am Ende 2-3 Drucker zur Auswahl)
Da wir in unserem Unternehmen über 700 Clients haben hätte ich das gern per Logonscript getan.
Ich habe allerdings wirklich keinen Dunst von Batch oder Skirpts schreiben.
Die Clients arbeiten auf Win7 und teilweise noch WinXP. Der Printserver ist ein Windows 2008 R2.
Könnt ihr mir weiterhelfen mit Anleitung am Besten?
Vielen vielen Dank im voraus :D
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 229626
Url: https://administrator.de/contentid/229626
Ausgedruckt am: 25.11.2024 um 23:11 Uhr
9 Kommentare
Neuester Kommentar
Hi
Das ist kein Problem einfach kix downloaden http://www.kixtart.org/
Ein Skript anlegen und in das Loginskript einbinden.
PS: Anleitung gibts ebenfalls dort und einfach zu machen ist es auch.
Beispiel:
Printer.kix:
DelPrinterConnection ("\\Server\DJ970")
AddPrinterConnection ("\\Server\OptraS1255")
Beispiel eintrag Loginskript:
call \\Server\Netlogon\kix32.exe \\Server\Netlogon\printer.kix
LG
Das ist kein Problem einfach kix downloaden http://www.kixtart.org/
Ein Skript anlegen und in das Loginskript einbinden.
PS: Anleitung gibts ebenfalls dort und einfach zu machen ist es auch.
Beispiel:
Printer.kix:
DelPrinterConnection ("\\Server\DJ970")
AddPrinterConnection ("\\Server\OptraS1255")
Beispiel eintrag Loginskript:
call \\Server\Netlogon\kix32.exe \\Server\Netlogon\printer.kix
LG
Hallo BibelRaptor,
hier ein mögliches VBS-Script: (löscht nur Netzwerkdrucker)
oder wenns Powershell sein darf:
Grüße Uwe
hier ein mögliches VBS-Script: (löscht nur Netzwerkdrucker)
Set objNetwork = WScript.CreateObject("WScript.Network")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery("Select * from Win32_Printer where Network = True")
For Each objPrinter in colInstalledPrinters
objNetwork.RemovePrinterConnection objPrinter.Name
Next
$comNetwork = New-Object -ComObject "Wscript.Network"
gwmi -Class Win32_Printer | ?{$_.Network -eq $true} | %{$comNetwork.RemovePrinterConnection($_.Name)}
Moin,
je nach Bedarf und Betriebssystemsprache:
Bastle dir zusammen, was du brauchst. Zur Info festangelegt lokale Drucker können möglicherweise nur von Admins gelöscht werden (also vielleicht als Startscript und Loginscript laufen lassen)
Edit:
Habe nun eine Detektion eingebaut, um die OS-Version zu bestimmen. Musst also nur noch die falsche Sprache rauswerfen und unten eben das rauslöschen, was du nicht haben willst.
Gruß
Chris
je nach Bedarf und Betriebssystemsprache:
REM erkennt Win7 oder XP
if exist "%systemdrive%\ProgramData" (
REM Win7
REM deutsches Grundsystem
set "vbspath=%windir%\System32\Printing_Admin_Scripts\de-DE"
REM englisches Grundsystem
set "vbspath=%windir%\System32\Printing_Admin_Scripts\en-US"
) else (
REM XP
set "vbspath=%windir%\system32"
)
REM Löscht alle printer
cscript "%vbspath%\prnmngr.vbs" -x
REM Löscht Printer Connections
cscript "%vbspath%\prnmngr.vbs" -xc
REM Löscht lokale Printer
cscript "%vbspath%\prnmngr.vbs" -xo
Bastle dir zusammen, was du brauchst. Zur Info festangelegt lokale Drucker können möglicherweise nur von Admins gelöscht werden (also vielleicht als Startscript und Loginscript laufen lassen)
Edit:
Habe nun eine Detektion eingebaut, um die OS-Version zu bestimmen. Musst also nur noch die falsche Sprache rauswerfen und unten eben das rauslöschen, was du nicht haben willst.
Gruß
Chris
Moin,
also ich vermute mal deutsche Rechner. nun machst du folgendes:
1. erstelle eine Datei mit dem Namen (ist ein Beispiel kannst du nennen wie du willst) "DeletePrinterConnection.bat" dort kommst folgender Code rein:
Da es einmal sein soll, habe ich noch eine kleine Prüfsequenz eingebaut.
2. öffne deinen GPO Editor. erstelle eine Policy für deine User, bei denen du die Drucker entfernen willst. gehe zu "User Configuration\Windows Settings\Scripts (Logon/Logoff)" dort wählst du Logon hier öffnet sich ein Fenster, unten gibt es Button auf dem Show Files (bei dir vielleicht auf deutsch) steht. da klickst du drauf und legst dein Script rein.
3. oben gibt es nun einen (im Logon Propertys Fenster) Button mit Add... da klickst du drauf, wählst das Script fertig.
damit wäre der Userpart abgehakt
nun zum Computer:
1. erstelle eine Datei mit dem Namen (ist ein Beispiel kannst du nennen wie du willst) "DeletePrinterConnection.bat" dort kommst folgender Code rein:
Da es einmal sein soll, habe ich noch eine kleine Prüfsequenz eingebaut.
2. öffne deinen GPO Editor. erstelle eine Policy für deine Computer, bei denen du die Drucker entfernen willst. gehe zu "Computer Configuration\Windows Settings\Scripts (Startup/Shutdown)" dort wählst du Startup hier öffnet sich ein Fenster, unten gibt es Button auf dem Show Files (bei dir vielleicht auf deutsch) steht. da klickst du drauf und legst dein Script rein.
3. oben gibt es nun einen (im Startup Propertys Fenster) Button mit Add... da klickst du drauf, wählst das Script fertig.
Damit wäre alles erledigt. Wichtig ist eben, dass du wirklich prüfst, ob du auch lokal angelegte Drucker entfernen willst oder nur alte Verknüpfungen.
Edit: Variablennamen zu vbspath gewechselt um Komplikationen zu vermeiden.
Gruß
Chris
also ich vermute mal deutsche Rechner. nun machst du folgendes:
1. erstelle eine Datei mit dem Namen (ist ein Beispiel kannst du nennen wie du willst) "DeletePrinterConnection.bat" dort kommst folgender Code rein:
REM prüft ob bereits ausgeführt
if exist "%appdata%\PrinterCheck.txt" exit
REM erkennt Win7 oder XP
if exist "%systemdrive%\ProgramData" (
REM Win7
REM deutsches Grundsystem
set "vbspath=%windir%\System32\Printing_Admin_Scripts\de-DE"
) else (
REM XP
set "vbspath=%windir%\system32"
)
REM Löscht Printer Connections
cscript "%vbspath%\prnmngr.vbs" -xc
REM erstellt Prüfdatei sorgt dafür, dass es nicht nochmal ausgeführt wird
echo %date%>"%appdata%\PrinterCheck.txt"
2. öffne deinen GPO Editor. erstelle eine Policy für deine User, bei denen du die Drucker entfernen willst. gehe zu "User Configuration\Windows Settings\Scripts (Logon/Logoff)" dort wählst du Logon hier öffnet sich ein Fenster, unten gibt es Button auf dem Show Files (bei dir vielleicht auf deutsch) steht. da klickst du drauf und legst dein Script rein.
3. oben gibt es nun einen (im Logon Propertys Fenster) Button mit Add... da klickst du drauf, wählst das Script fertig.
damit wäre der Userpart abgehakt
nun zum Computer:
1. erstelle eine Datei mit dem Namen (ist ein Beispiel kannst du nennen wie du willst) "DeletePrinterConnection.bat" dort kommst folgender Code rein:
REM prüft ob bereits ausgeführt
if exist "%programdata%\PrinterCheck.txt" exit
REM erkennt Win7 oder XP
if exist "%systemdrive%\ProgramData" (
REM Win7
REM deutsches Grundsystem
set "vbspath=%windir%\System32\Printing_Admin_Scripts\de-DE"
) else (
REM XP
set "vbspath=%windir%\system32"
)
REM Löscht lokale Printer !!bitte Prüfen ob gewollt!!!
cscript "%vbspath%\prnmngr.vbs" -xo
REM erstellt Prüfdatei sorgt dafür, dass es nicht nochmal ausgeführt wird
echo %date%>"%programdata%\PrinterCheck.txt"
2. öffne deinen GPO Editor. erstelle eine Policy für deine Computer, bei denen du die Drucker entfernen willst. gehe zu "Computer Configuration\Windows Settings\Scripts (Startup/Shutdown)" dort wählst du Startup hier öffnet sich ein Fenster, unten gibt es Button auf dem Show Files (bei dir vielleicht auf deutsch) steht. da klickst du drauf und legst dein Script rein.
3. oben gibt es nun einen (im Startup Propertys Fenster) Button mit Add... da klickst du drauf, wählst das Script fertig.
Damit wäre alles erledigt. Wichtig ist eben, dass du wirklich prüfst, ob du auch lokal angelegte Drucker entfernen willst oder nur alte Verknüpfungen.
Edit: Variablennamen zu vbspath gewechselt um Komplikationen zu vermeiden.
Gruß
Chris
Moin,
erstmal: das ist ein Batchscript, kein VBScript. Wichtig ist also das deine Datei die Endung ".bat" oder ".cmd" hat, sonst klappt es sowieso nicht. Es werden nur vbs Dateien darin aufgerufen.
Solltest du die Datei richtig benannt haben, prüfe den Pfad zum Script, der in der GPO angezeigt wird, es sollte ein UNC-Pfad sein (erkennst du an \\ am Anfang)
Dann solltest du schauen ob die Datei %programdata%\printerCheck.txt geschrieben wurde. Falls ja löschen, falls nein schaue mal per GPResult (wie du das nutzt solltest du im web finden können oder mit cmd gpresult /?) ob deine GPO überhaupt greift oder ob sie falsch verlinkt ist, zur not lass mal deinen Mentor drüber schauen.
Dann sollte es laufen.
Gruß
Chris
erstmal: das ist ein Batchscript, kein VBScript. Wichtig ist also das deine Datei die Endung ".bat" oder ".cmd" hat, sonst klappt es sowieso nicht. Es werden nur vbs Dateien darin aufgerufen.
Solltest du die Datei richtig benannt haben, prüfe den Pfad zum Script, der in der GPO angezeigt wird, es sollte ein UNC-Pfad sein (erkennst du an \\ am Anfang)
Dann solltest du schauen ob die Datei %programdata%\printerCheck.txt geschrieben wurde. Falls ja löschen, falls nein schaue mal per GPResult (wie du das nutzt solltest du im web finden können oder mit cmd gpresult /?) ob deine GPO überhaupt greift oder ob sie falsch verlinkt ist, zur not lass mal deinen Mentor drüber schauen.
Dann sollte es laufen.
Gruß
Chris