Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Start-Process deinstalliert nicht als BackGroundJob (PowerShell)

Frage Entwicklung Batch & Shell

Mitglied: mayho33

mayho33 (Level 2) - Jetzt verbinden

28.03.2014, aktualisiert 31.03.2014, 2771 Aufrufe, 2 Kommentare

Hallo @ All

Wieder einmal komme ich in Powershell nicht weiter und hoffe (wieder einmal) auf eure Hilfe!!

In diesem Thread habe ich diese Frage schon gestellt und beantwortet geglaubt, stieß jetzt aber wieder auf ein neues Problem: http://www.administrator.de/link/start-process-gibt-tlw-keinen-returnco ...

Das aktuelle Problem:

Es geht darum eine Software silent zu deinstallieren und für die Dauer des Uninstalls in der PS-Console als Pseudo-Progressbar eine paar Sternchen auszugeben. Dazu Prüfe ich erst mal ob die Software am Client vorhanden ist und bereite den UninstallString aus der Registry entsprechend auf für Start-Process.

Ich übergebe die fertig angepassten Argumente an die Function unten. Die Argumente werden mit Write-Host in der Consloe so ausgegeben:

$FilePath: MSIEXEC.EXE
$ArgumentList: /X {C22FF2F7-BA18-4C1B-A86E-82424058293B} REBOOT=REALLYSUPPRESS MSIRESTARTMANAGERCONTROL=DISABLE /qn /l*v+ "C:\Logs\TESTsoftware 2014-03-31 11.02.36 _UNIN_.Log"

Starte ich das mit folgender Syntax so in der Console funktioniert der Uninstall:
Start-Process -FilePath "MSIEXEC.EXE" -ArgumentList '/X {C22FF2F7-BA18-4C1B-A86E-82424058293B} REBOOT=REALLYSUPPRESS MSIRESTARTMANAGERCONTROL=DISABLE /qn /l*v+ "C:\Logs\TESTsoftware 2014-03-31 11.02.36 _UNIN_.Log"' -wait

übergebe ich das an die Function und lasse es ausführen, bekomme ich entweder einen Fehler...

Start-Process : Es wurde kein Positionsparameter gefunden, der das Argument "C:\Logs\TESTsoftware" akzeptiert.
In Zeile:1 Zeichen:1

Start-Process -FilePath "MSIEXEC.EXE" -ArgumentList "/X {C22FF2F7-BA18-4C1B-A86E ...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidArgument: ( [Start-Process], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand


... oder es passiert Garnichts. Es laufen die Sternchen, kein RC und die Software ist nicht deinstalliert.

Lasse ich das Logging weg ( /l*v+ "C:\Logs\TESTsoftware 2014-03-31 11.02.36 _UNIN_.Log" ) funktionierts auch.

Der Fehler liegt also in der Syntax beim übergeben des Argument-Strings. Bekomme es aber irgendwie nicht gebacken den String so zu übergeben, dass das Logging drinnen ist. Gibt es da eventuell einen Kniff?

Function Uninstall {
[CmdletBinding()]
param ($FilePath, $Arguments)

$ReturnCode = @{}

$BackGroundWorker = [Powershell]::Create().AddScript({
param($result)
$rc = Start-Process -FilePath $FilePath -ArgumentList $Arguments -PassThru -Wait
$result.ExitCode = $rc.ExitCode
}).AddArgument($ReturnCode)

$BackGroundWorker.BeginInvoke()| Out-null

while($BackGroundWorker.InvocationStateInfo.State -eq "Running"){
write-host "*" -NoNewLine
sleep(2)
}
return $ReturnCode
}

Vielen Dank für die Unterstützung!

Mayho
Mitglied: colinardo
31.03.2014, aktualisiert um 11:45 Uhr
ähm das doppelte Dollarzeichen ist da nicht gut platziert:
$$rc = Start-Process ......
Grüße Uwe

p.s. und nutze in Zukunft Code-Tags für deinen Code ...merci.
Bitte warten ..
Mitglied: mayho33
31.03.2014, aktualisiert um 12:27 Uhr
Hi!

Ist nur ein Schreibfehler hier im Post...

Jop! Codetags wären wohl ne Verbesserung. Hole das nach.


GROSSES EDIT:
Der Fehler war meine Lesefaulheit. MS machts einem aber auch nicht einfach. :P

Die Lösung: Argumentlist kann eine durch Komma getrennte ArgumentListe sein ( -ArgumentList Syntax: $arg1,$arg2,arg3,... )

Nach einer Anpassung ($Arguments kommt nun als Object daher in dem alle Argumente gesondert gespeichert sind) funktionierts perfekt.

$rc = Start-process -Filepath "$arg1 -Argumentlist ($arg2,$arg3,$arg4,$arg5) -wait

Danke!

lg
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell start-process (4)

Frage von Cougar77 zum Thema Batch & Shell ...

Batch & Shell
gelöst Start-Process mit -RedirectStandardOutput in der Windows Aufgabenplanung (7)

Frage von SaschaRD zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Skript Ordnerinhalt auflisten und per E-Mail verschicken (2)

Frage von xbast1x zum Thema Batch & Shell ...

Administrator.de Feedback
Neuer Bereich Powershell und erweitertes syntax highlighting (4)

Frage von Kraemer zum Thema Administrator.de Feedback ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (16)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...