harlekin
Goto Top

Robocopy in Powershell Startscript verzögert Anmeldevorgang

Hallo zusammen,

in einer Computer Startup GPO soll ein PowerShell Script per robocopy Dateien von einem Server zu einem PC kopieren.

Die zu kopierenden Dateien sind umfangreich.

Bisher wurde das ganze nicht in PowerShell sondern in Batch abgewickelt. Die Batch wurde von der GPO gestartet, der Anmeldebildschirm kam und der Kopiervorgang wurde dann im Hintergrund fortgesetzt.

Unter Powershell wartet das System nun anscheinend bis das Kopieren beendet wurde und zeigt erst dann den Anmeldebildschirm an.

Ich kann den Kopiervorgang im PowerShell Script nicht aus dem eigentlichen Script herauslösen da, nachdem die Dateien kopiert wurden, noch weitere Aktionen ausgeführt werden müssen.

Kann mir jemand sagen ob und wie ich das Verhalten der GPO / des Scripts so beeinflussen kann, dass es sich ähnlich wie die Batch verhält?

Danke.

Viele Grüße
Harlekin

Content-ID: 362746

Url: https://administrator.de/forum/robocopy-in-powershell-startscript-verzoegert-anmeldevorgang-362746.html

Ausgedruckt am: 22.12.2024 um 18:12 Uhr

DerWoWusste
DerWoWusste 29.01.2018 um 17:19:01 Uhr
Goto Top
harlekin
harlekin 30.01.2018 um 17:44:23 Uhr
Goto Top
Hallo,

Danke für Deinen Tip.

Leider funktioniert es nicht. kann es sein, dass die Ausführung nur dann angezeigt werden kann, wenn der Benutzer bereits angemeldet ist (dann bekomme ich Script-Fenster; die beziehen sich dann aber nicht mehr auf mein Problem)?

Ich bekomme ja aber schon gar keinen Logon Screen face-sad

Viele Grüße
Harlekin

P.S.: Ich hab auch mit den Einstellungen "Anmeldeskripts gleichzeitig ausführen" und "Startskripts asynchron ausführen" getestet - brachte leider auch keinen Erfolg.
DerWoWusste
DerWoWusste 30.01.2018 um 18:57:47 Uhr
Goto Top
"kann es sein, dass die Ausführung nur dann angezeigt werden kann, wenn der Benutzer bereits angemeldet ist" - nein, so kenne ich das nicht, es sollte auch Anmeldung kommen. Wartest Du ausreichend lange? Wenn Dein Startscript lokal gelegt ist (über den lokalen gpedit.msc - verweisend auf eine lokale Batch), was passiert dann?
harlekin
harlekin 31.01.2018 um 15:57:31 Uhr
Goto Top
Hallo,

bei mir kommt nach wie vor leider erst nach gelungener Anmeldung ein Fenster in dem ein Script sichtbar ausgeführt wird... vorher nicht.

Nichts desto trotz passt ein Timestamp im Script nach der Robocopy Kopieraktion (die > einer halben Stunde läuft) mit dem Erscheinen der Anmeldemaske. Ich unternehme vorher nichts und beobachte den Bildschirm ob ggf. doch ein Script-Fenster hoch kommt. Nichts.

Auch wenn ich das Script in die lokale Policy einbinde dauert es so lange.

Viele Grüße
Harlekin
DerWoWusste
DerWoWusste 31.01.2018 um 16:08:26 Uhr
Goto Top
Dann müssen wir dein Skript mal ansehen samt output. Könnte sein, dass eine Securitysoftware die Devices bis zur Anmeldung blockt - Windows macht das nicht von sich aus.
harlekin
harlekin 01.02.2018 um 09:53:29 Uhr
Goto Top
Hallo,

das ist dann nicht weiter schwer zu liefern... das Script habe ich zum Testen inzwischen ziemlich ausgedünnt.

Script und Output-File anbei.

