Execute Powershell

Tag: ExecutePowershell

Ytria Automation can execute any Powershell script. It will run with the credentials associated with the current session.


Tag Attributes

Attributes

Attribute Values

Value Description

Script

N/A

PowerShell script to execute

OnPremises

TRUE / FALSE (Defaults to FALSE) - If TRUE, execute in On-Premises context. If not, use Exchange context (Mailbox, MFA, etc.)

N/A - Optional

UseIPPS

TRUE / FALSE (Defaults to FALSE)

N/A - Optional

Detailed Description

Output MUST be configured using SetParam sub-actions:

<SetParam Name="STREAM_NAME" Value="OUTPUT_VAR_NAME" FilePath="OUTPUT_FILE_NAME"/>


STREAM_NAME can be:

  • Output (== Write-Output)

  • Debug (== Write-Debug)

  • Error (== Write-Error)

  • Information (== Write-Information)

  • Verbose (== Write-Verbose )\

  • Warning (== Write-Warning)

OUTPUT_VAR_NAME is the output var name. OUTPUT_FILE_NAME is the output file path. At least one of them must be non-empty. If both are, OUTPUT_VAR_NAME wins.

Additionally, at least one output (one SetParam) must be configured. One stream can't be used more than once for one ExecutePowershell. Several streams can be used for one ExecutePowershell.

Important Note
Any string result will end up in Output stream. But if your script returns an object (or collection of objects), Output stream will stay empty.

For instance:
This will generate an Output: script="Get-Mailbox 94bcbf02-692c-4f62-b620-f15408e1528f | ConvertTo-Csv -NoTypeInformation"
This will not: script="Get-Mailbox 94bcbf02-692c-4f62-b620-f15408e1528f"

Example Script

XML
<ytriaAutomation Application="sapio365">
	<ExecutePowershell script="Write-Output 'This is my success';Write-Debug 'This is my debug';Write-Error 'This is my error';Write-Information 'This is my information';Write-		
	Verbose 'This is my verbose';Write-Warning 'This is my warning';">
		<SetParam Name="Output" FilePath="myOutput.txt"/> <!-- Main output to file -->
		<SetParam Name="Debug" Value="myDebug"/>
		<SetParam Name="Error" Value="myError"/>
		<SetParam Name="Information" Value="myInformation"/>
		<SetParam Name="Verbose" Value="myVerbose"/>
		<SetParam Name="Warning" Value="myWarning"/>
	</ExecutePowershell>
	<echo value="{%myDebug%}"/>
	<echo value="{%myError%}"/>
	<echo value="{%myInformation%}"/>
	<echo value="{%myVerbose%}"/>
	<echo value="{%myWarning%}"/>
</ytriaAutomation>