en-US/PSMPSession-help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" schema="maml" xmlns="http://msh">
  <command:command>
    <command:details>
      <command:name>New-PSMPSession</command:name>
      <maml:description>
        <maml:para>Formats PSMP connection string and connects to target using ssh.</maml:para>
      </maml:description>
      <command:verb>New</command:verb>
      <command:noun>PSMPSession</command:noun>
    </command:details>
    <maml:description>
      <maml:para>Correctly formats PSMP ssh connection string based on the provided parameter values.
Supports both local and domain account objects, including usernames in UPN format.
Supports optional target and tunnel ports, and passing additional arguments or a command to the ssh client.
Allows user to specify any non-default additional delimiters configured for PSMP.
SSH client must be installed and available on your PATH.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-PSMPSession</maml:name>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="0" aliases="none">
          <maml:name>VaultUser</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="1" aliases="none">
          <maml:name>TargetAccount</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="2" aliases="none">
          <maml:name>TargetDomain</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="3" aliases="none">
          <maml:name>TargetAddress</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="4" aliases="PSMPAddress">
          <maml:name>TargetMachine</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="5" aliases="none">
          <maml:name>TargetPort</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="6" aliases="none">
          <maml:name>TunnelPort</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="7" aliases="none">
          <maml:name>SSHArgument</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="8" aliases="none">
          <maml:name>Command</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="9" aliases="none">
          <maml:name>AdditionalDelimiter</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="10" aliases="none">
          <maml:name>TargetAddressPortDelimiter</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>WhatIf</maml:name>
          <maml:description />
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>Confirm</maml:name>
          <maml:description />
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="10" aliases="none">
        <maml:name>AdditionalDelimiter</maml:name>
        <maml:description>
          <maml:para>Specify the AdditionalDelimiter in use.
If left blank, the default AdditionalDelimiter of % is used.
If authenticating with or targeting an account in UserPrincipalName format, PSMP should be configured with an AdditionalDelimiter.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="9" aliases="none">
        <maml:name>Command</maml:name>
        <maml:description>
          <maml:para>Optional command to execute on the target after connecting.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="cf">
        <maml:name>Confirm</maml:name>
        <maml:description>
          <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para>
        </maml:description>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="8" aliases="none">
        <maml:name>SSHArgument</maml:name>
        <maml:description>
          <maml:para>Optional arguments passed to the ssh client before the connection string.
e.g. -t, -i private_key_file, -L localPort:127.0.0.1:tunnelPort
Specify each switch and value as a separate array element, e.g. -SSHArgument '-i', 'C:\keys\id_rsa'</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="2" aliases="none">
        <maml:name>TargetAccount</maml:name>
        <maml:description>
          <maml:para>The Account in CyberArk to use to connect to a target.
Standard &amp; UserPrincipalName formats are supported.
If UserPrincipalName format is used, TargetDomain value must be provided.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="4" aliases="none">
        <maml:name>TargetAddress</maml:name>
        <maml:description>
          <maml:para>The address of the target to connect to using the target account.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="11" aliases="none">
        <maml:name>TargetAddressPortDelimiter</maml:name>
        <maml:description>
          <maml:para>The delimiter to separate the target domain and optional port values.
A TargetAddressPortDelimiter must have been configured for PSMP.
If left blank, the default TargetAddressPortDelimiter of # is used.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="3" aliases="none">
        <maml:name>TargetDomain</maml:name>
        <maml:description>
          <maml:para>Optional Domain name of the target account.
Must be provided if TargetAccount is in UserPrincipalName format.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="5" aliases="PSMPAddress">
        <maml:name>TargetMachine</maml:name>
        <maml:description>
          <maml:para>The CyberArk PSMP server to connect through.
Alias: PSMPAddress</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="6" aliases="none">
        <maml:name>TargetPort</maml:name>
        <maml:description>
          <maml:para>Optional port of the target server, if the target does not listen on the default ssh port.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="7" aliases="none">
        <maml:name>TunnelPort</maml:name>
        <maml:description>
          <maml:para>Optional tunnel target port, used for ssh tunneling via PSMP.