Zum Umgebung... PCs sind Windows 7 und 10, Server laufen auf W2K8 R2. Die Übertragung muss im Robocopy über das /IPG:5000 sehr bandbreitenschonend durchgeführt werden, da die Leitung zwischen Standort A und B ziemlich dünn ist.

Gruß
Harlekin

Script

Start-Transcript -path "c:\users\public\test_data\Test_Transcript.log" -Append
cls
$CopySource = "\\SERVER01\DFS\Data"
$CopyDestination = "c:\users\public\test_data"
$LogFile = "c:\users\public\test_data\logfile.txt"

Function write-log($LogString)
{
$TempDateTime = $(get-date -f yyyy.MM.dd" - "HH:mm:ss:fff)
$LogString = $TempDateTime + ' ---- ' + $LogString
Add-Content $Logfile -Value $Logstring
}


write-log -LogString "START COPY"
C:\windows\system32\Robocopy.exe $CopySource $CopyDestination /E /Z /R:1 /W:1 /IPG:5000 /NP /log+:$LogFile
write-log -LogString "STOP COPY"
Stop-Transcript
Exit


Und das Logfile sieht dann so aus:

2018.01.31 - 16:59:12:790 ---- START COPY

ROBOCOPY :: Robustes Dateikopieren fr Windows

Gestartet: Wed Jan 31 16:59:13 2018

Quelle : \\SERVER01\DFS01\Data\
Ziel : c:\users\public\test_data\

Dateien : *.*

Optionen: *.* /S /E /DCOPY:DA /COPY:DAT /Z /NP /IPG:5000 /R:1 /W:1


2 \\SERVER01\DFS01\Data\
*EXTRA Datei 0 Test_Transcript.log
Neue Datei 64.8 m File1.zip
Neue Datei 82.3 m File2.zip
... Eintrag gekuerzt ...



Insgesamt KopiertšbersprungenKeine šbereinstimmung FEHLER Extras
Verzeich.: 5 4 1 0 0 0
Dateien: 9 9 0 0 0 2
Bytes: 147.85 m 147.85 m 0 0 0 43
Zeiten: 3:32:15 3:32:14 0:00:00 0:00:01


Geschwindigkeit: 12174 Bytes/Sek.
Geschwindigkeit: 0.696 Megabytes/Min.

Beendet: Wed Jan 31 20:31:29 2018
2018.01.31 - 20:31:29:912 ---- STOP COPY
DerWoWusste
DerWoWusste 01.02.2018 um 10:21:58 Uhr
Goto Top
Prüfe bitte, ob es mit einer Securitysoftware zu tun hat, die so dämlich ist, dass sie bis zum Logon alles blockiert.
harlekin
harlekin 01.02.2018 um 10:25:58 Uhr
Goto Top
nein die Security-Software ist es nicht. Im Einsatz ist Symantec AV.

Wenn ich Robocopy über eine Batch laufen lasse - also quasi das gleich Script nur in Batch - dann kommt der Logon Screen deutlich früher, sprich das Script wird im Hintergrund weiter ausgeführt.
DerWoWusste
Lösung DerWoWusste 01.02.2018 aktualisiert um 10:37:14 Uhr
Goto Top
Das mit Batch sagtest Du bereits. Was lässt dich sicher sein, dass es nicht Symantecs Produkt ist? Hast du es mal deinstalliert?

An Deiner Stelle würdeich einfach die Batch nehmen oder Batchcode in Powershell, oder ganz simpel Dateien per Gruppenrichtlinien verteilen.
harlekin
harlekin 01.02.2018 um 17:55:15 Uhr
Goto Top
ich hab es jetzt gelöst indem ich das PowerShell Script nicht über den Reiter "PowerShell" in den Startup Scripts der GPOs aufrufe sondern eine Batch nutze die das PowerShell Script aufruft.

Damit geht's wie ich mir das vorstelle.

Danke Dir für Deine Hilfe.

Viele Grüße
Harlekin
DerWoWusste
DerWoWusste 01.02.2018 um 20:53:07 Uhr
Goto Top
Gerne