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, 6039 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
Ähnliche Inhalte
LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...

Batch & Shell
gelöst PC nach einem Kopiervorgang herunterfahren - PowerShell Script? (4)

Frage von Stefan007 zum Thema Batch & Shell ...

Ubuntu
Nregp ereignis für bash-script (1)

Frage von rsadmchef zum Thema Ubuntu ...

Heiß diskutierte Inhalte
Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (13)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...