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

Beim Login Script alle Netzwerklaufwerke trennen

Frage Entwicklung

Mitglied: Ferengie

Ferengie (Level 1) - Jetzt verbinden

22.03.2011 um 09:22 Uhr, 6034 Aufrufe, 16 Kommentare

Hallo Gemeinde,

ich habe ein Problem mit unserem Logi Script.

Beim Login sollen alle Netzlaufwerke getrennt werden.
Dies wird auch gemacht. Aber wenn man schon angemeldet ist und das Login Script noch einmal ausführt erscheint folgende Fehlermeldung:

Fehler: Falscher Parameter
Code 80070057
Quelle: WSHNetwork.RemoveNetworkDrive
Es handelt sich um folgenden Abschnitt:

'Disconnect ALL mapped drives
Set clDrives = objNetwork.EnumNetworkDrives
For i = 0 to clDrives.Count -1 Step 2
objNetwork.RemoveNetworkDrive clDrives.Item(i), True, True
Next

Es betrifft die Zeile:
objNetwork.RemoveNetworkDrive clDrives.Item(i), True, True


Habe ich dort einen Denkfehler.

Dieser Fehler erscheint immer dann, wenn sich ein User über Remote auf einen PC einwählt.

Also, wie schaffe ich es, dass erst alle vorhandenen Netzlaufwerke getrennt werden. Nach der erfolgreichen Trennung werden die Laufwerke wieder gemappt.

Vielen Dank im voraus!
Mitglied: laster
22.03.2011 um 09:25 Uhr
Hallo,

wenn's nicht VB sein mus:
01.
net use * /delete
vG
LS
Bitte warten ..
Mitglied: Snowman25
22.03.2011 um 09:32 Uhr
Und wenns doch VB sein muss:
01.
Set objShell = CreateObject("WScript.Shell") 
02.
objShell.Run "net use * /DELETE",0,True
GRuß
Snow
Bitte warten ..
Mitglied: Ferengie
22.03.2011 um 09:51 Uhr
Funktioniert auch nicht wirklich.
Es werden zwar alle LW getrennt, aber nicht neu gemappt.
Hier mal das komplette Script:

'Option Explicit 
 
Dim objNetwork, strDriveLetter, strRemotePath, strUserName 
 
strDriveLetter = "G:"  
strRemotePath = "\\rmsg-1.rmsg.intern\privat\"  
 
 
Set objNetwork = WScript.CreateObject("WScript.Network")  
 
strDomain = objNetwork.UserDomain  
strUserName = objNetwork.UserName  
 
 
'Disconnect ALL mapped drives 
Set clDrives = objNetwork.EnumNetworkDrives 
For i = 0 to clDrives.Count -1 Step 2 
   objNetwork.RemoveNetworkDrive clDrives.Item(i), True, True 
Next 
 
objNetwork.MapNetworkDrive "R:" , "\\rmsg-1.rmsg.intern\rmsg",True 
objNetwork.MapNetworkDrive "O:" , "\\rmsg-1.rmsg.intern\progs",True 
 
'Home Directory Setzen 
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath & strUserName 
 
 
'WScript.Echo " Launch Windows Explorer, check: "& strDriveLetter, strRemotePath & strUserName 
'WScript.Echo " Launch Windows Explorer, check: "& strDriveLetter 
'WScript.Quit
Bitte warten ..
Mitglied: BigWim
22.03.2011 um 10:01 Uhr
Moin Ferengie,

ehrlich gesagt, versteht ich schon gar nicht den Ablauf.

Aber wenn man schon angemeldet ist und das Login Script noch einmal ausführt erscheint folgende Fehlermeldung
Wie kann ein Loginscript ein zweites Mal laufen, wenn ich schon angemeldet bin?


Ein Benutzer meldet sich an.
Loginscript läuft ohne Fehler.

Ein Benutzer meldet sich über Remote.
Loginscript meldet "falscher Paramter"


Dein Script geht davon aus, dass in jedem Laufwerke vorhanden sind, die zu trennen sind. Ist das so?
Lass Dir doch mal anzeigen, was das Script eigentlich trennen möchte.
01.
For i = 0 to clDrives.Count -1 Step 2 
02.
WScript.Echo "Trenne " & clDrives.Item(i) 
03.
objNetwork.RemoveNetworkDrive clDrives.Item(i), True, True 
04.
Next

Grüße
Markus
Bitte warten ..
Mitglied: Ferengie
22.03.2011 um 10:10 Uhr
Es kommt folgende Meldung:

Trenne
Mehr nicht.

Nur zu meiner Entschuldigung - Ich bin nicht der VBS Profi.
Bitte warten ..
Mitglied: BigWim
22.03.2011 um 10:15 Uhr
Moin Ferengie,

Nur zu meiner Entschuldigung - Ich bin nicht der VBS Profi.
ich auch nicht und hoffe, dass das Echo richtig ist.

Ich denke aber, dass der Grund ist. Weil nichts zum trennen da ist, gibt es auch keine Parameter.

Damit Du nicht erst in diesen Fehler läufst, baue doch eine Abfrage ein. In etwa so (Syntax ist mir unbekannt)
01.
if clDrives.Count > 0 then 
02.
  For i = 0 to clDrives.Count -1 Step 2 
03.
  objNetwork.RemoveNetworkDrive clDrives.Item(i), True, True 
04.
  Next 
05.
endif oder end if
Markus
Bitte warten ..
Mitglied: Ferengie
22.03.2011 um 10:29 Uhr
Hallo BigWim!

