Jump to content

Printer werden hinzugefügt und gleich wieder gelöscht...


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...