Vielleicht kann mir einer weiterhelfen.
Ich habe von einem Anbieter ein Paket heruntergeladen indem Powershell genutzt wird und mir dafür selber was zusammengebastelt.
Ich möchte mit nem Powershell script die Registry Uninstallstrings durchsuchen und danach die Software via Powershell deinstallieren.
powershell script:
Code: Select all
#param([string]$CustomSoftware,[string]$CustomUninstallstring)
#$CustomSoftware="Jabra Direct"
$CustomUninstallstring="Quietuninstallstring"
$PATHS = @("HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall")
$installed = Get-ChildItem -Path $PATHS | Get-ItemProperty | Where-Object {$_.DisplayName -match $CustomSoftware } | Select-Object -Property DisplayName, UninstallString, Quietuninstallstring
if ($installed) {
ForEach ($eintrag in $installed) {
$processArgs = "/c " + $eintrag.$CustomUninstallstring
#Start-Process -WindowStyle hidden -FilePath cmd.exe -ArgumentList $processArgs -Wait
Start-Process -FilePath cmd.exe -ArgumentList $processArgs -Wait
exit 0
}
}
Code: Select all
CustomSoftware=Jabra Direct
UninstallCustomSoftware=Callhidden powershell -executionpolicy bypass -command "& "%Src%\Files\Jabra Direct Uninstaller.ps1" -CustomSoftware %CustomSoftware% ;exit $lastexitcode"
Komischerweise sieht es im Paket vom Hersteller der auch einen Parameter übergibt und -command benutzt exakt so aus und da läuft deren Script einwandfrei durch.
Empirum 2ter Versuch:
Code: Select all
CustomSoftware=Jabra Direct
UninstallCustomSoftware=Callhidden powershell -executionpolicy bypass -file "%Src%\Files\Jabra Direct Uninstaller.ps1" -CustomSoftware %CustomSoftware% ;exit $lastexitcode
Das funktioniert einwandfrei. Nun möchte ich aber gerne eine 2ten Parameter übergeben also:
Code: Select all
UninstallCustomSoftware=Callhidden powershell -executionpolicy bypass -file "%Src%\Files\Jabra Direct Uninstaller.ps1" "-CustomSoftware %CustomSoftware%", "-CustomUninstallstring %CustomUninstallstring%" ;exit $lastexitcode
Meine Fragen nun.
1: Warum funktioniert das mit -command in dem Paket vom Herstelller und bei mir nicht???
2: Wie bekomme ich einen 2ten Parameter übergeben??? Bei dem 2ten Parameter würde ich natürlich im Powershell Script das
Code: Select all
$CustomUninstallstring="Quietuninstallstring"