Seite 1 von 2
OPSI "execwith" ?
Verfasst: 03 Jun 2014, 11:07
von XxDeadLiiNexX
Guten Tag,
In den OPSI Handbüchern hab ich die Funktion "execwith" gefunden, mit ihr kann man sozusagen Skript Sprachen wie z.B Powershell einbinden und
sich denn Output direkt in die Logs holen. Was für mich natürlich perfekt wäre, da ich ein ziemlicher Powershell Nerd bin!
Da in den Handbüchern nur 1 Seite dokumentiert ist und kein Beispiel zu finden ist, wollte ich euch mal fragen.
Wie würde so ein Paket aussehen, weches mit einem Powershell Skript verknüpft ist. Könnte mir jemande
eine ausführliche Erklärung schreiben, Handbücher usw. hab ich natürlich zuerst durchsucht bevor ich drauf los poste.
Lg XxDeadLiiNexX
Re: OPSI "execwith" ?
Verfasst: 04 Jun 2014, 14:33
von Thomas_H
Moinsens,
ich habe selbst noch nicht mit execwith arbeiten müssen. Könnte mir aber vorstellen, dass es analog der call-Anweisung ist. Während jedoch die call-Anweisung lediglich eine Unterfunktion aufruft, wird bei execwith eben ein externes Script oder Programm aufgerufen, während das eigentliche Installationsscript abwartet, bis das durch execwith aufgerufene Script abgearbeitet ist.
Wüßte nun aber im Moment keine wirklich sinnvolle Anwendung.
Gruß
Thomas_H
Re: OPSI "execwith" ?
Verfasst: 04 Jun 2014, 17:40
von SisterOfMercy
Thomas_H hat geschrieben:ich habe selbst noch nicht mit execwith arbeiten müssen. Könnte mir aber vorstellen, dass es analog der call-Anweisung ist. Während jedoch die call-Anweisung lediglich eine Unterfunktion aufruft, wird bei execwith eben ein externes Script oder Programm aufgerufen, während das eigentliche Installationsscript abwartet, bis das durch execwith aufgerufene Script abgearbeitet ist.
Wüßte nun aber im Moment keine wirklich sinnvolle Anwendung.
You can use it for autoit scripts. Look at the .net 4 framework:
wiki/userspace:netfx_4.0
If you don't do it like this the installation will hang and not continue.
Re: OPSI "execwith" ?
Verfasst: 05 Jun 2014, 14:41
von Thomas_H
Moinsens...
SisterOfMercy hat geschrieben:Thomas_H hat geschrieben:ich habe selbst noch nicht mit execwith arbeiten müssen.
You can use it for autoit scripts. Look at the .net 4 framework:
wiki/userspace:netfx_4.0
If you don't do it like this the installation will hang and not continue.
Wer haut mich denn da mit meinen eigenen Scripten? Ts... Ts... Ts...
Aber stimmt...
Gruß
Thomas_H
Re: OPSI "execwith" ?
Verfasst: 12 Jun 2014, 21:25
von dkoch
Hier ein Beispiel mit Ruby:
Script:
Code: Alles auswählen
ExecWith_Test "%SystemDrive%\Ruby\bin\ruby.exe"
[ExecWith_Test]
10.times do
puts "Hello"
end
Log:
Code: Alles auswählen
[5] [Jun 12 21:27:28:688] [test] Execution of ExecWith_Test
[6] [Jun 12 21:27:28:689] [test] c:\opsi.org\tmp\_winstbat_1.bat saved back
[6] [Jun 12 21:27:28:689] [test] Executing "C:\Ruby\bin\ruby.exe" "c:\opsi.org\tmp\_winstbat_1.bat"
[6] [Jun 12 21:27:28:782] [test] ExitCode 0
[6] [Jun 12 21:27:28:782] [test]
[6] [Jun 12 21:27:28:782] [test] output:
[6] [Jun 12 21:27:28:782] [test] --------------
[6] [Jun 12 21:27:28:782] [test] Hello
[6] [Jun 12 21:27:28:782] [test] Hello
[6] [Jun 12 21:27:28:782] [test] Hello
[6] [Jun 12 21:27:28:782] [test] Hello
[6] [Jun 12 21:27:28:782] [test] Hello
[6] [Jun 12 21:27:28:782] [test] Hello
[6] [Jun 12 21:27:28:782] [test] Hello
[6] [Jun 12 21:27:28:782] [test] Hello
[6] [Jun 12 21:27:28:782] [test] Hello
[6] [Jun 12 21:27:28:782] [test] Hello
[6] [Jun 12 21:27:28:782] [test]
[6] [Jun 12 21:27:28:790] [test] Delete "c:\opsi.org\tmp\_winstbat_*"
[6] [Jun 12 21:27:28:790] [test] Search "c:\opsi.org\tmp\"
[6] [Jun 12 21:27:28:790] [test] File "c:\opsi.org\tmp\_winstbat_1.bat"
[6] [Jun 12 21:27:28:790] [test] The file has been deleted
[1] [Jun 12 21:27:28:790] [test] ___________________
[1] [Jun 12 21:27:28:790] [test] script finished
[1] [Jun 12 21:27:28:790] [test] 0 errors
[1] [Jun 12 21:27:28:790] [test] 0 warnings
Re: OPSI "execwith" ?
Verfasst: 16 Jun 2014, 11:00
von ueluekmen
Hi,
wichtig ist, dass der Interpreter auf dem Client existiert.
Bei Powershell kommt noch hinzu, dass du unterscheiden musst, welche Powershell-Version du hast. Das ist über den Namen des Interpreters nicht direkt zu sehen. Kleiner Tip noch, Powershell ist in der Regel nicht aktiv, also sollte man, wenn man viel mit OPSI und Powershell machen will, die Execution-Policy checken, um sicher zu stellen, dass der Client auch wirklich Powershell sprechen darf.
Re: OPSI "execwith" ?
Verfasst: 26 Jun 2014, 12:41
von XxDeadLiiNexX
Guten Tag zusammen! (Und eventuell Mahlzeit gg*)
Danke für die Antworten, hat mir weitergeholfen.
Wen nich das jetzt richtig verstehe dann:
1.) navigiere ich am OPSI Server in meine "Setup.ins" Datei und
2.) dort gebe ich zu beginn mit "ExecWith_Test "Patj\to\powershell.exe" ein.
3.) Anschließend erstellt ich: "[ExecWith_Test]" und kann dort in der Skript Sprache schon programmieren?
Lg!
Re: OPSI "execwith" ?
Verfasst: 26 Jun 2014, 13:24
von dkoch
yes!
Wenn dir das nicht passt und du den Code lieber in einer eigenen Datei haben willst kannst du auch einen foo.ps1 anlegen die mit [ExecWith_Test] beginnt und diese aus dem Winst-Script im Include_Append "%ScriptPath%\foo.ps1 "anhängen". Das verhalten ist dann genau das gleiche. Bringt den Vorteil, dass dein System und Editor merkt das es sich hier um Powershell handelt.
Re: OPSI "execwith" ?
Verfasst: 26 Jun 2014, 14:12
von ueluekmen
Der Vorteil von einer execWith ist, dass man in diesen Sektionen WINST-Variablen verwenden kann. Diese werden falls möglich im fremden Code ersetzt und danach wird der Code an den eigentlichen Interpreter übergeben. Das ist sehr nützlich, wenn man von diversen Winst-Funktionen Informationen im eigentlichen Skript verwenden will.
Re: OPSI "execwith" ?
Verfasst: 26 Jun 2014, 14:25
von dkoch
Genau
Das habe ich vor kurzem auch
hier erläutert wenn du ein Beispiel brauchst