Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 6076 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 ..
Ähnliche Inhalte
Windows Server
Login Script verzögert ausführen (6)

Frage von Intruder0001 zum Thema Windows Server ...

Windows Server
Login Script als Domänenadmin ausführen (27)

Frage von erikro zum Thema Windows Server ...

Windows Server
gelöst Login Script nach der Anmeldung Zeitverzögert ausführen (4)

Frage von Intruder0001 zum Thema Windows Server ...

Windows Server
gelöst Login Script (kix) bei Windows Server 2012 R2 (6)

Frage von TechNoob17 zum Thema Windows Server ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Ccleaner-Angriff war nur auf große Unternehmen gemünzt

(7)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Sicherheit

Eventuell neue Lücke in Intels ME

Information von sabines zum Thema Sicherheit ...

Viren und Trojaner

FinFisher: Internetprovider schieben Spitzelopfern Malware unter

(1)

Information von kaiand1 zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Humor (lol)
Freidach Beitrag (22)

Frage von Penny.Cilin zum Thema Humor (lol) ...

Lizenzierung
Programm soll in verschiedenen Versionen lizenziert sein (20)

Frage von Yanmai zum Thema Lizenzierung ...

Humor (lol)
Wo ist der Fehler auf dem Bild? (17)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows 7
SSD - Win7 Lags (17)

Frage von ph5555 zum Thema Windows 7 ...