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