Hi zusammen,
ich habs nun gefunden. Das Problem ist tatsächlich ein Timing Problem. Ich habe einfach einen "WScript.Sleep 10000" eingebaut und siehe da es funktioniert. Danke allen für die Hilfe. Hier nochmals das funktionierende Script falls es einer für Windows 7 oder Windows 2008 /2008 R2 braucht.
Grüße Chris
**************************************************
'
' ========= Installiert Drucker, wenn nicht vorhanden ============
'
'Array der Drucker, die installiert sein müssen
'
benutzer = CStr(WScript.CreateObject("WScript.Network").UserName)
if benutzer <> "bsasupport" then
Set objNetwork = CreateObject("WScript.Network")
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim arrayPossPrinters(1)
arrayPossPrinters(0) = "\\server\printer1"
arrayPossPrinters(1) = "\\server\printer2"
' Warte 10 Sekunden bis Windows soweit ist.
' Wichtig für alle Windows 7/ 2008 und 2008 R2 Systeme.
WScript.Sleep 10000
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer Where Local = False")
' ==== Überprüfen der installierten Drucker =====
If colPrinters.Count <> 0 Then
For Each objPossPrinter In arrayPossPrinters
bFoundMatch = -1
'überprüfen, ob sich der abgefragte Drucker im Array befindet
For Each objPrinterInstalled In colPrinters
If UCase(objPrinterInstalled.ServerName & "\" & objPrinterInstalled.ShareName) = UCase(objPossPrinter)Then
bFoundMatch = 1
'WScript.Echo "Drucker: " & objPossPrinter & vbCrLf & "installiert: " & bFoundMatch
'Schleife verlassen
Exit For
End If
Next
If bFoundMatch = -1 Then
'Drucker installieren, da nicht vorhanden
'wscript.echo bFoundMatch
'WScript.Echo objPossPrinter
objNetwork.AddWindowsPrinterConnection objPossPrinter
End If
Next
Else ' muss sein, wenn überhaupt kein Drucker installiert ist
objNetwork.AddWindowsPrinterConnection "\\server\printer1"
objNetwork.AddWindowsPrinterConnection "\\server\printer2"
End If
END If