Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

VBS-Logoutscript IP-bezogen aber wie?

Frage Entwicklung VB for Applications

Mitglied: GPOdin

GPOdin (Level 2) - Jetzt verbinden

03.04.2010 um 18:14 Uhr, 3682 Aufrufe, 9 Kommentare

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:

01.
Dim WshNetwork, WshShell 
02.
Dim oDrives, fUser, fOS, fDomain, fUserName, oGroupDict 
03.
Dim objNetwork 
04.
Dim objFSO, objFileCopy 
05.
Dim strFilePath, strDestination 
06.
 
07.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
08.
Set objNetwork = CreateObject("WScript.Network") 
09.
Set WshNetwork = WScript.CreateObject("WScript.Network") 
10.
Set WshShell = WScript.CreateObject("WScript.Shell") 
11.
Set oDrives = WshNetwork.EnumNetworkDrives 
12.
 
13.
UserName = (WshShell.ExpandEnvironmentStrings("%UserName%")) 
14.
fUser = (WshNetwork.UserName) 
15.
Set WshShell = CreateObject("WScript.Shell") 
16.
 
17.
'Check if you are connected in LAN 172.16.**************************************** 
18.
strComputer = "." 
19.
Set objWMIService = GetObject("winmgmts:" & "!\\" & strComputer & "\root\cimv2" ) 
20.
Set colAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True" ) 
21.
For Each objAdapter in colAdapters 
22.
    IPdebut = LBound(objAdapter.IPAddress) 
23.
    IPfin = UBound(objAdapter.IPAddress) 
24.
    If (objAdapter.IPAddress(IPdebut) => "172.16" ) then  
25.
 
26.
'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) 
27.
 
28.
 
29.
	'## Sequence remove Network Printers" 
30.
		Dim UncPrinters 
31.
		UncPrinters	= Array("Drucker1","Drucker2","Drucker3",Drucker4") 
32.
'Anmerkung: ich möchte eigentlich nicht jeden Drucker einzeln auffüren müssen sondern eben alles was \\211PRT02\ beginnt --> Wie setze ich Wildcards? 
33.
 
34.
		Set objNetwork = WScript.CreateObject("WScript.Network") 
35.
			For i = 0 To Ubound(UncPrinters)  
36.
			on error resume next 
37.
			 objNetwork.RemovePrinterConnection("\\211PRT02\" & UncPrinters(i)) 
38.
			Next 
39.
			 
40.
	'##Sequence remove Network Drives## 
41.
		Dim DelNetDrive 
42.
			Set WshNet = CreateObject("WScript.Network") 
43.
				For DriveAsc = 102 To 122 
44.
				On Error Resume Next 
45.
				DelNetDrive = Chr(DriveAsc) & ":" 
46.
				WshNet.RemoveNetworkDrive DelNetDrive, True, True 
47.
			Next
Thank's a lot!

Frank
Mitglied: AndreasBrecht
03.04.2010 um 19:16 Uhr
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
Bitte warten ..
Mitglied: bastla
03.04.2010 um 19:56 Uhr
@AndreasBrecht
Falls es Dir gelingen sollte die verbundenen Drucker aufzulisten
Würde Dir als Stichwort "EnumPrinterConnections" helfen?

Grüße
bastla
Bitte warten ..
Mitglied: GPOdin
03.04.2010 um 20:02 Uhr
Hm; ehrlich gesagt steh ich bei der Frage auf dem Schlauch. Hab das hier gefunden:

01.
         var WshNetwork = WScript.CreateObject("WScript.Network"); 
02.
         var oPrinters = WshNetwork.EnumPrinterConnections(); 
03.
        WScript.Echo(); 
04.
         WScript.Echo("Network printer mappings:"); 
05.
         for(i = 0; i < oPrinters.length; i += 2) { 
06.
            WScript.Echo("Port " + oPrinters.Item(i) + " = " + oPrinters.Item(i + 1)); 
07.
         }
Aber wie binde ich das ein?
Bitte warten ..
Mitglied: GPOdin
03.04.2010 um 20:03 Uhr
zu AndreasBrecht's Command:

zu 1) also so in etwa oder?

01.
02.
03.
    If not (objAdapter.IPAddress(IPdebut) => "172.16." ) then wscript.qui 
04.
05.
06.
 
Danke Dir!
Bitte warten ..
Mitglied: AndreasBrecht
03.04.2010 um 21:38 Uhr
Hört sich gut an. Das könnte dan wohl singemäß so aussehen:

01.
set colPrinters = WshNetwork.EnumPrinterConnections 
02.
 
03.
For Each P in ColPrinters 
04.
  If Instr(P.Name, "11PRT02") > 0 Then Do Something 
05.
Next
Bitte warten ..
Mitglied: AndreasBrecht
03.04.2010 um 21:41 Uhr
Eher so:

If Instr(objAdapter.IPAddress(IPdebut), "172.16." ) > 0 Then wscript.quit

Oder so:

If Left(objAdapter.IPAddress(IPdebut), 7) = "172.16." Then wscript.quit
Bitte warten ..
Mitglied: bastla
03.04.2010 um 22:07 Uhr
@AndreasBrecht
Eher so:
01.
set oPrinters = WshNetwork.EnumPrinterConnections 
02.
For i = 1 To oPrinters.Count -1 Step 2 
03.
    If InStr(oPrinters(i), "\\211PRT02\") > 0 Then WshNetwork.RemovePrinterConnection(oPrinters(i)) 
04.
Next
Grüße
bastla
Bitte warten ..
Mitglied: bastla
03.04.2010 um 22:19 Uhr
... oder doch so:
If InStr("#" & Join(objAdapter.IPAddress, "#"), "#172.16.") > 0 Then ...
Da eine Netzwerkkarte mehrere Adressen haben kann, stellt "objAdapter.IPAddress" ein Text-Array dar - mit dem "#" vorweg und als Verknüpfungszeichen beim "Join()" kann der Beginn jeder Adresse gekennzeichnet werden, sodass nicht auch zB "10.172.16.5" gefunden wird.

Grüße
bastla
Bitte warten ..
Mitglied: GPOdin
04.04.2010 um 11:08 Uhr
Hi,

Super; danke euch beiden. Werd ich dienstag gleich testen! Ich geb dann noch Feedback! cool! Danke!
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
LAN, WAN, Wireless
gelöst TP-Link WA501G als Client einrichten - Keine IP Adresse wir bezogen (14)

Frage von bestelitt zum Thema LAN, WAN, Wireless ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

E-Mail
gelöst Mail Spam fremde IP (10)

Frage von BerndP zum Thema E-Mail ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...