Get-ChildItem -force meldet "Zugriff verweigert" im Ordner "Eigene Dateien" und anderen Verbindungspunkten

8

Ich habe ein Skript, das ich geschrieben habe, das Dateien ersetzt. Ich übergebe Parameter für den Namen der Datei und den Basisstandort, von dem aus gesucht werden soll. Die Workerzeilen sind:

%Vor%

Ich habe $ Startlocation auf "C: \ Users" gesetzt, jedoch bekomme ich Zugriff verweigert, wenn ich versuche, durch andere Benutzerordner zu recursen. Ich bin voll Admin auf der Maschine, und ich habe bereits versucht, Powershell als Administrator ausführen. Ich kann auf alle Dateien über Windows Explorer ohne Problem zugreifen. Irgendeine Idee?

%Vor%

AKTUALISIEREN

Obwohl ich es nicht über GCI funktionierte, konnte ich WMI verwenden, um mein Problem zu lösen. Für Interessierte:

%Vor%     
Kevin_ 06.06.2014, 12:36
quelle

1 Antwort

2

Ich konnte dies auf einem Windows 7-Computer mit dem folgenden Befehl reproduzieren, der als Admin-Benutzer mit dem Namen "admin" angemeldet wurde, Powershell mit erhöhten Rechten ausgeführt und UAC deaktiviert:

%Vor%

und

%Vor%

Basiert auf dem Artikel hier sieht es so aus, als ob Meine Dokumente, Meine Musik usw. als Verbindungspunkte für die Abwärtskompatibilität mit der vor-Vista-Software definiert sind. Powershell eignet sich normalerweise nicht für Verbindungspunkte. Es scheint, als gäbe es hier ein paar Optionen:

1) Entfernen Sie die -force vom Befehl Get-ChildItem. Dies ist wahrscheinlich die beste Wahl.

%Vor%

funktioniert ohne Fehler und überspringt Knotenpunkte und Systemverzeichnisse wie AppData.

2) Wenn Sie aus irgendeinem Grund unbedingt die Option -force verwenden müssen, können Sie jedes Unterverzeichnis programmatisch rekursiv aufrufen, indem Sie Knotenpunkte überspringen. In diesem Artikel wird der Mechanismus beschrieben Identifizieren Sie Knotenpunkte. Ein Skelett davon in einer .ps1-Skriptdatei könnte wie folgt aussehen:

%Vor%     
mcating 17.06.2014, 07:26
quelle

Tags und Links