Я переназначил/изменил цель/расположение нескольких моих специальных папок, используя проводник windows explorer gui. Теперь некоторые из моих сценариев powershell сломались. Я не хочу прибегать к жесткому кодированию, если только не нужно, а затем, только как исправление temp.Как получить доступ к переделанным специальным папкам с помощью PowerShell?
[System.Environment]::GetFolderPath('Desktop')
показывает неправильный путь. [System.Environment]::GetFolderPath('Downloads')
не работает.
Чтобы воссоздать: нажмите правой кнопкой мыши на «Загрузки» в gui win explorer gui и измените целевое местоположение на d: \ downloads. Сделайте то же самое для рабочего стола, как d: \ desktop.
Согласно Get Path To "Links" (AKA Favorites) Folder, может быть способ P/Invoke SHGetKnownFolderPath
, но я не разбираюсь в том, как это сделать, и неудачных попыток на сегодняшний день. Тем не менее, я нашел функцию Boe Prox, https://github.com/proxb/PInvoke/blob/master/Get-KnownFolderPath.ps1, которая использует SHGetKnownFolderPath
, и эта функция не отображает переназначенные значения для рабочего стола или загрузок.
Как получить доступ к переназначенному местоположению с помощью PowerShell?
UPDATE: Чтобы сузить дело, эта проблема, по-видимому, влияет только на Windows 7 (64-разрядная, 32-битная не была протестирована). Сценарий Get-KnownFolderPath.ps1 корректно обрабатывается в Windows 10. PowerShell - это v5 во всех тестах. Как один скрипт сможет получить доступ к переназначенным местоположениям обеих операционных систем?
Die перезагрузке компьютера? –
Новое шикарное окно не помогло. Перезагрузка не помогла. – Bewc
'Загрузки' не входит в список [Перечень специальных флагов] (https://msdn.microsoft.com/en-us/library/system.environment.specialfolder (v = vs.110) .aspx) – TravisEz13