sammy2ooo 10 Geschrieben 16. Juni 2008 Melden 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
Lian 2.659 Geschrieben 20. Juni 2008 Melden Geschrieben 20. Juni 2008 Grund: Wird Zeit für Feierabend... bitte löschen... Gelöst?
sammy2ooo 10 Geschrieben 24. Juni 2008 Autor Melden 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...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden