Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Überprüfen, ob User Reg schon vollständig geladen ist

Frage Entwicklung VB for Applications

Mitglied: TheUntouchable

TheUntouchable (Level 1) - Jetzt verbinden

03.06.2013, aktualisiert 09:35 Uhr, 3962 Aufrufe, 4 Kommentare, 2 Danke

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..

01.
objFile1.Write Time & " - Liste im Profil verbundene Drucker auf.." & vbCrLf 
02.
Set colPrinters = objWMIService.ExecQuery _ 
03.
    ("Select * From Win32_Printer Where Local = FALSE") 
04.
For Each objPrinter in colPrinters 
05.
	objFile1.Write "         " & objPrinter.Name & vbCrLf 
06.
    strPrinterListA = strPrinterListA &  objPrinter.Name & vbCrLf 
07.
Next 
08.
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.

01.
objFile1.Write Time & " - Verbinde neu zugewiesene Drucker.." & vbCrLf 
02.
Set objFile2 = objFS.OpenTextFile(strPrintersFile) 
03.
Do while not objFile2.AtEndOfStream 
04.
    strLine = objFile2.ReadLine   
05.
    If InStr(strLine,strPattern)>0 Then 
06.
         strsplit=Split (strline, vbTab) 
07.
          For i = 0 to UBound(strsplit) 
08.
          Next       
09.
          strPrinterSet = strsplit(1) 
10.
          strServerFQDN  = strsplit(2) 
11.
          strDefault = strsplit(3) 
12.
           strsplit2 = Split (strServerFQDN, ".") 
13.
           strServer = strsplit2(0) 
14.
		  if strServer <> "ENTFERNT" Then 
15.
           strUNC1 = "\\" & strServer & "\" & strPrinterSet 
16.
            If strDefault = "cd"  Then 
17.
             strDefaultPrinter = strUNC1 
18.
            End If 
19.
           If InStr(strPrinterListA,strUNC1) = 0 Then 
20.
            strNotConnected = strUNC1 
21.
            objFile1.Write "         " & strNotConnected & vbCrLf 
22.
			Err.Clear() 
23.
            objNetwork.AddWindowsPrinterConnection strNotConnected 
24.
			IF Err.Number <> 0 then 
25.
             objFile1.Write "                  " & "Fehler " & Err.Number & " " & Err.Source & ": " & Err.Description & vbCrLf 
26.
            End if  
27.
           End If 
28.
		  End IF 
29.
    End If  
30.
  Loop 
31.
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?
Mitglied: colinardo
03.06.2013, aktualisiert um 13:10 Uhr
Hi,
probier mal die Gruppenrichtlinie um Logon-Scripts "Synchron" auszuführen ausführen zu lassen:
Computereinstellungen/Administrative Vorlagen/System/Scripts/"Anmeldescripts gleichzeitig ausführen"
und das hier könnte auch noch helfen:
Computereinstellungen/Administrative Vorlagen/System/Anmelden/"Beim Neustart des Computers und bei der Anmeldung immer auf das Netzwerk warten.
Grüße Uwe
Bitte warten ..
Mitglied: TheUntouchable
19.06.2013 um 12:01 Uhr
Hallo colinardo,

danke für deine Antwort!

Hat leider nichts gebracht.. Da Spielt wohl das Citrix Profil Managment noch mit rein..

Habe das Skript jetzt folgender maßen umgeschrieben:

01.
Sub addPrinters() 
02.
	'Hinzufügen von Druckern die in Myprint aufgelistet sind aber nicht im  
03.
	'aktuellen Profil 
04.
	objFile1.Write Time & " - Verbinde in Myprint neu zugewiesene Drucker.." & vbCrLf 
05.
	Set objFile2 = objFS.OpenTextFile(strMyPrintFile) 
06.
	Do while not objFile2.AtEndOfStream 
07.
		strLine = objFile2.ReadLine   
08.
		If InStr(strLine,strPattern)>0 Then 
09.
			 strsplit=Split (strline, vbTab) 
10.
			  For i = 0 to UBound(strsplit) 
11.
			  Next       
12.
			  strPrinterSet = strsplit(1) 
13.
			  strServerFQDN  = strsplit(2) 
14.
			  strDefault = strsplit(3) 
15.
			   strsplit2 = Split (strServerFQDN, ".") 
16.
			   strServer = strsplit2(0) 
17.
			  if strServer <> "PRMHS014" Then 
18.
			   strUNC1 = "\\" & strServer & "\" & strPrinterSet 
