web-dev-qa-db-fra.com

Variable de bureau PowerShell

J'essaie d'écrire un script PowerShell pour supprimer l'icône du bureau pour Chrome après l'installation via sccm. Cependant, certains utilisateurs du réseau ont leur bureau dirigé vers différents dossiers sur le réseau. Existe-t-il une variable dans PowerShell qui stocke l'emplacement du bureau?

J'ai cherché en ligne et recherché à l'aide de Get-Variable | Out-String, mais je n'ai rien trouvé. Le code fini devrait ressembler à:

If (Test-Path "$DesktopLocation\Google Chrome.lnk"){
    Remove-Item "$DesltopLocation\Google Chrome.lnk"
}
26
bgregor

Vous pouvez utiliser la méthode Environment.GetFolderPath() pour obtenir le chemin d'accès complet aux dossiers spéciaux:

$DesktopPath = [System.Environment]::GetFolderPath([System.Environment+SpecialFolder]::Desktop)

Cela peut être raccourci en:

$DesktopPath = [Environment]::GetFolderPath("Desktop")

Vous pouvez également obtenir le dossier de bureau partagé "AllUsers" (si le fichier de raccourci est partagé entre tous les utilisateurs):

[Environment]::GetFolderPath("CommonDesktopDirectory")

Consultez la liste complète des valeurs pour SpecialFolder Enum sur MSDN .

54
Mathias R. Jessen

Si vous avez besoin de $ Desktop\a.txt, utilisez ceci

echo ([Environment]::GetFolderPath("Desktop")+"\a.txt")
8
YH Wu

Ce que vous recherchez est connu sous le nom de $home variable. C'est l'une des fonctions intégrées de PowerShell variables automatiques .

Par défaut, il s'agit du chemin du profil utilisateur, alors explorez le bureau comme suit:

If (Test-Path "$home\Desktop\Google Chrome.lnk") {
    Remove-Item "$home\Desktop\Google Chrome.lnk"
}
5
Knuckle-Dragger