Для таких мест, как рабочий стол (так называемые «специальные папки»), альтернативным методом является использование .NET, чтобы найти место для вас.Например:
$desktop = [Environment]::GetFolderPath("Desktop")
Что будет возвращать что-то вроде этого:
C:\Users\<UserName>\Desktop
Преимущество в том, что вам не нужно знатьлюбая часть пути уже (например, буква диска), просто конкретная папка, которую вы хотите.Недостатком является то, что он работает только локально, поэтому вы не можете указать его на удаленный сервер и получить значение от их (хотя это должно работать через PowerShell Remoting).
Вот список всех возможныхзначения, которые вы можете использовать вместо «Рабочий стол»:
Environment.SpecialFolder Enum
Или вы можете получить их программно:
[Enum]::GetNames([Environment+SpecialFolder])
AdminTools
ApplicationData
CDBurning
CommonAdminTools
CommonApplicationData
CommonDesktopDirectory
CommonDocuments
CommonMusic
CommonOemLinks
CommonPictures
CommonProgramFiles
.
.
.