Als Administrator möchte ich den Standardspeicherort spezieller Ordner (Dokumente, Musik, Downloads ...) in einen anderen Pfad ändern. Ich kann das manuell tun, aber ich würde gerne ein PowerShell-Skript dafür haben.
Gibt es ein PS-Objekt, das Funktionen dafür bereitstellt? Wie kann ich es tun? Danke.
PowerShell verfügt nicht über ein Cmdlet, mit dem Sie es sofort ausführen können (soweit ich weiß), aber Sie können P / Invoke verwenden, um die Shell-Funktion SHSetKnownFolderPath aufzurufen. Ich habe eine Wrapper-Funktion namens Set-KnownFolderPath
erstellt, die es tut:
Benutze es so:
%Vor%PowerShell verfügt nicht über ein Cmdlet, mit dem Sie es sofort ausführen können (soweit ich weiß), aber Sie können P / Invoke verwenden, um die Shell-Funktion SHSetKnownFolderPath aufzurufen. Ich habe eine Wrapper-Funktion namens %code% erstellt, die es tut:
%Vor%Benutze es so:
%Vor%Als Administrator möchte ich den Standardspeicherort spezieller Ordner (Dokumente, Musik, Downloads ...) in einen anderen Pfad ändern. Ich kann das manuell tun, aber ich würde gerne ein PowerShell-Skript dafür haben.
Gibt es ein PS-Objekt, das Funktionen dafür bereitstellt? Wie kann ich es tun? Danke.
Das ist in der Tat eine großartige Funktion! Allerdings änderte ich es ein wenig für mich selbst, vielleicht finden Sie das auch nützlich.
%Vor%Wie Sie hier sehen können, prüfe ich zunächst die Existenz des Pfades und erstelle den Pfad, falls er nicht existiert.
Ich habe den "return" -Befehl weggelassen, so dass ich immer noch die $ Path-Variable verwenden kann. Mit dem Attribut-Befehl können Sie dem speziellen Ordner sein Original-Icon zurückgeben. Schließlich verschiebe ich alle vorhandenen Dateien vom alten auf den neuen Speicherort. Sie können den alten Ordner auch optional entfernen, was ich empfehlen würde, wenn keine doppelten speziellen Ordner in den Benutzerdateien vorhanden sind.
Das einzige Problem dabei ist, dass Move-Item davon ausgeht, dass sich der alte Ort an der $ HOME-Variablen befindet. Auch wenn Sie die Funktion zum Ändern verwenden würden, sagen wir den Ordner Dokumente zu C: \ Benutzer \ John \ Dokumente, würde es auch den Inhalt dieses Ordners entfernen, da die letzte Zeile des Codes die Variable $ HOME-special-Ordner löscht.
Aber vielleicht kann jemand eine elegantere Lösung für dieses Hindernis finden. Nochmals vielen Dank für dieses Juwel einer Funktion!
Tags und Links powershell path special-folders