È possibile tagliare, incollare e modificare esempi di JavaScript per scrivere script per le attività comuni di PowerShell.

Per ulteriori informazioni sullo scripting, consultare la guida per gli sviluppatori di vRealize Orchestrator.

Esecuzione di uno script PowerShell tramite l'API

È possibile utilizzare JavaScript per eseguire uno script PowerShell tramite l'API del plug-in.

Questo script di esempio esegue le seguenti azioni.
  • Apre una sessione in un host PowerShell.
  • Fornisce uno script da eseguire.
  • Controlla i risultati della chiamata.
  • Chiude la sessione.
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() );
     }
}

Utilizzare il risultato

È possibile utilizzare JavaScript per usare il risultato dell'esecuzione di uno script di PowerShell.

Questo script di esempio esegue le seguenti azioni.
  • Controlla lo stato della chiamata.
  • Estrae un valore dal risultato.
  • Controlla il tipo RemotePSObject.
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());

Connessione con credenziali personalizzate

È possibile utilizzare JavaScript per connettersi a un host PowerShell con credenziali personalizzate.

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());
     }
}