Powershell Script mit Parametern starten

Antworten
IronStorm
Beiträge: 59
Registriert: 19. Jun 2018, 08:19
Kontaktdaten:

Powershell Script mit Parametern starten

Beitrag von IronStorm » 12. Mai 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: Alles auswählen

#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: Alles auswählen

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: Alles auswählen

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: Alles auswählen

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: Alles auswählen

$CustomUninstallstring="Quietuninstallstring"
auskommentieren sodass er das vom Empirum Paket übergeben bekommt.

IronStorm
Beiträge: 59
Registriert: 19. Jun 2018, 08:19
Kontaktdaten:

Re: Powershell Script mit Parametern starten

Beitrag von IronStorm » 13. Mai 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: Alles auswählen

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: Alles auswählen

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.

Antworten

Zurück zu „Paketierung“

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Google [Bot] und 18 Gäste