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

Geschrieben

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

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

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...