Sie können die JavaScript-Beispiele ausschneiden, einfügen und bearbeiten, um Skripts für häufig verwendete PowerShell-Aufgaben zu schreiben.
Weitere Informationen zur Skripterstellung finden Sie im vRealize Orchestrator-Entwicklerhandbuch.
Ausführen eines PowerShell-Skripts über die API
Sie können JavaScript verwenden, um ein PowerShell-Skript über die Plug-In-API auszuführen.
Mithilfe dieses Beispiels können Sie die folgenden Aktionen durchführen.
- Öffnet eine Sitzung auf einem PowerShell-Host.
- Stellt das auszuführenden Skript bereit.
- Prüft die Aufrufergebnisse.
- Schließt die Sitzung.
var sess; try { //Open session to PowerShell host var sess = host.openSession() //Set executed script var result = sess.invokeScript('dir') //Check for errors if (result.invocationState == 'Failed'){ throw "PowerShellInvocationError: Errors found while executing script \n" + result.getErrors(); } //Show result System.log( result.getHostOutput() ); } catch (ex){ System.error (ex) } finally { if (sess) { //Close session host.closeSession( sess.getSessionId() ); } }
Arbeiten mit dem Ergebnis
Sie können mithilfe von JavaScript mit dem Ergebnis einer PowerShell-Skriptausführung arbeiten.
Mithilfe dieses Beispiels können Sie die folgenden Aktionen durchführen.
- Prüft den Aufrufstatus.
- Extrahiert einen Werts aus dem Ergebnis.
- Prüft den RemotePSObject-Typ.
var sess = host.openSession() sess.addCommandFromString("dir " + directory) var invResult = sess.invokePipeline(); //Show result System.log( invResult.getHostOutput() ); //Check for errors if (invResult.invocationState == 'Failed'){ System.error(invResult.getErrors()); } else { //Get PowerShellRemotePSObject var psObject = invResult.getResults(); var directories = psObject.getRootObject(); var isList = directories instanceof Array if ( isList ){ for (idx in directories){ var item = directories[idx]; if ( item.instanceOf('System.IO.FileInfo') ){//Check type of object System.log( item.getProperty('FullName') );//Extract value from result } } } else { System.log( directories.getProperty('FullName') );//Extract value from result } } host.closeSession( sess.getSessionId());
Anmelden mit benutzerdefinierten Anmeldedaten
Sie können mithilfe von JavaScript unter Verwendung benutzerdefinierter Anmeldedaten eine Verbindung zu einem PowerShell-Host herstellen.
var sess; try { sess = host.openSessionAs(userName, password); var invResult = sess.invokeScript('$env:username'); //Check for errors if (invResult.invocationState == 'Failed'){ System.error(invResult.getErrors()); } else { //Show result System.log( invResult.getHostOutput() ); } } catch (ex){ System.error (ex) } finally { if (sess) { host.closeSession( sess.getSessionId()); } }