Получение папки «Документы пользователя» в Powershell

Я хочу использовать сценарий PowerShell для автоматизации задач, связанных с пользователем, когда пользователь входит в систему.

Иногда пользователь перемещает свою папку «Документы» из расположения по умолчанию. Как определить расположение папки «Документы» пользователя в PowerShell?


person Zulgrib    schedule 16.07.2014    source источник
comment
Ваша последняя редакция слишком сильно изменила вопрос. Ответ на вопрос, который вы первоначально задали, был дан, опубликуйте новый вопрос о поиске путей к папкам из GUID.   -  person Harry Johnston    schedule 24.07.2014


Ответы (3)


попробуй это:

[Environment]::GetFolderPath("MyDocuments")
person CB.    schedule 16.07.2014
comment
Привет, это работает для некоторых папок, но не для всех, например, я не могу получить системную папку «Сохраненные игры» с помощью этого (или я делаю это неправильно) - person Zulgrib; 17.07.2014
comment
Создал еще один вопрос об этом здесь stackoverflow.com/questions/25049875/ - person Zulgrib; 31.07.2014
comment
Это не работает:Set-Location [Environment]::GetFolderPath("MyDocuments") Set-Location : Es wurde kein Positionsparameter gefunden, der das Argument "MyDocuments" akzeptiert. Однако, если я создаю переменную, как это делает Deeps, она работает.. - person Timo; 12.08.2020
comment
@Timo Вам нужно добавить круглые скобки вокруг второго вызова функции: Set-Location ([Environment]::GetFolderPath("MyDocuments")). Вы не можете просто сделать Do-Something -Path Get-Something -Param, но Do-Something -Path (Get-Something -Param) работает. - person sk22; 16.12.2020
comment
Я хочу использовать python для доступа к папке Windows documents моего пользователя. Я использую немецкую версию Windows. Строка необработанных документов должна быть на английском или немецком языке? В данный момент под рукой нет окон, чтобы попробовать. мне нужно documents = os.path.join(home, 'documents') - person Timo; 16.06.2021
comment
Я хочу установить alias/ function, используя: function pic { Set-Location -path ([Environment]::GetFolderPath("Mypictures"))}. Результат: The term 'C:\Users\User\Pictures' is not recognized as a name of a cmdlet,.. - person Timo; 26.06.2021

Чтобы получить список известных имен папок, используйте следующую команду:

[enum]::GetNames( [System.Environment+SpecialFolder] )

Чтобы получить список имен и путей:

[enum]::GetNames( [System.Environment+SpecialFolder] ) | 
    Select @{ n="Name"; e={$_}},
        @{ n="Path"; e={ [environment]::getfolderpath( $_ ) }}
person Patrick Sczepanski    schedule 18.05.2016

person    schedule
comment
Привет, это работает для некоторых папок, но не для всех, например, я не могу получить системную папку «Сохраненные игры» с помощью этого (или я делаю это неправильно) - person Zulgrib; 17.07.2014