VBS-Logoutscript IP-bezogen aber wie?
Hallo,
ich möchte gern das innerhalb eines bestimmten IP-Netzes (beginnend mit 172.16.beim Logout des Users verbundene UNC-Printer eines bestimmten Servers ( \\211PRT01\ ) gelöscht werden (also cleane alles was mit \\211PRT02\ beginnt wenn du im netz 172.16. bist). Leider bin ich voll am Anfang mit VBS (bisher hab ich alles über Jahre mit BAT gemacht). Das ganze soll schnell gehen (damit der logout nicht ewig leiert). Wer kann mir helfen (aber bitte: es geht nur VBS aus betrieblichen Gründen; keine Ideen a la "bleib doch bei BAT-Files")....
Hier mein Ansatz (der aber nicht funktioniert); wie gesagt nur ein Ansatz:
Dim WshNetwork, WshShell
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 LAN 172.16.****************************************
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 (objAdapter.IPAddress(IPdebut) => "172.16" ) then
'Anmerkung: hier weiss ich nicht weiter; wenn IP ungleich 172.16 beginnt soll er abbrechen; ansonsten zur näcjhsten Sprungmarke (war das nur einfach unter BAT)
'## Sequence remove Network Printers"
Dim UncPrinters
UncPrinters = Array("Drucker1","Drucker2","Drucker3",Drucker4")
'Anmerkung: ich möchte eigentlich nicht jeden Drucker einzeln auffüren müssen sondern eben alles was \\211PRT02\ beginnt --> Wie setze ich Wildcards?
Set objNetwork = WScript.CreateObject("WScript.Network")
For i = 0 To Ubound(UncPrinters)
on error resume next
objNetwork.RemovePrinterConnection("\\211PRT02\" & UncPrinters(i))
Next
'##Sequence remove 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
Thank's a lot!
Frank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 139808
Url: https://administrator.de/contentid/139808
Ausgedruckt am: 25.11.2024 um 13:11 Uhr
9 Kommentare
Neuester Kommentar
Moin,
zu 1. wscript.quit bricht die Ausführung des sripts ab
zu 2. Falls es Dir gelingen sollte die verbundenen Drucker aufzulisten (da gibt es wohl eine wmi query aber das müsste ich jetzt auch googeln), kannst Du mit Instr() oder Left() prüfen, ob der Name die gesuchte Zeichenkette enthält / mit ihr anfängt
zu 1. wscript.quit bricht die Ausführung des sripts ab
zu 2. Falls es Dir gelingen sollte die verbundenen Drucker aufzulisten (da gibt es wohl eine wmi query aber das müsste ich jetzt auch googeln), kannst Du mit Instr() oder Left() prüfen, ob der Name die gesuchte Zeichenkette enthält / mit ihr anfängt
@AndreasBrecht
Grüße
bastla
Falls es Dir gelingen sollte die verbundenen Drucker aufzulisten
Würde Dir als Stichwort "EnumPrinterConnections
" helfen?Grüße
bastla
@AndreasBrecht
Eher so:
Grüße
bastla
Eher so:
set oPrinters = WshNetwork.EnumPrinterConnections
For i = 1 To oPrinters.Count -1 Step 2
If InStr(oPrinters(i), "\\211PRT02\") > 0 Then WshNetwork.RemovePrinterConnection(oPrinters(i))
Next
bastla
... oder doch so:
Da eine Netzwerkkarte mehrere Adressen haben kann, stellt "objAdapter.IPAddress" ein Text-Array dar - mit dem "#" vorweg und als Verknüpfungszeichen beim "
Grüße
bastla
If InStr("#" & Join(objAdapter.IPAddress, "#"), "#172.16.") > 0 Then ...
Join()
" kann der Beginn jeder Adresse gekennzeichnet werden, sodass nicht auch zB "10.172.16.5" gefunden wird.Grüße
bastla