Benutzer mit den meisten Antworten
Uninstall software - Uninstall String

Frage
-
Hi,
ich möchte eine Software für mehrere Server mit dem Uninstall String remote deinstallieren.
Der Uninstall String lautet C:\Program Files (x86)\HPE\PowerProtector\mc2.exe -uninstall
Mein Problem liegt darin, dass ich nicht weiß, wie ich den Uninstall String dann korrekt aufrufe, sodass die Applikation deinstalliert wird .. Kann mir jemand helfen? Zwei Varianten hab ich probiert ...
Besten DANK! LG
$computerNames = get-content Pfad der Liste mit Serverhostnamen $Account = Get-Credential ForEach ($computerName in $computerNames) { Invoke-Command -ComputerName $computerName -Credential $Account -ScriptBlock { start-process "C:\Program Files (x86)\HPE\PowerProtector\mc2.exe -uninstall" } }
$computerNames = get-content Pfad der Liste Serverhostnamen $Account = Get-Credential $RegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" $app= Get-ChildItem $RegPath| Get-ItemProperty | Where-Object {$_.DisplayName -match "hpe" } ForEach ($computerName in $computerNames) { Invoke-Command -ComputerName $computerName -Credential $Account -ScriptBlock { $app.UninstallString } }
Antworten
-
Moin,
Ideen:
$computerNames = get-content Pfad der Liste mit Serverhostnamen $Account = Get-Credential foreach ($computerName in $computerNames) { Invoke-Command -ComputerName $computerName -Credential $Account -ScriptBlock { Start-Process -FilePath "C:\Program Files (x86)\HPE\PowerProtector\mc2.exe" -ArgumentList "-uninstall" } }
bzw.
$computerNames = get-content Pfad der Liste Serverhostnamen $Account = Get-Credential foreach ($computerName in $computerNames) { Invoke-Command -ComputerName $computerName -Credential $Account -ScriptBlock { $RegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" $app = Get-ChildItem $RegPath| Get-ItemProperty | Where-Object {$_.DisplayName -match "hpe" } Invoke-Expression $app.UninstallString } }
Beides absolut ungetestet.
Evgenij Smirnov
- Als Antwort markiert Denniver ReiningMVP, Moderator Montag, 21. Dezember 2020 17:48
-
Ich denke es ist das falsche Programm.
Schau doch mal einfach ins Handbuch:
Da gibts noch eine -silent Option;-), sonst wartet der Prozess auf eine Eingabe.
- Als Antwort markiert Denniver ReiningMVP, Moderator Montag, 21. Dezember 2020 17:48
Alle Antworten
-
Ich denke es ist das falsche Programm.
Schau doch mal einfach ins Handbuch:
Da gibts noch eine -silent Option;-), sonst wartet der Prozess auf eine Eingabe.
- Als Antwort markiert Denniver ReiningMVP, Moderator Montag, 21. Dezember 2020 17:48
-
Moin,
Ideen:
$computerNames = get-content Pfad der Liste mit Serverhostnamen $Account = Get-Credential foreach ($computerName in $computerNames) { Invoke-Command -ComputerName $computerName -Credential $Account -ScriptBlock { Start-Process -FilePath "C:\Program Files (x86)\HPE\PowerProtector\mc2.exe" -ArgumentList "-uninstall" } }
bzw.
$computerNames = get-content Pfad der Liste Serverhostnamen $Account = Get-Credential foreach ($computerName in $computerNames) { Invoke-Command -ComputerName $computerName -Credential $Account -ScriptBlock { $RegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" $app = Get-ChildItem $RegPath| Get-ItemProperty | Where-Object {$_.DisplayName -match "hpe" } Invoke-Expression $app.UninstallString } }
Beides absolut ungetestet.
Evgenij Smirnov
- Als Antwort markiert Denniver ReiningMVP, Moderator Montag, 21. Dezember 2020 17:48