Hallo Rolf
Hab mein Problem mit einer Bastellösung nun hingekriegt. Habe nun in die Batch, welche das PowerShell-Script aufruft, die folgenden Zeilen eingebaut:
if exist %temp%\logon_duerst-sool.ps1 del /f /q %temp%\logon_duerst-sool.ps1
xcopy \\srv01\netlogon\logon_duerst-sool.ps1 %temp% /h /r /y
Nachdem das Setzen der Gruppenrichtlinie "Skriptausführung aktivieren" unter "Computerkonfiguration", "Administrative Vorlagen", "Windows Komponenten", "Windows PowerShell" und mehrere "gpupdate /force" nichts gebracht haben und ich nicht in mühseliger Kleinarbeit jedes Pipifax-Script von mir signieren will, habe ich mich für diesen Bastel entschieden. Ist zwar nicht die feine Art, aber es funktioniert wenigstens.
Diesbezüglich verstehe ich Microsoft auch nicht. Ich stelle bei einem Programm (PowerShell) ein, dass ich diese Sicherheitsmassnahmen abstellen will (set-executionpolicy unrestricted), aber es macht es nicht vollständig. Ich weiss nicht, wie Microsoft jemals grosse Scharen von Administratoren von der PowerShell überzeugen will, wenn sie einem solche Steine in den Weg legen. Naja, genug geflucht. Ich habe noch eine andere Frage:
Ich verbinde in meinem Loginscript mit dem COM-Objekt "Wscript.Network" die Laufwerke. Das sieht dann z.B. so aus:
$Netzwerkobjekt = New-Object -comobject "WScript.Network"
write-host "Connecting Drive J: \\srv01\public$..."
$Netzwerkobjekt.mapnetworkdrive("J:","\\srv01\public$","False")
start-sleep -milliseconds 500
write-host "Drive J: successfully connected!" -foregroundcolor green
Irgendwie wäre es doch schon noch schön, wenn ich mittels einer Errorlevel-Abfrage abfragen könnte, ob das Verbinden des Laufwerks geklappt hat oder nicht und ich dann eine entsprechende Meldung ausgeben könnte. Ich habs bereits auf die folgende Weise probiert:
$Netzwerkobjekt.mapnetworkdrive("J:","\\srv01\public$","False")
if ($LASTEXITCODE -ne 0) {Write-Host "Error: Drive J: was not successfully connected!" -ForegroundColor red} else {write-host "Drive J: successfully connected!"}
Irgendwie haut das aber offenbar nicht richtig hin. Ich habe nämlich mal das "J:" durch "C:" ersetzt, um einen Fehler zu produzieren. Das Script gibt zwar eine riesige Fehlermeldung aus, allerdings nicht meine. Bei meiner If-Abfrage sagt er immer noch "Drive Q: successfully connected!". Weisst du gerade eine Lösung? Ansonsten greife ich wieder auf "net use" zurück, das hat wenigstens einen Errorlevel, welchen man auswerten kann........
Gruss aus der Schweiz
TuXHunT3R
Edit:
PS: Das Script, welches ich auf administrator.de gepostet habe, kommt noch nicht mit den neuen XML-Eventlogs von Vista und 2008 Server zurecht. Sobald ich das hingebogen habe, werde ich das Script posten.