PowerShell桌面变量

bgr*_*gor 26 powershell desktop

我正在尝试编写PowerShell脚本,以便在通过sccm安装后删除Chrome的桌面图标.但是,网络中的某些用户将其桌面定向到网络上的不同文件夹.PowerShell中是否存在存储桌面位置的变量?

我已经在网上搜索并使用了搜索Get-Variable | Out-String,但我没有找到任何东西.完成的代码应如下所示:

If (Test-Path "$DesktopLocation\Google Chrome.lnk"){
    Remove-Item "$DesltopLocation\Google Chrome.lnk"
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*sen 55

您可以使用该Environment.GetFolderPath()方法获取特殊文件夹的完整路径:

$DesktopPath = [System.Environment]::GetFolderPath([System.Environment+SpecialFolder]::Desktop)
Run Code Online (Sandbox Code Playgroud)

这可以缩短为:

$DesktopPath = [Environment]::GetFolderPath("Desktop")
Run Code Online (Sandbox Code Playgroud)

您还可以获取"AllUsers"共享桌面文件夹(如果快捷方式文件在所有用户之间共享):

[Environment]::GetFolderPath("CommonDesktopDirectory")
Run Code Online (Sandbox Code Playgroud)

查看MSDN上SpecialFolder枚举的完整值列表.


小智 8

如果您需要$ Desktop\a.txt,请使用此选项

echo ([Environment]::GetFolderPath("Desktop")+"\a.txt")
Run Code Online (Sandbox Code Playgroud)


Knu*_*ger 5

您要查找的内容称为$home变量。它是PowerShell的内置自动变量之一

它默认为用户配置文件路径,因此像下面这样深入到桌面:

If (Test-Path "$home\Desktop\Google Chrome.lnk") {
    Remove-Item "$home\Desktop\Google Chrome.lnk"
}
Run Code Online (Sandbox Code Playgroud)

  • 这适用于本地桌面,但不适用于我的场景中的重定向桌面。 (4认同)