Jump to content

VBS Anmeldeskript wartet nicht auf Netzlaufwerke


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

 

ich habe ein VBSkript geschrieben welches vorgefertigte Chrome, Firefox und Thunderbird Profile bei neuen Usern (also Usern die noch keine Profile haben) vom Server zu kopieren.

Das Script funktioniert auch super solange ich es manuell und nicht als Anmeldeskript starte.

Denn wen ich das tue meldet mir das Skript immer das Laufwerk H: nich existiert und hält an (Was für diesen Fall auch vorgesehen ist).

Doch wenn ich dann nachschaue existiert das Netzlaufwerk H.

Ich habe bereits in der Gruppenrichtlinie Warten auf Netzwerk aktiviert und trotzdem kommt immer dieser "Fehler".

Ich habe sogar schon eine manuelle Pause von 10 und sogar 20 Sekunden eingebunden doch nichts hat geholfen.

 

Hier mal das Skript (nicht wundern ist etwas Chaotisch, bin noch Anfänger)

Set objShell = WScript.CreateObject("WScript.Shell")
Set objFileSystem = WScript.CreateObject("Scripting.FileSystemObject")

Dim MsgTxt
Dim strDriveLetter
Dim objFileSystem
Const TIMEOUT = 5

Call Check

Sub Check

strDriveLetter = "H:"
If (objFileSystem.DriveExists(strDriveLetter)) Then
  Call Ordner
Else
  MsgTxt = "Das Netzwerklaufwerk H:\ wurde nicht gefunden." & vbCrlf & " " & vbCrlf & "Bitte wenden Sie sich an den Systemadministrator."
  objShell.Popup MsgTxt
  WScript.Quit()
End If

End Sub

Sub Ordner

'ZielOrdner existenz überprüfen und ggf. erstellen
set fs = CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject("WScript.Shell") 

If NOT fs.folderexists(objShell.ExpandEnvironmentStrings ("H:\Profile\")) then
set folder = fs.createfolder(objShell.ExpandEnvironmentStrings ("H:\Profile\"))
MsgTxt = "Erstelle das Profil Verzeichnis."
Call Msg
End if

If NOT fs.folderexists(objShell.ExpandEnvironmentStrings ("H:\Profile\Chrome\")) Then
MsgTxt = "Kopiere das Chrome Profil."
Call Msg
'Ordner vom Server auf PC kopieren(true=überschreiben Zielordner)
fs.copyfolder ("\\scsrv-01\hidden_profiles$\Chrome"), objShell.ExpandEnvironmentStrings ("H:\Profile\"),True
End If

If NOT fs.folderexists(objShell.ExpandEnvironmentStrings ("H:\Profile\Firefox\")) Then
MsgTxt = "Erstelle das Firefox Profil."
Call Msg
'Ordner vom Server auf PC kopieren(true=überschreiben Zielordner)
fs.copyfolder ("\\scsrv-01\hidden_profiles$\Firefox"), objShell.ExpandEnvironmentStrings ("H:\Profile\"),true
End If

if NOT fs.folderexists(objShell.ExpandEnvironmentStrings ("H:\Profile\Thunderbird\")) Then
MsgTxt = "Erstelle das Thunderbird Profil."
Call Msg
'Ordner vom Server auf PC kopieren(true=überschreiben Zielordner)
fs.copyfolder ("\\scsrv-01\hidden_profiles$\Thunderbird"), objShell.ExpandEnvironmentStrings ("H:\Profile\"),true
End If
WScript.Quit()

End Sub

Sub Msg

objShell.Popup MsgTxt, TIMEOUT

End Sub

Ich bin für jeden Hinweis dankbar :)

 

Danke im voraus

Link zu diesem Kommentar

Ich versteh nicht soviel von VBS (OK, gar nix :-) ), aber wo im Skript mappst Du das Laufwerk H:\?

Für mich fehlt das so etwas, wie:

 

Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.MapNetworkDrive "H:", "\\Server\Freigabe"

(von http://msdn.microsoft.com/en-us/library/8kst88h6(v=vs.84).aspx)

Dann würde es auch Sinn machen: kein H:\ => Fehlermeldung

Link zu diesem Kommentar

Hi Sukkurashu.

 

Willkommen am board.

 

Hast Du schon mal versucht nicht auf den symbolischen Namen zu referieren sondern auf die Servername oder IP und den Freigabenamen?

Also statt "H:\" eine direkte Adressierung auf "\\Servername\Freigabename" oder sogar "192.xxx.xxx.xxx\Freigabename".

 

ciao und viel Erfolg

M.

Die Idee hatte ich auch schon. Wäre eine Notlösung, denn die Profile sollen nur für Nutzer der Gruppe firma all kopiert werden.

Und da ich ja bereits per GPO festgelegt habe das nur User der firma all Gruppe das Laufwerk H zugewiesen bekommen sollte dies die "pseudo Abfrage" sein ob er denn auch in dieser Gruppe ist.

Die MSG habe ich nur zum testen eingebaut, die sollte nach erfolgreichem einbinden rausfliegen.

 

Ich versteh nicht soviel von VBS (OK, gar nix :-) ), aber wo im Skript mappst Du das Laufwerk H:\?

Für mich fehlt das so etwas, wie:

Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.MapNetworkDrive "H:", "\\Server\Freigabe"

(von http://msdn.microsoft.com/en-us/library/8kst88h6(v=vs.84).aspx)

Dann würde es auch Sinn machen: kein H:\ => Fehlermeldung

Das mache ich über eine GPO mittels Laufwerkszuordnung, denn es müssen je nach Gruppenmitgliedschaft andere Netzlaufwerke eingerichtet werden. (Das funktioniert ja auch super)

Link zu diesem Kommentar

Das mache ich über eine GPO mittels Laufwerkszuordnung, denn es müssen je nach Gruppenmitgliedschaft andere Netzlaufwerke eingerichtet werden. (Das funktioniert ja auch super)

Dann vermute ich mal, daß die GPO zu diesem Zeitpunkt bei der Anmeldung noch nicht abgearbeitet wurde.

Der Benutzer-Anteil der GPO des Laufwerk-Mappings wird ja erst bei der Anmeldung verarbeitet und nicht schon beim "Warten auf's Netzwerk"

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...