Sie können die JavaScript-Beispiele ausschneiden, einfügen und bearbeiten, um Skripts für häufig verwendete PowerShell-Aufgaben zu erstellen.

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 API des Plug-Ins 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());
     }
}