sammy2ooo 10 Geschrieben 16. Juni 2008 Melden Teilen Geschrieben 16. Juni 2008 Hallo Leute Was stimmt mit meiner Funktion nicht. Die Drucker werden gemapt und dann gleich wieder entfernt... kann mir das einfach nicht erklären...:confused: Das File printermap.txt hat das Format: Workstation1:defaultprinter:printer2:printer3:...Workstation2:defaultprinter:printer2:printer3:... .... Function mapPrinters() Set objFSO = CreateObject("Scripting.FileSystemObject") Set objWshShell = CreateObject("WScript.Shell") Set objNet = CreateObject("WScript.Network") strPrintServer = "printserver.domain.local" boolDebugTest = False strPrinterMap = "\\domain.local\netlogon\printermap.txt" ' dirty hack needed for some thinclients... If objWshShell.ExpandEnvironmentStrings("%clientname%") = "%clientname%" Or objWshShell.ExpandEnvironmentStrings("%clientname%") = "Console" Then strComputerName = objWshShell.ExpandEnvironmentStrings("%computername%") Else strComputerName = objWshShell.ExpandEnvironmentStrings("%clientname%") End If ' check if file exists If objFSO.FileExists(strPrinterMap) Then Set objTemp = objFSO.GetFile(strPrinterMap) ' check for file size if objTemp.Size <> 0 Then Set objFile = objFSO.OpenTextFile(strPrinterMap) ' delete the currently mapped network printers For i = 1 To objPrinters.Count Step 2 ' check if really have a network printer If Left(objPrinters.Item(i), 2) = "\\" Then Call objNet.RemovePrinterConnection(objPrinters.Item(i), True, true) End If Next ' loop till EOF Do Until objFile.AtEndOfStream arrRecord = Split(objFile.ReadLine, ":") ' have we found our machine? If arrRecord(0) = strComputerName Then If boolDebugTest Then WScript.Echo "host found: ", arrRecord(0) strDefaultPrinter = arrRecord(1) If boolDebugTest Then WScript.Echo "default printer: ", arrRecord(1) ' get printer information Set objPrinters = objNet.EnumPrinterConnections On Error Resume Next ' iterate through array an conect printers For i = 1 To UBound(arrRecord) If boolDebugTest Then WScript.Echo "mapping printer: ", arrRecord(i) objNet.AddWindowsPrinterConnection("\\" & strPrintServer & "\" & arrRecord(i)) Next ' set default printer objNet.SetDefaultPrinter("\\" & strPrintServer & "\" & strDefaultPrinter) End If Loop Else WScript.Echo "file is empty" End If Else WScript.Echo "printermap does not exist" End If End Function Zitieren Link zu diesem Kommentar
Lian 2.422 Geschrieben 20. Juni 2008 Melden Teilen Geschrieben 20. Juni 2008 Grund: Wird Zeit für Feierabend... bitte löschen... Gelöst? Zitieren Link zu diesem Kommentar
sammy2ooo 10 Geschrieben 24. Juni 2008 Autor Melden Teilen Geschrieben 24. Juni 2008 Problem gelöst... ich habe versehentlich für jede gelesene Zeile des Textfiles alle gemapten Drucker gelöscht... Kann also gelöscht werden... 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.