Powershell Script mit Parametern starten

Post Reply
IronStorm
Posts: 72
Joined: 19. Jun 2018, 08:19
Contact:

Powershell Script mit Parametern starten

Post by IronStorm » 12. May 2020, 18:03

Hallo ich stehe vor einem Rätsel.
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
    }
}
Empirum 1ter Versuch:

Code: Select all

CustomSoftware=Jabra Direct
UninstallCustomSoftware=Callhidden powershell -executionpolicy bypass -command "& "%Src%\Files\Jabra Direct Uninstaller.ps1" -CustomSoftware %CustomSoftware% ;exit $lastexitcode"
hier passiert überhaupt nichts. Führe ich das PS Script direkt aus mit Powershell funktioniert es 1a.
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
Hier statt -command mit -file
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
Hier funktioniert wiederrum gar nichts.

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"
auskommentieren sodass er das vom Empirum Paket übergeben bekommt.

IronStorm
Posts: 72
Joined: 19. Jun 2018, 08:19
Contact:

Re: Powershell Script mit Parametern starten

Post by IronStorm » 13. May 2020, 14:12

Okay warum das -Command nicht funktioniert habe ich herausgefunden.
Ich hatte im Pfad wo das PS Script abgelegt ist nen Leerzeichen drin. Das mochte er nicht.

Jetzt hab ich nur noch die Sorge das ich via Variable keine 2 Parameter übergeben bekommen.

Code: Select all

CustomSoftware=Jabra Direct
CustomUninstallstring=QuietUninstallString
UninstallCustomSoftware=Callhidden powershell -executionpolicy bypass -file "%Src%\Files\Jabra Direct Uninstaller.ps1" -CustomSoftware %CustomSoftware% -CustomUninstallstring %CustomUninstallstring%  ;exit $lastexitcode
Habe vor dem eigentlichem Befehl nochmal nen ReplaceEnv UninstallCustomSoftware drin.
Trotzdem mag er das nicht.
Wenn ich aber die Variable auflöse läuft das Script einwandfrei durch.

Code: Select all

UninstallCustomSoftware=Callhidden powershell -executionpolicy bypass -file "%Src%\Files\Jabra Direct Uninstaller.ps1" -CustomSoftware Jabra Direct -CustomUninstallstring QuietUninstallString ;exit $lastexitcode
Jemand dazu eine Idee??




edit:
Manchmal sieht man den Wald vor lauter Bäumen nicht. im Script war ein - zuwenig drin.
jetzt klappt es.

Problem ist gelöst.

Post Reply

Return to “Paketierung”

Who is online

Users browsing this forum: Bing [Bot] and 8 guests