status_Q 0 Geschrieben 26. Januar 2021 Melden Teilen Geschrieben 26. Januar 2021 (bearbeitet) Hallo Community, ich habe etwas Schwierigkeiten mit meinem Script und der Fehlerursache. Eventuell bin ich etwas festgefahren und Ihr könnt mir neue Einblicke zur Problemlösung bieten. Mein Script stellt die Verbindung zu Firmennetzlaufwerke an einigen PC´s her. Da diese Laufwerke nicht Persistent sind, müssen nach jedem Neustart oder nach dem Herunterfahren die Netzlaufwerke neu verbunden werden. Sporadisch, speziell nachdem ein Computer heruntergefahren wurde und neu eingeschaltet wird, kann er vorkommen, das mein Script keine Verbindung zum Netzlaufwerk herstellen kann. Anbei ein Codeschnipsel: #region Laufwerk K testen und verbinden $path = "K:\" write-host "testing Drive connection..."$path -ForegroundColor Yellow $xPath = Test-Path -Path $path $count = 0 #Schleife die bis zu 15x versucht eine Verbindung zum Neztlaufwerk herzustellen if (Test-Path -Path $path) { Write-Host "$path Connected!" -ForegroundColor Green } else { while (-not($xPath) -and $count -le 15) { if (-not(Test-Path -Path $path)) { Write-Host "start connecting to Network Drive"$path -ForegroundColor Blue $connectDrive = Start-Job -ScriptBlock { $driveName = "K" $provider = "FileSystem" $driveRoot = "\\xxxx.xxx.xxx\xx" $password = ConvertTo-SecureString "xxxx" -AsPlainText -Force $credentials = New-Object System.Management.Automation.PSCredential("xxxxxx", $password) New-PSDrive -Name $driveName -PSProvider $provider -Root $driveRoot -Credential $credentials -Scope Global $drive = New-Object -ComObject wscript.network $drive.MapNetworkDrive("k:", "\\xxxx.xxx.xxx\xx") } Wait-Job -Job $connectDrive -Timeout 10 } $xPath = Test-Path -Path $path $count++ } } #Fehlermeldung wird erzeugt, falls keine Verbindung hergestellt werden kann if (-not(Test-Path -Path $path)) { Write-Host "can not connect to network drive"$path", please check connection!" -ForegroundColor Red $msgError = New-Object -ComObject "WScript.Shell" $intButton = $msgError.Popup("Can not connect to Network Drive K:\", 0, "ERROR", 4096) if ($intButton -eq 1) {} } #endregion Falls Ihr Fragen oder mehr Infos benötigt, lasst es mich wissen. Vielen Dank bearbeitet 26. Januar 2021 von status_Q Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 26. Januar 2021 Melden Teilen Geschrieben 26. Januar 2021 Zuerst bitte prüfen ob diese GPO-Einstellungen gesetzt sind, und die Clients sie auch bekommen: https://www.gruppenrichtlinien.de/artikel/fast-logon-schnelles-anmelden-asynchrones-startverhalten-ehemals-faq-36 Wenn das immer noch nicht hilft, kannst Du dir das anschauen und testen: https://www.gruppenrichtlinien.de/artikel/ssd-zu-schnell-synchroner-startvorgang-nicht-moeglich Den Schnellstart kann man unter W10 auch abschalten, der User merkt davon eigentlich nichts. 1 Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 26. Januar 2021 Melden Teilen Geschrieben 26. Januar 2021 Hi, ich würde auf "advanced Hibernate" tippen und das die PCs gar nicht runterfahren. Alternativ sind die Rechner zu schnell und "das Netzwerk" ist noch nicht da. Im Script könntest du das abfangen und bspw. mit "Test-Connection" warten, bis eine Verbindung zum Ziel möglich ist. Generell wäre halt auch ein Logging im Script bei der Fehlersuche hilfreich. Gruß Jan P.S.: Credentials in einem Script? 1 Zitieren Link zu diesem Kommentar
status_Q 0 Geschrieben 26. Januar 2021 Autor Melden Teilen Geschrieben 26. Januar 2021 vielen Dank für die Hinweiße. Nach kurzer Überprüfung, dürfte es der Schnellstart gewesen sein. Vielen Dank dafür! vor einer Stunde schrieb testperson: P.S.: Credentials in einem Script? keine Sorge. Ich kompiliere mein Script in eine .exe. Da sieht der User nichts von den credentials Nochmals recht herzlichen Dank. Ihr habt mir meinen Tag versüßt Happy Coding!! Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 26. Januar 2021 Melden Teilen Geschrieben 26. Januar 2021 vor 18 Minuten schrieb status_Q: keine Sorge. Ich kompiliere mein Script in eine .exe. Da sieht der User nichts von den credentials 1 2 Zitieren Link zu diesem Kommentar
daabm 1.366 Geschrieben 26. Januar 2021 Melden Teilen Geschrieben 26. Januar 2021 "Ich versteck's in einer Papiertüte, dann sieht es keiner..." Das geht noch nicht mal mit C++ - von C# oder Powershell wollen wir hier nicht reden, vergiß die Aussage am besten. Zitieren Link zu diesem Kommentar
status_Q 0 Geschrieben 27. Januar 2021 Autor Melden Teilen Geschrieben 27. Januar 2021 über die Korrektheit dieser Möglichkeit lässt sich streiten. Es ist die Philosophie des Unternehmens/Weißung des Vorgesetzen. Jetzt hab ich allerdings einen ähnlich gelagerten Fall wie oben beschrieben. Allerdings beim Benutzer abmelden/Wechsel. Beim Hochfahren bzw. Neustart wird User A angemeldet. Die Netzlaufwerke werden verbunden. User A wird abgemeldet/Wechsel und lokal Admin angemeldet. Das Script startet aber die Laufwerke können nicht verbunden werden. Habt Ihr eine Idee? Vielen Dank Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 27. Januar 2021 Melden Teilen Geschrieben 27. Januar 2021 vor 44 Minuten schrieb status_Q: Habt Ihr eine Idee? Siehe: vor 23 Stunden schrieb testperson: Generell wäre halt auch ein Logging im Script bei der Fehlersuche hilfreich. Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 27. Januar 2021 Melden Teilen Geschrieben 27. Januar 2021 vor 58 Minuten schrieb status_Q: über die Korrektheit dieser Möglichkeit lässt sich streiten. Es ist die Philosophie des Unternehmens/Weißung des Vorgesetzen. Man könnte ja auch den Userobjekten die Berechtigungen auf die Freigabe erteilen, dann braucht man mit Passwörtern nicht in Scripten zu hampeln. BTW: Es heißt Weisung und Vorgesetzten. vor 59 Minuten schrieb status_Q: Die Netzlaufwerke werden verbunden. User A wird abgemeldet/Wechsel und lokal Admin angemeldet. Das Script startet aber die Laufwerke können nicht verbunden werden. Was möchtest Du erreichen? Sollen die Laufwerke verbunden werden oder nicht? Falls letzteres, sollen sie für bestimmte Benutzer/Gruppen NICHT verbunden werden? Zitieren Link zu diesem Kommentar
status_Q 0 Geschrieben 27. Januar 2021 Autor Melden Teilen Geschrieben 27. Januar 2021 vor 19 Minuten schrieb Sunny61: BTW: Es heißt Weisung und Vorgesetzten. Vielen Dank. Ohne Kaffee ist es wohl noch etwas zu früh für mich. vor 12 Minuten schrieb Sunny61: Was möchtest Du erreichen? Sollen die Laufwerke verbunden werden oder nicht? Falls letzteres, sollen sie für bestimmte Benutzer/Gruppen NICHT verbunden werden? das Script soll unabhängig vom lokalen User und deren Berechtigungen bei Start/Neustart/Wechsel/Abmelden und Anmelden von UserB zu UserA zu UserB eine Verbindung zu den Laufwerken herstellen. Derzeit funktioniert die Verbindung zu den Netzlaufwerken bei Start/Neustart inkl. Autologin an UserB dank eurer Hilfe sehr gut. Die IT-Abteilung der Firma, hat einen User in den Credentials zur Verfügung gestellt. Die Rechner auf denen das Script ausgeführt wird, sind keine Domänenrechner Falls noch Erklärungsbedarf besteht, gerne melden. Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 27. Januar 2021 Melden Teilen Geschrieben 27. Januar 2021 vor 2 Stunden schrieb status_Q: das Script soll unabhängig vom lokalen User und deren Berechtigungen bei Start/Neustart/Wechsel/Abmelden und Anmelden von UserB zu UserA zu UserB eine Verbindung zu den Laufwerken herstellen. Derzeit funktioniert die Verbindung zu den Netzlaufwerken bei Start/Neustart inkl. Autologin an UserB dank eurer Hilfe sehr gut. Die IT-Abteilung der Firma, hat einen User in den Credentials zur Verfügung gestellt. Die Rechner auf denen das Script ausgeführt wird, sind keine Domänenrechner Dann eine geplante Aufgabe erstellen, man kann bei Anmeldung eines Users ein Programm starten. Funktioniert es bei einem Rechner, kann man die Aufgabe exportieren und auf den anderen Rechnern wieder importieren. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.