Diskussion: Function powershellcall()

The place for development of / with / for opsi.
Post your API questions here!
Antworten
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3319
Registriert: 04 Jun 2008, 14:27

Diskussion: Function powershellcall()

Beitrag von d.oertel »

Hallo allerseits,

wie auf der opsi Konferenz besprochen wird es im opsiscript eine neue Funktion 'powershellcall geben.
Analog zur Funktion shellCall() wird es diese mit Rükgabewert String (exitcode), mit Rükgabewert Stringliste (output) und ohne Rückgabewert geben.

Dabei ist dann z.B.

Code: Alles auswählen

set $str$ = powershellcall("get-partition | select disknumber, partitionnumber, driveletter, size,type")
eine Abkürzung von

Code: Alles auswählen

Execwith_ps powershell
set $str$ = getLastExitcode
[Execwith_ps]
trap { write-output $_ ; exit 1 }
get-partition | select disknumber, partitionnumber, driveletter, size,type
exit $LASTEXITCODE
So und jetzt habe ich zwei Fragen an die PraktikerInnen:

1. Da die powershell ja per Default restricted ist, muss diese vor Aufrufzu nächst mit sowas wie nachfolgend erst freigeschaltet werden:

Code: Alles auswählen

shellCall('powershell.exe set-executionpolicy RemoteSigned')
und danach auch wieder zurückgesetzt werden.

Meine Fragen:
a) Soll es über einen zusätlichen Schalter (boolean parameter) möglich sein, das automatisch die aktuelle executionpolicy gesichert wird, die executionpolicy auf RemoteSigned gesetztwird. Dann der eigentliche Befehl ausgeführt wird und abschließend die executionpolicy wie der restored wird.
b) wenn ja - soll das der Default sein ?

2. Analog zum shellcall Aufruf wird der powershellCall per Default sysnative sein (auf einem 64bit System wird die 64bit powershell aufgerufen). Über einen zusätzlichen Parameter könnte auch das gesteuert werden.
Frage:
Ist das gewünscht oder führt das eher zur Verwirrung ?

Ich freue mich auf die Rückmeldungen.

gruß
detlef oertel
opsi support - uib gmbh

For productive opsi installations we recommend support contracts.
http://www.uib.de
http://www.opsi.org
uncle_scrooge
Beiträge: 650
Registriert: 21 Feb 2012, 12:03
Wohnort: Mainz

Re: Diskussion: Function powershellcall()

Beitrag von uncle_scrooge »

1.
a. Ja.
b. Ja.
M.E. die einzig saubere Implementierung. Respect the hard configuration work of others.

2. Gewünscht.
Mir fällt zwar spontan kein konkretes Anwendungsszenario ein. Aber man weiß ja nie......
larsg
Beiträge: 283
Registriert: 16 Dez 2014, 18:06

Re: Diskussion: Function powershellcall()

Beitrag von larsg »

Ist zwar etwas spät, aber nur für den Fall das dies noch nicht bekannt ist.

Man kann die ExecutionPolicy auch für jeden Aufruf als Parameter spezifisch angeben:

Code: Alles auswählen

Execwith_ps powershell -ExecutionPolicy RemoteSigned
set $str$ = getLastExitcode
[Execwith_ps]
trap { write-output $_ ; exit 1 }
get-partition | select disknumber, partitionnumber, driveletter, size,type
exit $LASTEXITCODE
Damit spart man sich das seperate Setzen/Zurücksetzen vor und nach jedem Aufruf, der System-Parameter bleibt hiervon unberührt.
Antworten