schmitty 10 Geschrieben 23. September 2008 Melden Teilen Geschrieben 23. September 2008 Hallo liebe MCSE'ler, ich habe unter ein Script welches ich selber geschrieben habe und stehe nun ein wenig auf dem Schlauch. Ursprünglich war das Script dazu gedacht Drucker mit ihrem exatem Namen zu löschen, aber nun würde ich gerne Drucker löschen von denen ich nur einen Teil des Names eingebe.. Stimmt etwas an meinem Select Aufruf nicht oder bin ich in der Falschen Win32-Klasse. strComputer = "MUWTS01" strPrinterList = "printerlist.txt" strLogFile = "DeletePrinter.log" Set fso = CreateObject("Scripting.FileSystemObject") set oFile = fso.OpenTextFile(strPrinterList, 1) set oLog = fso.OpenTextFile(strLogFile, 8, True) do while not oFile.AtEndOfStream strPrinterName = Trim(oFile.Readline) if strPrinterName <> "" then DeletePrinter(strPrinterName) loop oFile.Close oLog.Close WScript.Quit Sub DeletePrinter(sPrntrName) WScript.Echo "Entferne '" & sPrntrName & "' von Computer '" & strComputer & "'..." oLog.Writeline "Entferne '" & sPrntrName & "' von Computer '" & strComputer & "'..." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from Win32_Printer Where Name like '" & sPrntrName & "' ") For Each objPrinter in colInstalledPrinters objPrinter.Delete_ WScript.Echo "Gelöscht!" oLog.Writeline "Gelöscht!" Exit Sub Next End Sub Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 23. September 2008 Melden Teilen Geschrieben 23. September 2008 Moin, was passiert denn, wenn du das Skript aufrufst? Ich kann es gerade nicht testen, aber ich würde mich nicht wundern, wenn WQL (SQL-Dialekt von WMI) den Operator "Like" nicht kennt. In dem Fall könntest du alle Drucker auflisten und das zurückgegebene Recordset selbst parsen. Nicht elegant, aber für die Aufgabe sicher ausreichend. Gruß, Nils Zitieren Link zu diesem Kommentar
schmitty 10 Geschrieben 24. September 2008 Autor Melden Teilen Geschrieben 24. September 2008 Es passiert nichts. Es gibt keine Fehlermeldung wenn ich es über cscript in DOS ausführe.. komisch ist das schon Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 24. September 2008 Melden Teilen Geschrieben 24. September 2008 Hallo Schmitty, Probier mal deinen suchstring vorne und hinten in %-Operatoren einzurahmen. LIKE Operator (Windows) cu blub Zitieren Link zu diesem Kommentar
schmitty 10 Geschrieben 24. September 2008 Autor Melden Teilen Geschrieben 24. September 2008 Sodala jetzt habe ich es gangbar bekommen strComputer = "Server" strPrinterList = "printerlist.txt" strLogFile = "DeletePrinter.log" Set fso = CreateObject("Scripting.FileSystemObject") set oFile = fso.OpenTextFile(strPrinterList, 1) set oLog = fso.OpenTextFile(strLogFile, 8, True) do while not oFile.AtEndOfStream strPrinterName = Trim(oFile.Readline) if strPrinterName <> "" then DeletePrinter(strPrinterName) loop oFile.Close oLog.Close WScript.Quit Sub DeletePrinter(sPrntrName) WScript.Echo "Entferne '" & sPrntrName & "' von Computer '" & strComputer & "'..." oLog.Writeline "Entferne '" & sPrntrName & "' von Computer '" & strComputer & "'..." Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from Win32_Printer Where Name like '%%" & sPrntrName & "%%'") For Each objPrinter in colInstalledPrinters objPrinter.Delete_ 'For Each objPrinter in colInstalledPrinters ' objPrinter.Delete_ WScript.Echo "Gelöscht!" oLog.Writeline "Gelöscht!" ' Exit Sub Next End Sub Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.