19.
				If strDefault = "cd"  Then 
20.
				 strDefaultPrinter = strUNC1 
21.
				End If 
22.
			   If InStr(strPrinterListA,strUNC1) = 0 Then 
23.
				strNotConnected = strUNC1 
24.
				objFile1.Write "         " & strNotConnected & vbCrLf 
25.
				do 
26.
				 Err.Clear() 
27.
				 objNetwork.AddWindowsPrinterConnection strNotConnected 
28.
				 IF Err.Number <> 0 then 
29.
				  objFile1.Write "                  " & "Fehler " & Err.Number & " " & Err.Source & ": " & Err.Description & vbCrLf 
30.
				  objFile1.Write "                  Warte " & intWaitAfterError & " ms auf die Registry und überprüfe ob Drucker schon vorhanden oder versuche es nochmals.." & vbCrLf 
31.
				  wait intWaitAfterError,0 
32.
				  listProfilPrinters 1,0 
33.
				  If InStr(strPrinterListA,strUNC1)>0 Then 
34.
				   objFile1.Write "                  ..Drucker schon vorhanden!" & vbCrLf 
35.
				   Err.Clear() 
36.
				  End If 
37.
				 End if 
38.
				objFile1.Write "DEBUG: Erste Loop Ende" & vbCrLf 
39.
				Loop While Err.Number<>0 
40.
				objFile1.Write "          ..erfolgreich!" & vbCrLf 
41.
			   End If 
42.
			  End IF 
43.
		End If  
44.
	  Loop 
45.
	objFile1.Write Time & " - ..abgeschlossen!" & vbCrLf & vbCrLf 
46.
End Sub
Das Skript wartet jetzt nach einem Fehler eine bestimmte Zeit, überprüft anschließend nochmals die Reg ob der Drucker jetzt vorhanden ist, bearbeitet den nächsten Drucker falls ja, oder startet einen neuen Verbindungsversuch falls nein.

Hat auch super geklappt beim Testen.. Jetzt stellte sich aber heraus, das wenn in der Zeile "objNetwork.AddWindowsPrinterConnection strNotConnected" ein Fehler auftritt, er komplett aus der Sub springt.. On Error Resume Next ist natürlich in der Datei enthalten..

Weiß wer weiter?
Bitte warten ..
Mitglied: colinardo
19.06.2013 um 12:07 Uhr
Bau mal das On Error Resume Next zusätzlich noch in die Sub addPrinter() mit ein nicht nur außerhalb der Prozedur.
Bitte warten ..
Mitglied: TheUntouchable
19.06.2013 um 12:50 Uhr
Vielen Dank, das scheint das Problem gelöst zu haben! :D
Bitte warten ..
Ähnliche Inhalte
Windows Server
Ein Terminalserver User kann sich nicht mehr vollständig abmelden.
Frage von NecroscopeWindows Server4 Kommentare

Ein Benutzer sollte von PC auf Thinclient umgestellt werden, aber sein „User“ meldet sich nicht richtig ab von dem ...

Xenserver
Citrix User Profil vollständig entfernen
Frage von Stefan007Xenserver2 Kommentare

Hi zusammen, bei uns in der Citrix 6.x Umgebung gibt es einen User dessen Receiver zunächst nicht mehr wollte. ...

Windows Systemdateien
Batch - reg - mehrere Schlüssel ohne vollständig bekannte Bezeichnung löschen
gelöst Frage von sati99Windows Systemdateien2 Kommentare

Hallo Leute, ich suche eine Lösung für mein folgendes Problem, kann mir dabei jemand bitte helfen? in der Registry ...

Windows Server
Anmeldescript wird nicht geladen
Frage von baxxter333Windows Server2 Kommentare

Hallo, ich habe ienen Server 2012 R2 als DC laufen. Im Ordner "netlogon" habe ich eine login.bat hinterlegt, die ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 106 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless9 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Router & Routing
Wieso kann ich den UPD 7000-9000 nicht freigeben?
Frage von Jayk0bRouter & Routing8 Kommentare

Router: Telekom W 723V Ports: UDP 7000-9000 Können nicht frei gegeben werden. Benutzgrund: Rocket League 7000 – 9000 UDP ...

Router & Routing
Fritzbox Gastnetz - exposed Host - zur Sophos IPTV
Frage von medikopterRouter & Routing8 Kommentare

Hallo zusammen, ich habe eine Frage bezüglich des Fritz box Gastzugangs an einer Sophos UTM Home. An liebsten wäre ...