Vous pouvez couper, coller et modifier les exemples JavaScript afin de rédiger des scripts pour les tâches PowerShell courantes.

Pour obtenir plus d'informations sur les scripts, consultez le vRealize OrchestratorGuide du développeur.

Exécuter un script PowerShell via l'API

Vous pouvez utiliser JavaScript pour exécuter un script PowerShell via l'API du plug-in.

Cet exemple de script effectue les actions suivantes.
  • Ouvre une session sur un hôte PowerShell.
  • Fournit un script à exécuter.
  • Vérifie les résultats de l'appel.
  • Ferme la session.
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() );
     }
}

Exploiter le résultat

Vous pouvez utiliser JavaScript pour exploiter le résultat d'une exécution de script PowerShell.

Cet exemple de script effectue les actions suivantes.
  • Vérifie l'état de l'appel.
  • Extrait une valeur du résultat.
  • Vérifie le type 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());

Se connecter avec des informations d'identification personnalisées

Vous pouvez utiliser JavaScript pour vous connecter à un hôte PowerShell avec des informations d'identification personnalisées.

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