TargetPort must also be provided.
Use SSHArgument to supply the matching local port forward, e.g. -L 5432:127.0.0.1:5432</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="1" aliases="none">
        <maml:name>VaultUser</maml:name>
        <maml:description>
          <maml:para>The Vault user with which to authenticate to CyberArk.
Standard &amp; UserPrincipalName formats are supported.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="wi">
        <maml:name>WhatIf</maml:name>
        <maml:description>
          <maml:para>Shows what would happen if the cmdlet runs.
The cmdlet is not run.</maml:para>
        </maml:description>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para>AUTHOR: Pete Maan</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- EXAMPLE 1 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-PSMPSession -VaultUser pspete -TargetAccount someaccount -TargetAddress 1.2.3.4 -TargetMachine PSMP
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via PSM when target account is a local account object.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting connection string:
pspete@someaccount@1.2.3.4@PSMP</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 2 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-PSMPSession -VaultUser pspete -TargetAccount pspete_ADM -TargetDomain domain.com -TargetAddress server -TargetMachine psmp.domain.com
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via PSM when target account is a domain account object.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting connection string:
pspete@pspete_ADM#domain.com@server@psmp.domain.com</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 3 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-PSMPSession -VaultUser pspete@pspete.dev -TargetAccount localuser -TargetAddress someserver -TargetMachine somepsmp
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via PSM when vault username is in UPN format, and target account is a local account object.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting connection string:
pspete@pspete.dev%localuser%someserver@somepsmp</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 4 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-PSMPSession -VaultUser pete@pspete.dev -TargetAccount SomeAccount -TargetDomain SomeDomain -TargetAddress SomeServer -TargetMachine SomePSMP
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via PSM when vault username is in UPN format, and target account is a domain account.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting connection string:
pete@pspete.dev%SomeAccount#SomeDomain%SomeServer@SomePSMP</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 5 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-PSMPSession -VaultUser admin -TargetAccount target@company.com -TargetDomain company.com -TargetAddress server.company.com -TargetMachine psmp
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via PSM when target username is in UPN format.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting connection string:
admin%target@company.com#company.com%server.company.com@psmp</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 6 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-PSMPSession -VaultUser admin@company.com -TargetAccount target@some.company.com -TargetDomain some.company.com -TargetAddress server.some.company.com -TargetMachine psmp.company.com
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via PSM when both vault username and target username are in UPN format.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting connection string:
admin@company.com%target@some.company.com#some.company.com%server.some.company.com@psmp.company.com</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 7 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-PSMPSession -VaultUser admin@company.com -TargetAccount target@some.company.com -TargetDomain some.company.com -TargetAddress server.some.company.com -TargetMachine psmp.company.com -AdditionalDelimiter '$'
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via PSM when both vault username and target username are in UPN format, and an alternative additional delimiter is configured.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting connection string:
admin@company.com$target@some.company.com#some.company.com$server.some.company.com@psmp.company.com</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 8 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-PSMPSession -VaultUser admin@company.com -TargetAccount target@some.company.com -TargetDomain some.company.com -TargetAddress server.some.company.com -TargetMachine psmp.company.com -TargetAddressPortDelimiter '$'
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via PSM when both vault username and target username are in UPN format, and an alternative TargetAddressPortDelimiter is configured.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting connection string:
admin@company.com%target@some.company.com$some.company.com%server.some.company.com@psmp.company.com</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 9 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-PSMPSession -VaultUser pspete -TargetAccount root -TargetAddress server -TargetPort 2222 -PSMPAddress psmp
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via PSM to a target listening on a non-default ssh port.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting connection string:
pspete@root@server#2222@psmp</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 10 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-PSMPSession -VaultUser pspete -TargetAccount root -TargetAddress server -TargetPort 22 -TunnelPort 5432 -TargetMachine psmp -SSHArgument '-L', '5432:127.0.0.1:5432'
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via PSM and tunnel local port 5432 to port 5432 on the target.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting ssh command:
ssh -L 5432:127.0.0.1:5432 pspete@root@server#22#5432@psmp</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 11 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-PSMPSession -VaultUser pspete -TargetAccount root -TargetAddress server -TargetMachine psmp -SSHArgument '-t' -Command 'uptime'
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via PSM, force pseudo-terminal allocation and run a command on the target.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting ssh command:
ssh -t pspete@root@server@psmp uptime</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 12 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-PSMPSession -VaultUser pspete -TargetAccount root -TargetAddress server -TargetMachine psmp -SSHArgument '-i', 'C:\keys\psmp_key'
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via PSM, authenticating to PSMP with an SSH key, such as an MFA caching key.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting ssh command:
ssh -i C:\keys\psmp_key pspete@root@server@psmp</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 13 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
Import-Csv .\targets.csv | New-PSMPSession -VaultUser pspete -TargetMachine psmp
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via PSM to each target in turn, using TargetAccount, TargetAddress and other values from the piped objects.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <command:command>
    <command:details>
      <command:name>New-SIASession</command:name>
      <maml:description>
        <maml:para>Formats SIA connection string and connects to target using ssh.</maml:para>
      </maml:description>
      <command:verb>New</command:verb>
      <command:noun>SIASession</command:noun>
    </command:details>
    <maml:description>
      <maml:para>Correctly formats CyberArk Secure Infrastructure Access (SIA) ssh connection string based on the provided parameter values.