Jetzt kommt folgende Meldung:

Fehler: Objekt erforderlich: clDrives' 
Code: 800A01A8 
Quelle: Laufzeitfehler in Microsoft VBScript
Aber vielen Dank!
Bitte warten ..
Mitglied: BigWim
22.03.2011 um 10:46 Uhr
Moin Ferengie,

ich fürchte, dass hat etwas mit der Syntax zu tun.

Ziel sollte sein, durch eine Abfrage von Count festzustellen, ob zu trennende Laufwerke vorhanden sind.

Vielleicht kannst Du die aktuelle Version des Scriptes mal veröffentlichen.

Grüße
Markus
Bitte warten ..
Mitglied: Ferengie
22.03.2011 um 10:48 Uhr
Hallo BigWim,

die komplette Syntax steht weiter oben (3. Beitrag).
Bitte warten ..
Mitglied: laster
22.03.2011 um 10:51 Uhr
Hallo noch einmal,

01.
@echo off 
02.
 
03.
set strDriveLetter=G:   
04.
set strRemotePath=\\rmsg-1.rmsg.intern\privat 
05.
 
06.
::Disconnect ALL mapped drives  
07.
net use * /delete 
08.
 
09.
net use R: \\rmsg-1.rmsg.intern\rmsg 
10.
net use O: \\rmsg-1.rmsg.intern\progs 
11.
 
12.
::Home Directory Setzen  
13.
net use %strDriveLetter% %strRemotePath%\%USERNAME%
(falls es nicht VB sein muss).

vG
LS
Bitte warten ..
Mitglied: bastla
22.03.2011 um 10:51 Uhr
@BigWim
Die zusätzliche Abfrage ist nicht nötig - wenn clDrives.Count 0 ergibt, müsste die Schleife von 0 bis -1 laufen; da sie das bei einer Schrittweite von +2 nicht kann, wird sie einfach übersprungen ...
Dein Vorschlag von oben wäre übrigens so etwas informativer:
01.
Set objNetwork = WScript.CreateObject("WScript.Network") 
02.
Set clDrives = objNetwork.EnumNetworkDrives  
03.
For i = 0 to clDrives.Count -1 Step 2  
04.
   WScript.Echo clDrives.Item(i), clDrives.Item(i+1) 
05.
Next 
Grüße
bastla
Bitte warten ..
Mitglied: bastla
22.03.2011 um 10:53 Uhr
Hallo Ferengie!

Die Fehlermeldung ist vermutlich darauf zurückzuführen, dass Du nicht BigWims Vorschlag in Dein Script integriert, sondern eigenständig zu testen versucht hast - dann gibt es natürlich kein Objekt "clDrives" ...

Grüße
bastla
Bitte warten ..
Mitglied: BigWim
22.03.2011 um 11:37 Uhr
@bastla

Moin Bastla,

Dein Vorschlag von oben wäre übrigens so etwas informativer
Wenn ich doch soweit schon wäre ....

wenn clDrives.Count 0 ergibt, müsste die Schleife von 0 bis -1 laufen
Genau: Müßte

Ich befolge immer noch den Rat meines Klassenlehrers: Markus! Scharf nachdenken und dann das andere nehmen.
Meine Vermutung ging dahin, dass das Konstrukt vielleicht doch nicht richtig aufgebaut ist und mit der Abfrage wollte ich auf Nr. sichergehen, weil ich nämlich nicht weiß, was objNetwork.EnumNetworkDrives zurückliefert.

Grüße
Markus
Bitte warten ..
Mitglied: bastla
22.03.2011 um 11:50 Uhr
Hallo BigWim!
weil ich nämlich nicht weiß, was objNetwork.EnumNetworkDrives zurückliefert.
Wie Du dem "Enum" entnehmen kannst, erhältst Du eine "Enumeration" (Aufzählung) - kannst Du so ähnlich wie ein eindimensionales Array verwenden, sodass also auch
01.
Set objNetwork = WScript.CreateObject("WScript.Network") 
02.
Set clDrives = objNetwork.EnumNetworkDrives  
03.
For i = 0 to clDrives.Count -1 Step 2  
04.
   WScript.Echo clDrives(i), clDrives(i+1) 
05.
Next
funktionieren würde ...

Grüße
bastla
Bitte warten ..
Mitglied: Ferengie
22.03.2011 um 11:50 Uhr
Hallo an Alle,

ich habe das Problem jetzt gelöst.

Folgende Zeile habe ich noch vor "'Disconnect ALL mapped drives " eingefügt:

On Error Resume Next 
WSHNetwork.RemoveNetworkdrive 
 
If Err.Number Then 
WSHNetwork.RemoveNetworkdrive "G:" 
WSHNetwork.RemoveNetworkdrive "O:" 
WSHNetwork.RemoveNetworkdrive "R:" 
End if
Vielen Dank für Eure Mithilfe!
Bitte warten ..
Mitglied: BigWim
22.03.2011 um 12:03 Uhr
Hallo Bastla,

vielen Dank für die Erklärung.

Markus
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Windows Server
Windows 10 und Windows SSB 2008 - Login Script greift nicht (21)

Frage von heisenberg4 zum Thema Windows Server ...

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

Frage von Sentinel87 zum Thema VB for Applications ...

Windows 10
Nonstop Login im Sperrbildschirm (4)

Frage von TiCar zum Thema Windows 10 ...

Batch & Shell
Script zum Auflösen einer Ordnerstruktur und zurück gesucht (12)

Frage von websolutions zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (10)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...