Я пишу сценарий PS, который должен «конвертировать» заданный путь, например% UserProfile% \ Pictures, в свой полный путь и возвращать любые особые значения папок, которые могут существовать, конвертируя истинные пути, в GUID и имена SpecialFolder.Использование интерфейса IKnownFolderManager в PowerShell
Из ссылки оболочки MSDN для KNOWNFOLDERID (не может больше, чем 2 ссылки ATM. Grrr), я предполагаю, что каждую «Специальную папку» имеет различные свойства, такие как GUID, отображаемое имя, по умолчанию путь и т.д.
Я столкнулся с интерфейсом IKnownFolderManager на MSDN и его методами; Похоже на то, что мне нужно. Проблема в том, что я не могу найти примеры PowerShell о том, как можно использовать этот «интерфейс оболочки», и задавался вопросом, готов ли кто-нибудь предложить пример.
Извините, что не поделился тем, что я пробовал до сих пор, но это не более this "Hey, Scripting Guy" post, что касается того, что у меня есть.
Edit:
Я большую часть пути через скрипт для создания файла XML на основе, за библиотек Windows, чтобы позволить мне установить его так, как я хочу, удаляя многие из GUI основанные ограничения, налагаемые MS. XML-файл будет создан сценарием PowerShell «Logon», который считывает определенные переменные из ключа HKCU. Значения реестра сами создаются с помощью параметров реестра GPP. Я хочу, чтобы администратор мог установить свойство реестра и его переменную через GPP, чтобы сказать «Картинки» %UserProfile%/Pictures
. Для использования XML-файла для использования этого пути сценарий PS должен быть развернут %UserProfile%
. Нет проблем. Также XML-файл «понимает» специальные папки, но использует GUID специальной папки.
Существует ключ реестра (HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions
), который содержит имя папки и идентификатор GUID, которые я могу использовать для скрытия имени папки для GUID, но проблема заключается в том, что в этой записи реестра используется «устаревшее отображаемое имя» («Мои рисунки») в отличие от истинного пути (снимки), согласно KNOWNFOLDERID. Я действительно спрашиваю, есть ли способ «перечисления» констант, показанных на странице KNOWNFOLDERID. Я понимаю, что это просто константы, но можно как-то вытащить одну и ту же «таблицу» из системы. Затем я смогу найти способ «Lookup»/«Conversion», который мне нужен.
Существует высокая репутация барьер для создания тегов, потому что новых пользователей имеют плохую привычку делать мета-теги (http://meta.stackoverflow.com/tags/meta-tags/info), которые кажутся полезными для искателя, но они категорически вредны для сайта и обычно не имеют тега " эксперты "вроде тега, такого как [tag: powershell]. Например, вопрос «Hello World» может быть помечен как «помощь», «привет», «мир», «!», «Кодирование» или другие теги без описания. –
Мне непонятно, чего вы хотите достичь. Если вы хотите расширить переменные окружения, такие как '% USERPROFILE%', вы могли бы просто выполнить '$ fullPath = & cmd/c echo '$ pathWithVariables", но я не вижу, как здесь отображаются GUID или «специальные значения папок». Просьба привести несколько примеров ввода и желаемого вывода. –
Извините за повторы, но это позволит мне добавить ограниченный набор символов или применить ответ. Дизайн StackOverFlow, безусловно, уникален !!! – woter324