Supports zero standing privileges (ZSP) access, and vaulted access using local or domain accounts.
Supports optional target port and network name, and passing additional arguments or a command to the ssh client.
SSH client must be installed and available on your PATH.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-SIASession</maml:name>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>User</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>Subdomain</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>TargetAddress</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>TargetPort</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>NetworkName</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>Gateway</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>SSHArgument</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>Command</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>WhatIf</maml:name>
          <maml:description />
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>Confirm</maml:name>
          <maml:description />
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>New-SIASession</maml:name>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>User</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>Subdomain</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>TargetAddress</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>TargetAccount</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>TargetDomain</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>TargetPort</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>NetworkName</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>Gateway</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>SSHArgument</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>Command</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>WhatIf</maml:name>
          <maml:description />
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>Confirm</maml:name>
          <maml:description />
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="Named" aliases="none">
        <maml:name>Command</maml:name>
        <maml:description>
          <maml:para>Optional inline commands to execute on the target after connecting, separated by semicolons.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="cf">
        <maml:name>Confirm</maml:name>
        <maml:description>
          <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para>
        </maml:description>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="Named" aliases="none">
        <maml:name>Gateway</maml:name>
        <maml:description>
          <maml:para>The SIA SSH gateway address.
If left blank, the default gateway of \&lt;Subdomain\&gt;.ssh.cyberark.cloud is used.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="Named" aliases="none">
        <maml:name>NetworkName</maml:name>
        <maml:description>
          <maml:para>Optional network name, as defined on the connector pool.
Mandatory in SIA for vaulted accounts defined with an IP address.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
        <maml:name>SSHArgument</maml:name>
        <maml:description>
          <maml:para>Optional arguments passed to the ssh client before the connection string.
e.g. -t, -i private_key_file, -L clientPort:target:targetPort
Specify each switch and value as a separate array element, e.g. -SSHArgument '-i', 'C:\keys\id_rsa'</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="Named" aliases="none">
        <maml:name>Subdomain</maml:name>
        <maml:description>
          <maml:para>Your organization's tenant subdomain, as shown in your portal URL (https://subdomain.cyberark.cloud).</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="Named" aliases="none">
        <maml:name>TargetAccount</maml:name>
        <maml:description>
          <maml:para>The user name on the target machine, as defined in Privilege Cloud.
Specifying a TargetAccount uses vaulted access.
Standard &amp; UserPrincipalName formats are supported.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="Named" aliases="none">
        <maml:name>TargetAddress</maml:name>
        <maml:description>
          <maml:para>The target to connect to.
FQDN, IP address, or cloud instance ID (ZSP only).</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="Named" aliases="none">
        <maml:name>TargetDomain</maml:name>
        <maml:description>
          <maml:para>The address of the domain account as defined in Privilege Cloud.
