Guten Abend an die besten Programmierer der Entwickler-Ecke, und alle anderen.
Hintergrund:
Für die Neueinrichtung von Servern möchte ich ein kleines Werkzeug programmieren, welches die Installation von Programmen (AVG, Firefox, Adobe usw.) im Silent-Modus ausführt und ein paar Windows-Einstellungen anpasst.
Die Silent-Installation ist bereits erledigt.
Lediglich die Windows-Einstellungen müssen noch umgesetzt werden.
Das soll, zumindest vorerst, durch ein PowerShell-Script erledigt werden. Einfach nur, weil der Inhalt des Scriptes bereits bekannt ist.
Problem:
Der Installations-Helfer erstellt das PowerShell-Script, nachdem man sich zusammen klicken konnte was man ändern möchte, und speichert es als *.ps1-Datei.
Nun soll das Delphi-Prog das liebe Powershell aufrufen und den Dateipfad des Scriptes (liegt direkt neben der Delphi-Anwendung) an PowerShell übergeben.
Folgender Code wird derzeit verprügelt, damit er seine Arbeit erledigt:
Delphi-Quelltext
1: 2: 3: 4:
| Form1.Memo1.Lines.SaveToFile(ExtractFilePath(ParamStr(0)) + 'Script.ps1'); filename:=' -file ' + ExtractFilePath(ParamStr(0))+ 'Script.ps1'; Showmessage(filename); ShellExecute(handle,'open','powershell.exe',PChar(filename)',nil,SW_hide); |
PowerShell wird zwar ausgeführt, aber ich sehe nicht, das jenes Script abgearbeitet wird.
Das Script, als auch das Delphi-Prog, sind selbst elevierend. ...run as admin....
Der Dateipfad zum Script wird in der "ShowMessage" richtig wiedergegeben.
Wird das Script separat mit PowerShell ausgeführt, treten die Änderungen in Kraft, auch ohne "als Administrator ausführen"
Der Dateipfad wurde bereits mit und ohne Anführungszeichen übergeben. Oder zumindest versucht.
Frage:
Wie kann ich es anstellen, das dieses kleine Delphi-Prog PowerShell dazu bringt das Script abzuarbeiten!?
Es ist sicherlich nur eine Kleinigkeit die fehlt. Für den treffenden Hinweis wäre ich euch echt dankbar.
mit besten Grüßen
teamrocket0