Обложка канала

Windows 11, 10, etc - Вадим Стеркин

10333 @sterkin_ru

Авторский канал. Windows 11, безопасность, мобильный мир: • тайное знание • профессиональный ликбез • гадание по логам • срыв покровов • доставка пруфов

Windows 11, 10, etc - Вадим Стеркин

4 года назад
Открыть в
▶️ Как определить папку рабочего стола в #PowerShell Казалось бы, все просто: "$ENV:userprofile\Desktop". Но это не сработает, если папку переместили. Поэтому обычно советуют реестр: (Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\')."Desktop" При этом примерно в половине случаев ошибочно рекомендуют лезть в папку Shell Folders (SF) вместо User Shell Folders (USF). Именно такой неверный совет всплыл в дискуссии чата, по мотивам которой я и пишу этот пост 🙄 Путанице уже очень много лет. По факту USF преобладают над SF, втч над SF в HKLM. Поэтому у пользователя смотреть и править надо именно в USF. 👉 Чтобы не путаться, проще задействовать вполне поддерживаемый метод .NET: [Environment]::GetFolderPath("Desktop") Несмотря на внешнюю солидность, метод просто опрашивает реестр 😎 Это легко проверяется с помощью Process Monitor. При этом просматриваются аналогии с древним методом WSH ⌛️ Не случайно все эти способы не работают с объектами, которые появились позже - например, папка Camera Roll (Пленка). Но самый популярный экспонат - папка Downloads, конечно. Причем в разделе реестра USF у нее даже имени нет, только GUID: {374DE290-123F-4565-9164-39C4925E467B} Поэтому в данном случае прямой опрос реестра FTW ✌️