Only provide for domain accounts used with vaulted access.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="Named" aliases="none">
        <maml:name>TargetPort</maml:name>
        <maml:description>
          <maml:para>Optional port of the target server, if the target does not listen on the default ssh port.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="Named" aliases="none">
        <maml:name>User</maml:name>
        <maml:description>
          <maml:para>Your username as defined in your organization's directory service.
Typically in the format username@login_suffix.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="wi">
        <maml:name>WhatIf</maml:name>
        <maml:description>
          <maml:para>Shows what would happen if the cmdlet runs.
The cmdlet is not run.</maml:para>
        </maml:description>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para>AUTHOR: Pete Maan</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- EXAMPLE 1 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-SIASession -User pete@pspete.dev -Subdomain acme -TargetAddress 10.0.0.5
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via SIA using zero standing privileges.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting connection string:
pete@pspete.dev#acme@10.0.0.5@acme.ssh.cyberark.cloud</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 2 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-SIASession -User pete@pspete.dev -Subdomain acme -TargetAddress 10.0.0.5 -TargetPort 2222 -NetworkName Net1
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via SIA using zero standing privileges, to a target on a non-default port in a named network.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting connection string:
pete@pspete.dev#acme@10.0.0.5:2222#Net1@acme.ssh.cyberark.cloud</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 3 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-SIASession -User pete@pspete.dev -Subdomain acme -TargetAccount root -TargetAddress server.pspete.dev
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via SIA using vaulted access with a local account.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting connection string:
pete@pspete.dev#acme@root@server.pspete.dev@acme.ssh.cyberark.cloud</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 4 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-SIASession -User pete@pspete.dev -Subdomain acme -TargetAccount admin -TargetDomain pspete.dev -TargetAddress server.pspete.dev
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via SIA using vaulted access with a domain account.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting connection string:
pete@pspete.dev#acme@admin#pspete.dev@server.pspete.dev@acme.ssh.cyberark.cloud</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 5 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-SIASession -User pete@pspete.dev -Subdomain acme -TargetAddress 10.0.0.5 -Gateway ssh.vanity.example.com
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via SIA through a non-default gateway address.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting connection string:
pete@pspete.dev#acme@10.0.0.5@ssh.vanity.example.com</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 6 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-SIASession -User pete@pspete.dev -Subdomain acme -TargetAddress 10.0.0.5 -SSHArgument '-L', '8080:10.0.0.5:80'
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via SIA and forward local port 8080 to port 80 on the target.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting ssh command:
ssh -L 8080:10.0.0.5:80 pete@pspete.dev#acme@10.0.0.5@acme.ssh.cyberark.cloud</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 7 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-SIASession -User pete@pspete.dev -Subdomain acme -TargetAddress 10.0.0.5 -Command 'touch tmp.txt; cat tmp.txt'
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via SIA and run inline commands on the target.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting ssh command:
ssh pete@pspete.dev#acme@10.0.0.5@acme.ssh.cyberark.cloud 'touch tmp.txt; cat tmp.txt'</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 8 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
New-SIASession -User pete@pspete.dev -Subdomain acme -TargetAddress 10.0.0.5 -SSHArgument '-i', 'C:\keys\sia_key'
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via SIA, authenticating to the SSH gateway with an SSH key, such as an MFA caching key.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting ssh command:
ssh -i C:\keys\sia_key pete@pspete.dev#acme@10.0.0.5@acme.ssh.cyberark.cloud</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 9 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
Import-Csv .\targets.csv | New-SIASession -User pete@pspete.dev -Subdomain acme
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Connect via SIA to each target in turn, using TargetAddress, TargetAccount and other values from the piped objects.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <command:command>
    <command:details>
      <command:name>Save-SIASSHKey</command:name>
      <maml:description>
        <maml:para>Downloads an SIA MFA caching SSH key using sftp.</maml:para>
      </maml:description>
      <command:verb>Save</command:verb>
      <command:noun>SIASSHKey</command:noun>
    </command:details>
    <maml:description>
      <maml:para>Formats the SIA sftp command to generate and download an MFA caching SSH key, and saves the key to the specified path.
