none
Script mit get-childitem auf W7 Freigabe beim Systemstart RRS feed

  • Frage

  • Hallo zusammen,

    ich habe ein PowerShell-Script das über eine GPO beim Computerstart ausgeführt wird.

    An einer Stelle soll die Variable "MyFileName" einen freigegebenen Pfad abfragen (Rechte auf NTFS und Freigabe für Domain Computers vorhanden).

    $RemotePath = "\\FileServer\Freigabe\Pfad1"
    $MyFileName = (Get-ChildItem -path "$RemotePath\*.txt" -name)
    write-host $MyFileName


    Das abgefragte System ist ein Windows 7 Arbeitsplatz.
    Im angesprochenen RemotePath gibt es immer nur eine einzige Datei mit der Endung txt.

    An anderer Stelle im Script wird über den gleichen Befehl eine *.txt Datei auf einem W2K8 Server abgefragt. Das funktioniert.

    Führe ich das Script lokal in einer ISE Konsole aus hat die Variable $MyFileName einen Wert. Lasse ich das Script beim Start des PCs laufen bleibt die Variable leer.

    Ich habe versucht eine Zeile davor ein  "cd c:" zu schreiben (Google Tip) oder über  $RemotePath = "FileSystem::\\Server\Freigabe\Pfad1" (ebenfalls ein Tip von Google).

    Auch über eine Deklaration der Variablen mit

    set-variable -Name RemotePath -value "\\FileServer\Freigabe\Pfad1"
    und
    set-variable -Name $MyFileName -value (Get-ChildItem -path "$RemotePath\*.txt" -name)

    gab es keinen Erfolg.

    Anstatt mit "get-childitem" könnte man auch über

    dir $RemotePath\*.txt -Name

    gehen, das funktioniert aber auch nicht.

    Mit "start-transcript" werden keine Fehler ausgegeben. Es gibt eine GPO in der "beim Starten auf das Netzwerk warten" aktiviert ist.

    Hat jemand vielleicht noch einen anderen Tip für mich?

    Danke & Gruß
    Harlekin

    Mittwoch, 24. Januar 2018 07:58

Antworten

  • Hallo,

    > ich habe ein PowerShell-Script das über eine GPO beim Computerstart ausgeführt wird.

    Während des Computerstarts wird das Script im Computer Kontext und nicht im User Kontext ausgeführt. Allenfalls fehlen dem Computeraccount die Berechtigungen, um auf den Share zugreifen zu können.

    Mittwoch, 24. Januar 2018 08:26
  • Das Script muss bei User-Anmeldung ausgeführt werden. Hinzu kommt, dass Netzwerkressourcen erst verzögert zur Verfügung gestellt werden und in Win10 ein Programm/Script keine implizite Anmeldung mehr durchführen darf/kann. Dies muss durch den User (leider) interaktiv durchgeführt werden. Dies ist hier schon mehrfach diskutiert worden.
    Mittwoch, 24. Januar 2018 09:01

Alle Antworten

  • Hallo,

    > ich habe ein PowerShell-Script das über eine GPO beim Computerstart ausgeführt wird.

    Während des Computerstarts wird das Script im Computer Kontext und nicht im User Kontext ausgeführt. Allenfalls fehlen dem Computeraccount die Berechtigungen, um auf den Share zugreifen zu können.

    Mittwoch, 24. Januar 2018 08:26
  • Das Script muss bei User-Anmeldung ausgeführt werden. Hinzu kommt, dass Netzwerkressourcen erst verzögert zur Verfügung gestellt werden und in Win10 ein Programm/Script keine implizite Anmeldung mehr durchführen darf/kann. Dies muss durch den User (leider) interaktiv durchgeführt werden. Dies ist hier schon mehrfach diskutiert worden.
    Mittwoch, 24. Januar 2018 09:01
  • /$RemotePath = "\\FileServer\Freigabe\Pfad1"
    $MyFileName = (Get-ChildItem -path "$RemotePath\*.txt" -name)
    write-host $MyFileName
    /

    Logging, logging, logging :-) Besorg Dir aus der Powershell Gallery mal das Logging-Modul. Die beiden anderen Antworten sind zwar fachlich korrekt, aber wenn Du sichergestellt hast, daß Domain Computers Leserechte auf Share und NTFS haben, treffen sie eher nicht zu.

    Mittwoch, 24. Januar 2018 10:06
  • Anstatt mit "get-childitem" könnte man auch über


    dir $RemotePath\*.txt -Name

    gehen, das funktioniert aber auch nicht.

    ...und hier siehst Du auch, warum das nichts ändern würde:


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> https://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com


    In theory, there is no difference between theory and practice. In practice, there is.

    Mittwoch, 24. Januar 2018 11:06