Puede cortar, pegar y editar los ejemplos de JavaScript a fin de escribir scripts para tareas comunes de PowerShell.

Para obtener más información sobre la creación de scripts, consulte vRealize Orchestrator Developer's Guide.

Ejecutar un script de PowerShell mediante la API

Puede usar JavaScript para ejecutar un script de PowerShell a través de la API del complemento.

Este ejemplo de script realiza las acciones siguientes:

  • Abre una sesión en un host de PowerShell.

  • Proporciona un script para ejecutar.

  • Comprueba los resultados de la invocación.

  • Cierra la sesión.

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

Utilizar el resultado

Puede usar JavaScript para trabajar con el resultado de una ejecución de un script de PowerShell.

Este ejemplo de script realiza las acciones siguientes:

  • Comprueba el estado de la invocación.

  • Extrae un valor del resultado.

  • Comprueba el 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());

Conectar con credenciales personalizadas

Puede usar JavaScript para conectarse a un host de PowerShell con credenciales personalizadas.

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