risposta-alla-domanda-sullo-sviluppo-web-bd.com

Variabile desktop di PowerShell

Sto provando a scrivere uno script di PowerShell per rimuovere l'icona del desktop per Chrome dopo l'installazione tramite sccm. Tuttavia, alcuni utenti della rete hanno il desktop diretto verso diverse cartelle della rete. Esiste una variabile in PowerShell che memorizza la posizione del desktop?

Ho cercato online e cercato usando Get-Variable | Out-String, ma non ho trovato nulla. Il codice finito dovrebbe apparire come:

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

È possibile utilizzare Environment.GetFolderPath() method per ottenere il percorso completo di cartelle speciali:

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

Questo può essere abbreviato in:

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

Puoi anche ottenere la cartella desktop condivisa "AllUsers" (se il file di collegamento è condiviso da tutti gli utenti):

[Environment]::GetFolderPath("CommonDesktopDirectory")

Controlla l'elenco completo dei valori per SpecialFolder Enum su MSDN .

54

Se hai bisogno di $ Desktop\a.txt, usa questo

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

Quello che stai cercando è noto come $home variabile. È una delle variabili automatiche integrate .

L'impostazione predefinita è il percorso del profilo utente, quindi eseguire il drill-down sul desktop in questo modo:

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