PowerShell Desktop Variable
Я пытаюсь написать PowerShell script, чтобы удалить значок рабочего стола для Chrome после установки через sccm. Однако некоторые пользователи в сети имеют свой рабочий стол, предназначенный для разных папок в сети. Есть ли переменная в PowerShell, которая хранит местоположение рабочего стола?
Я смотрел онлайн и искал с помощью Get-Variable | Out-String
, но ничего не нашел. Готовый код должен выглядеть так:
If (Test-Path "$DesktopLocation\Google Chrome.lnk"){
Remove-Item "$DesltopLocation\Google Chrome.lnk"
}
Ответы
Ответ 1
Вы можете использовать метод Environment.GetFolderPath()
, чтобы получить полный путь к специальным папкам:
$DesktopPath = [System.Environment]::GetFolderPath([System.Environment+SpecialFolder]::Desktop)
Это можно сократить до:
$DesktopPath = [Environment]::GetFolderPath("Desktop")
Вы также можете получить общую папку рабочего стола AllUsers (если файл ярлыков является общим для всех пользователей):
[Environment]::GetFolderPath("CommonDesktopDirectory")
Ознакомьтесь с полным списком значений EnableFolder Enum в MSDN.
Ответ 2
Если вам нужен $Desktop\a.txt, используйте этот
echo ([Environment]::GetFolderPath("Desktop")+"\a.txt")
Ответ 3
То, что вы ищете, называется переменной $home
. Это одна из встроенных PowerShell автоматических переменных.
По умолчанию используется путь к профилю пользователя, поэтому перейдите на рабочий стол следующим образом:
If (Test-Path "$home\Desktop\Google Chrome.lnk") {
Remove-Item "$home\Desktop\Google Chrome.lnk"
}
Ответ 4
Вы можете получить переменные среды следующим образом:
Join-Path $Env:USERPROFILE Desktop