Überprüfen, ob User Reg schon vollständig geladen ist
Hallo Leute,
(Hab leider keinen passenden Unterpunkt für VBS gefunden)
wir haben eine Win 2008R2 Terminalserverlandschaft mit Citrix, bei der per GPO ein VBS auf den Servern ausgeführt wird, das für die Drucker zuständig ist. Dieses Skript vergleicht den Unterschied zwischen aktuell verbundenen Druckern und einer Textdatei, in der für jeden User seine jeweiligen Drucker stehen. Gibt es Unterschiede, löscht oder fügt es die jeweiligen Drucker hinzu.
Das Problem ist, das es anscheinend teilweise zu lange dauert, das Profil zu laden, und das Skript beim Auslesen der zugewiesen Drucker nichts zurück bekommt..
Jetzt versucht es natürlich, die Drucker zu verbinden, was dann aber in einem Fehler endet, da jetzt die Drucker doch plötzlich da sind.
Hier ist ein Beispiel, was passiert, wenn die Reg nicht schnell genug geladen wird. Das Skript wartet jetzt eh schon 45 Sekunden..
User: -
Server: -
Datum: 03.06.2013
Zeit: 08:26:05
08:26:05 - Liste im Profil verbundene Drucker auf..
08:26:05 - ..abgeschlossen!
08:26:05 - Warte 45000 ms..
08:26:50 - abgeschlossen!
08:26:50 - Liste nochmals im Profil verbundene Drucker auf..
08:26:56 - ..abgeschlossen!
08:26:56 - Liste zugeordnete Drucker auf..
\\Server\Drucker1 (c)
\\Server\Drucker2 (cd)
\\Server\Drucker3 (c)
\\Server\Drucker4 (c)
\\Server\Drucker5 (c)
\\Server\Drucker6 (c)
08:26:56 - ..abgeschlossen!
08:26:56 - Lösche in Myprint nicht mehr zugeordnete Drucker..
08:26:56 - ..abgeschlossen!
08:26:56 - Verbinde neu zugewiesene Drucker..
\\Server\Drucker1
Fehler -2147021884 :
\\Server\Drucker2
Fehler -2147021884 :
\\Server\Drucker3
Fehler -2147021884 :
\\Server\Drucker4
Fehler -2147021884 :
\\Server\Drucker5
Fehler -2147021884 :
\\Server\Drucker6
Fehler -2147021884 :
08:26:56 - ..abgeschlossen!
08:26:56 - Setzte Standarddrucker..
\\Server\Drucker4
Fehler -2147352567 WSHNetwork.SetDefaultPrinter: Es ist kein Drucker mit dem Namen "\\Server\Drucker4" vorhanden.
08:26:56 - ..abgeschlossen!
08:26:56 - Liste nochmals im Profil verbundene Drucker auf..
08:26:57 - ..abgeschlossen!
Das Ganze geht eigentlich die meiste Zeit gut, aber es gibt eben auch Ausnahmen.
Jetzt meine Frage: Gibt es eine Möglichkeit, festzustellen, ob die Reg vollständig geladen ist?
(Hab leider keinen passenden Unterpunkt für VBS gefunden)
wir haben eine Win 2008R2 Terminalserverlandschaft mit Citrix, bei der per GPO ein VBS auf den Servern ausgeführt wird, das für die Drucker zuständig ist. Dieses Skript vergleicht den Unterschied zwischen aktuell verbundenen Druckern und einer Textdatei, in der für jeden User seine jeweiligen Drucker stehen. Gibt es Unterschiede, löscht oder fügt es die jeweiligen Drucker hinzu.
Das Problem ist, das es anscheinend teilweise zu lange dauert, das Profil zu laden, und das Skript beim Auslesen der zugewiesen Drucker nichts zurück bekommt..
objFile1.Write Time & " - Liste im Profil verbundene Drucker auf.." & vbCrLf
Set colPrinters = objWMIService.ExecQuery _
("Select * From Win32_Printer Where Local = FALSE")
For Each objPrinter in colPrinters
objFile1.Write " " & objPrinter.Name & vbCrLf
strPrinterListA = strPrinterListA & objPrinter.Name & vbCrLf
Next
objFile1.Write Time & " - ..abgeschlossen!" & vbCrLf & vbCrLf
Jetzt versucht es natürlich, die Drucker zu verbinden, was dann aber in einem Fehler endet, da jetzt die Drucker doch plötzlich da sind.
objFile1.Write Time & " - Verbinde neu zugewiesene Drucker.." & vbCrLf
Set objFile2 = objFS.OpenTextFile(strPrintersFile)
Do while not objFile2.AtEndOfStream
strLine = objFile2.ReadLine
If InStr(strLine,strPattern)>0 Then
strsplit=Split (strline, vbTab)
For i = 0 to UBound(strsplit)
Next
strPrinterSet = strsplit(1)
strServerFQDN = strsplit(2)
strDefault = strsplit(3)
strsplit2 = Split (strServerFQDN, ".")
strServer = strsplit2(0)
if strServer <> "ENTFERNT" Then
strUNC1 = "\\" & strServer & "\" & strPrinterSet
If strDefault = "cd" Then
strDefaultPrinter = strUNC1
End If
If InStr(strPrinterListA,strUNC1) = 0 Then
strNotConnected = strUNC1
objFile1.Write " " & strNotConnected & vbCrLf
Err.Clear()
objNetwork.AddWindowsPrinterConnection strNotConnected
IF Err.Number <> 0 then
objFile1.Write " " & "Fehler " & Err.Number & " " & Err.Source & ": " & Err.Description & vbCrLf
End if
End If
End IF
End If
Loop
objFile1.Write Time & " - ..abgeschlossen!" & vbCrLf & vbCrLf
Hier ist ein Beispiel, was passiert, wenn die Reg nicht schnell genug geladen wird. Das Skript wartet jetzt eh schon 45 Sekunden..
User: -
Server: -
Datum: 03.06.2013
Zeit: 08:26:05
08:26:05 - Liste im Profil verbundene Drucker auf..
08:26:05 - ..abgeschlossen!
08:26:05 - Warte 45000 ms..
08:26:50 - abgeschlossen!
08:26:50 - Liste nochmals im Profil verbundene Drucker auf..
08:26:56 - ..abgeschlossen!
08:26:56 - Liste zugeordnete Drucker auf..
\\Server\Drucker1 (c)
\\Server\Drucker2 (cd)
\\Server\Drucker3 (c)
\\Server\Drucker4 (c)
\\Server\Drucker5 (c)
\\Server\Drucker6 (c)
08:26:56 - ..abgeschlossen!
08:26:56 - Lösche in Myprint nicht mehr zugeordnete Drucker..
08:26:56 - ..abgeschlossen!
08:26:56 - Verbinde neu zugewiesene Drucker..
\\Server\Drucker1
Fehler -2147021884 :
\\Server\Drucker2
Fehler -2147021884 :
\\Server\Drucker3
Fehler -2147021884 :
\\Server\Drucker4
Fehler -2147021884 :
\\Server\Drucker5
Fehler -2147021884 :
\\Server\Drucker6
Fehler -2147021884 :
08:26:56 - ..abgeschlossen!
08:26:56 - Setzte Standarddrucker..
\\Server\Drucker4
Fehler -2147352567 WSHNetwork.SetDefaultPrinter: Es ist kein Drucker mit dem Namen "\\Server\Drucker4" vorhanden.
08:26:56 - ..abgeschlossen!
08:26:56 - Liste nochmals im Profil verbundene Drucker auf..
08:26:57 - ..abgeschlossen!
Das Ganze geht eigentlich die meiste Zeit gut, aber es gibt eben auch Ausnahmen.
Jetzt meine Frage: Gibt es eine Möglichkeit, festzustellen, ob die Reg vollständig geladen ist?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 207365
Url: https://administrator.de/contentid/207365
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
4 Kommentare
Neuester Kommentar
Hi,
probier mal die Gruppenrichtlinie um Logon-Scripts "Synchron" auszuführen ausführen zu lassen:
und das hier könnte auch noch helfen:
Grüße Uwe
probier mal die Gruppenrichtlinie um Logon-Scripts "Synchron" auszuführen ausführen zu lassen:
Computereinstellungen/Administrative Vorlagen/System/Scripts/"Anmeldescripts gleichzeitig ausführen"
Computereinstellungen/Administrative Vorlagen/System/Anmelden/"Beim Neustart des Computers und bei der Anmeldung immer auf das Netzwerk warten.