The key can then be used with New-SIASession to connect to targets without repeating MFA, for the period configured in SIA.
Access to the saved key file is restricted to the current user, as required by the OpenSSH client.
SIA only accepts the key from the IP address of the machine which downloaded it.
SFTP client must be installed and available on your PATH.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Save-SIASSHKey</maml:name>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="0" aliases="none">
          <maml:name>User</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="1" aliases="none">
          <maml:name>Subdomain</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="2" aliases="none">
          <maml:name>Path</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="3" aliases="none">
          <maml:name>Format</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="4" aliases="none">
          <maml:name>Gateway</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="5" aliases="none">
          <maml:name>SFTPArgument</maml:name>
          <maml:description />
          <command:parameterValue required="true" variableLength="false">String[]</command:parameterValue>
          <dev:type>
            <maml:name>String[]</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>WhatIf</maml:name>
          <maml:description />
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          </dev:type>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named" aliases="none">
          <maml:name>Confirm</maml:name>
          <maml:description />
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="cf">
        <maml:name>Confirm</maml:name>
        <maml:description>
          <maml:para>Prompts you for confirmation before running the cmdlet.</maml:para>
        </maml:description>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="4" aliases="none">
        <maml:name>Format</maml:name>
        <maml:description>
          <maml:para>The format of the key.
OpenSSH (default) for use with OpenSSH clients, or PPK for use with PuTTY.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="5" aliases="none">
        <maml:name>Gateway</maml:name>
        <maml:description>
          <maml:para>The SIA SSH gateway address.
If left blank, the default gateway of \&lt;Subdomain\&gt;.ssh.cyberark.cloud is used.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="3" aliases="none">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The file path to save the key to.
If the path is an existing directory, the key is saved to a file named key in that directory.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="6" aliases="none">
        <maml:name>SFTPArgument</maml:name>
        <maml:description>
          <maml:para>Optional arguments passed to the sftp client before the connection string.
Specify each switch and value as a separate array element, e.g. -SFTPArgument '-P', '2222'</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String[]</command:parameterValue>
        <dev:type>
          <maml:name>String[]</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="2" aliases="none">
        <maml:name>Subdomain</maml:name>
        <maml:description>
          <maml:para>Your organization's tenant subdomain, as shown in your portal URL (https://subdomain.cyberark.cloud).</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="true (ByPropertyName)" position="1" aliases="none">
        <maml:name>User</maml:name>
        <maml:description>
          <maml:para>Your username as defined in your organization's directory service.
Typically in the format username@login_suffix.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
        </dev:type>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="wi">
        <maml:name>WhatIf</maml:name>
        <maml:description>
          <maml:para>Shows what would happen if the cmdlet runs.
The cmdlet is not run.</maml:para>
        </maml:description>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.IO.FileInfo</maml:name>
        </dev:type>
        <maml:description>
          <maml:para />
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>AUTHOR: Pete Maan</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- EXAMPLE 1 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
Save-SIASSHKey -User pete@pspete.dev -Subdomain acme -Path ~\.ssh\acme_pete
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Download an MFA caching key in OpenSSH format.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting sftp command:
sftp pete@pspete.dev#acme@key@acme.ssh.cyberark.cloud:/key C:\Users\pete\.ssh\acme_pete</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 2 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
Save-SIASSHKey -User pete@pspete.dev -Subdomain acme -Path ~\.ssh\acme_pete.ppk -Format PPK
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Download an MFA caching key in PuTTY Private Key format.</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Resulting sftp command:
sftp pete@pspete.dev#acme@key_ppk@acme.ssh.cyberark.cloud:/key C:\Users\pete\.ssh\acme_pete.ppk</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- EXAMPLE 3 ---------</maml:title>
        <maml:introduction>
          <maml:para>```
$Key = Save-SIASSHKey -User pete@pspete.dev -Subdomain acme -Path ~\.ssh\acme_pete
New-SIASession -User pete@pspete.dev -Subdomain acme -TargetAddress 10.0.0.5 -SSHArgument '-i', $Key.FullName
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Download an MFA caching key, then use it to connect to a target without repeating MFA.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
</helpItems>