docusnap-dude
Goto Top

VBS-Logoutscript funktioniert nicht

mal wieder VBscript...

Hi,

kann mir jemand mal helfen, warum mein logout-Script nicht funktioniert? es sind immer noch alle network-Printer und Laufwerke online wenn es gelaufen ist:
Dim oDrives, fUser, fOS, fDomain, fUserName, oGroupDict
Dim objNetwork
Dim objFSO, objFileCopy
Dim strFilePath, strDestination

Set objFSO = CreateObject("Scripting.FileSystemObject")  
Set objNetwork = CreateObject("WScript.Network")  
Set WshNetwork = WScript.CreateObject("WScript.Network")  
Set WshShell = WScript.CreateObject("WScript.Shell")  
Set oDrives = WshNetwork.EnumNetworkDrives

UserName = (WshShell.ExpandEnvironmentStrings("%UserName%"))  
fUser = (WshNetwork.UserName)
Set WshShell = CreateObject("WScript.Shell")  

'### Check if you are connected in Plantoffice ###  
strComputer = "."  
Set objWMIService = GetObject("winmgmts:" & "!\\" & strComputer & "\root\cimv2" )  
Set colAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True" )  
For Each objAdapter in colAdapters
    IPdebut = LBound(objAdapter.IPAddress)
    IPfin = UBound(objAdapter.IPAddress)
	If InStr("#" & Join(objAdapter.IPAddress, "#"), "#10.211.") > 0 Then wscript.qui  

	'### Sequence remove UNC-Printers ###  
		on error resume next
			set oPrinters = WshNetwork.EnumPrinterConnections 
				For i = 1 To oPrinters.Count -1 Step 2 
					If InStr(oPrinters(i), "\\DC02PRT\") > 0 Then WshNetwork.RemovePrinterConnection(oPrinters(i))   
		Next

	'### Sequence remove UNC-Network Drives ###  
			Dim DelNetDrive
				Set WshNet = CreateObject("WScript.Network")  
					For DriveAsc = 102 To 122
			On Error Resume Next
				DelNetDrive = Chr(DriveAsc) & ":"  
					WshNet.RemoveNetworkDrive DelNetDrive, True, True
			Next

wscript.qui
Ziel ist also: lösche alle Netzwerkdrucker und Laufwerke bei logout...

Danke für Ideen!

Noch was: wie baue ich ein, das nur wenn der IP-Range mit 10.211. beginnt das script läuft?

Danke für eure Hilfe!

Frank

Content-ID: 151652

Url: https://administrator.de/forum/vbs-logoutscript-funktioniert-nicht-151652.html

Ausgedruckt am: 11.04.2025 um 10:04 Uhr

76109
76109 23.09.2010 um 17:42:48 Uhr
Goto Top
Hallo frankoehli!

Mhm, irgendwie willenlos zusammenkopiert

Beim überfliegen Deines Skripts sind mir zunächst mal 2 Dinge aufgefallen:
1. WScript.Qui anstatt WScript.Quit
2. In Codezeile 40 fehlt passend zur Codezeile 20 (For Each) eine Next-Anweisung

Gruß Dieter
DocuSnap-Dude
DocuSnap-Dude 23.09.2010 um 19:07:43 Uhr
Goto Top
Ui; welch ein Lapsus; völlig übersehen:

1. WScript.Qui anstatt WScript.Quit

Aber:
2. In Codezeile 40 fehlt passend zur Codezeile 20 (For Each) eine Next-Anweisung
Steh ich grad auf dem Schlauch. Wie gesagt: bin VB-Anfänger. Warum noch mal fdie Abfrage neu staren in Zeile 40 (für was)?

Danke dir aber schon einmal!
dog
dog 23.09.2010 um 23:57:44 Uhr
Goto Top
For Each objAdapter in colAdapters
    IPdebut = LBound(objAdapter.IPAddress)
    IPfin = UBound(objAdapter.IPAddress)
	If InStr("#" & Join(objAdapter.IPAddress, "#"), "#10.211.") > 0 Then wscript.qui  

Die effektive Aussage dieses Codes ist:
Sobald eine der Netzwerkkarten, die WMI (zufällig) zurückliefert, den Array der IP-Adressen in "#10.211..." hat brich das Skript ab.

Ich zähle da allein schon 4 Fehler.

Und Netzwerkdrucker zu löschen ist mit WMI eine Sache von 4 Zeilen...
DocuSnap-Dude
DocuSnap-Dude 24.09.2010 um 08:27:05 Uhr
Goto Top
Und Netzwerkdrucker zu löschen ist mit WMI eine Sache von 4 Zeilen...

OK; Hast du mal praktisches Beispiel?
dog
dog 24.09.2010 um 16:17:55 Uhr
Goto Top
' WMI Provider - SWbemServices  
Set wmi = GetObject("winmgmts:\\.\root\cimv2")  
' Drucker - SWbemObjectSet  
set printerSet = wmi.ExecQuery("SELECT * FROM Win32_Printer WHERE Network = TRUE")  

On Error Resume Next

For Each printer In printerSet
	printer.Delete_
Next
DocuSnap-Dude
DocuSnap-Dude 24.09.2010 um 20:38:32 Uhr
Goto Top
Jepp; danke das funktioniert mit meinen Anpassungen jetzt!

Danke also!