NewPSSessionCommand Class

Definition

This cmdlet establishes a new Runspace either on the local machine or on the specified remote machine(s). The runspace established can be used to invoke expressions remotely.

The cmdlet can be used in the following ways:

Open a local runspace $rs = New-PSSession

Open a runspace to a remote system. $rs = New-PSSession -Machine PowerShellWorld

Create a runspace specifying that it is globally scoped. $global:rs = New-PSSession -Machine PowerShellWorld

Create a collection of runspaces $runspaces = New-PSSession -Machine PowerShellWorld,PowerShellPublish,PowerShellRepo

Create a set of Runspaces using the Secure Socket Layer by specifying the URI form.
This assumes that an shell by the name of E12 exists on the remote server.
$serverURIs = 1..8 | %{ "SSL://server${_}:443/E12" } $rs = New-PSSession -URI $serverURIs

Create a runspace by connecting to port 8081 on servers s1, s2 and s3 $rs = New-PSSession -computername s1,s2,s3 -port 8081

Create a runspace by connecting to port 443 using ssl on servers s1, s2 and s3 $rs = New-PSSession -computername s1,s2,s3 -port 443 -useSSL

Create a runspace by connecting to port 8081 on server s1 and run shell named E12. This assumes that a shell by the name E12 exists on the remote server $rs = New-PSSession -computername s1 -port 8061 -ShellName E12

public ref class NewPSSessionCommand : Microsoft::PowerShell::Commands::PSRemotingBaseCmdlet, IDisposable
[System.Management.Automation.Cmdlet("New", "PSSession", DefaultParameterSetName="ComputerName", HelpUri="https://go.microsoft.com/fwlink/?LinkID=135237", RemotingCapability=System.Management.Automation.RemotingCapability.OwnedByCommand)]
[System.Management.Automation.OutputType(new System.Type[] { typeof(System.Management.Automation.Runspaces.PSSession) })]
public class NewPSSessionCommand : Microsoft.PowerShell.Commands.PSRemotingBaseCmdlet, IDisposable
type NewPSSessionCommand = class
    inherit PSRemotingBaseCmdlet
    interface IDisposable
Public Class NewPSSessionCommand
Inherits PSRemotingBaseCmdlet
Implements IDisposable
Inheritance
Attributes
Implements

Constructors

NewPSSessionCommand()

Fields

ComputerInstanceIdParameterSet

Computername with session instance ID parameter set

(Inherited from PSRemotingCmdlet)
ComputerNameParameterSet

Computername parameter set

(Inherited from PSRemotingCmdlet)
ContainerIdParameterSet

Container ID parameter set

(Inherited from PSRemotingCmdlet)
DefaultPowerShellRemoteShellAppName

default application name for the connection uri

(Inherited from PSRemotingCmdlet)
DefaultPowerShellRemoteShellName

Default shellname

(Inherited from PSRemotingCmdlet)
SessionParameterSet

runspace parameter set

(Inherited from PSRemotingCmdlet)
SSHHostHashParameterSet

SSH host parmeter set supporting hash connection parameters

(Inherited from PSRemotingCmdlet)
SSHHostParameterSet

SSH host parameter set

(Inherited from PSRemotingCmdlet)
UriParameterSet

Uri parameter set

(Inherited from PSRemotingBaseCmdlet)
VMIdParameterSet

VM guid parameter set

(Inherited from PSRemotingCmdlet)
VMNameParameterSet

VM name parameter set

(Inherited from PSRemotingCmdlet)

Properties

AllowRedirection

The AllowRediraction parameter enables the implicit redirection functionality

(Inherited from PSRemotingBaseCmdlet)
ApplicationName

This parameters specifies the appname which identifies the connection end point on the remote machine. If this parameter is not specified then the value specified in DEFAULTREMOTEAPPNAME will be used. If thats not specified as well, then "WSMAN" will be used

(Inherited from PSRemotingBaseCmdlet)
Authentication

Use basic authentication to authenticate the user.

(Inherited from PSRemotingBaseCmdlet)
CertificateThumbprint

Specifies the certificate thumbprint to be used to impersonate the user on the remote machine.

(Inherited from PSRemotingBaseCmdlet)
CommandOrigin

This property tells you if you were being invoked inside the runspace or if it was an external request.

(Inherited from InternalCommand)
CommandRuntime

Holds the command runtime object for this command. This object controls what actually happens when a write is called.

(Inherited from Cmdlet)
ComputerName

This parameter represents the address(es) of the remote computer(s). The following formats are supported: (a) Computer name (b) IPv4 address : 132.3.4.5 (c) IPv6 address: 3ffe:8311:ffff:f70f:0:5efe:172.30.162.18

ConfigurationName

For WSMan sessions: If this parameter is not specified then the value specified in the environment variable DEFAULTREMOTESHELLNAME will be used. If this is not set as well, then Microsoft.PowerShell is used.

For VM/Container sessions: If this parameter is not specified then no configuration is used.

ConnectionUri

A complete URI(s) specified for the remote computer and shell to connect to and create runspace for

(Inherited from PSRemotingBaseCmdlet)
ContainerId

ID of target container.

(Inherited from PSRemotingBaseCmdlet)
Credential

Specifies the credentials of the user to impersonate in the remote machine. If this parameter is not specified then the credentials of the current user process will be assumed.

CurrentPSTransaction

Gets an object that surfaces the current PowerShell transaction. When this object is disposed, PowerShell resets the active transaction

(Inherited from Cmdlet)
EnableNetworkAccess

When set and in loopback scenario (localhost) this enables creation of WSMan host process with the user interactive token, allowing PowerShell script network access, i.e., allows going off box. When this property is true and a PSSession is disconnected, reconnection is allowed only if reconnecting from a PowerShell session on the same box.

Events

Gets the event manager for the current runspace.

(Inherited from PSCmdlet)
Host

Gets the host interaction APIs.

(Inherited from PSCmdlet)
HostName

Host name for an SSH remote connection.

(Inherited from PSRemotingBaseCmdlet)
InvokeCommand

Provides access to utility routines for executing scripts and creating script blocks.

(Inherited from PSCmdlet)
InvokeProvider

Gets the instance of the provider interface APIs for the current runspace.

(Inherited from PSCmdlet)
JobManager

Manager for JobSourceAdapters registered.

(Inherited from PSCmdlet)
JobRepository

Repostiory for jobs

(Inherited from PSCmdlet)
KeyFilePath

SSH Key File Path

(Inherited from PSRemotingBaseCmdlet)
MyInvocation

Contains information about the identity of this cmdlet and how it was invoked.

(Inherited from PSCmdlet)
Name

Friendly names for the new PSSessions

PagingParameters

If the cmdlet declares paging support (via SupportsPaging), then PagingParameters property contains arguments of the paging parameters. Otherwise PagingParameters property is null.

(Inherited from PSCmdlet)
ParameterSetName

The name of the parameter set in effect.

(Inherited from PSCmdlet)
Port

Port specifies the alternate port to be used in case the default ports are not used for the transport mechanism (port 80 for http and port 443 for useSSL)

(Inherited from PSRemotingBaseCmdlet)
ResolvedComputerNames

Computer names after they have been resolved (null, empty string, "." resolves to localhost)

(Inherited from PSRemotingBaseCmdlet)
RunAsAdministrator

When set, PowerShell process inside container will be launched with high privileged account. Otherwise (default case), PowerShell process inside container will be launched with low privileged account.

(Inherited from PSRemotingBaseCmdlet)
Session

The PSSession object describing the remote runspace using which the specified cmdlet operation will be performed

SessionOption

Extended Session Options for controlling the session creation. Use "New-WSManSessionOption" cmdlet to supply value for this parameter.

(Inherited from PSRemotingBaseCmdlet)
SessionState

Gets the instance of session state for the current runspace.

(Inherited from PSCmdlet)
SSHConnection

Hashtable array containing SSH connection parameters for each remote target ComputerName (Alias: HostName) (required) UserName (optional) KeyFilePath (Alias: IdentityFilePath) (optional)

(Inherited from PSRemotingBaseCmdlet)
SSHTransport

This parameter specifies that SSH is used to establish the remote connection and act as the remoting transport. By default WinRM is used as the remoting transport. Using the SSH transport requires that SSH is installed and PowerShell remoting is enabled on both client and remote machines.

(Inherited from PSRemotingBaseCmdlet)
Stopping

Is this command stopping?

(Inherited from Cmdlet)
Subsystem (Inherited from PSRemotingBaseCmdlet)
ThrottleLimit

Allows the user of the cmdlet to specify a throttling value for throttling the number of remote operations that can be executed simultaneously

(Inherited from PSRemotingBaseCmdlet)
UserName

SSH User Name

(Inherited from PSRemotingBaseCmdlet)
UseSSL

This parameter suggests that the transport scheme to be used for remote connections is useSSL instead of the default http.Since there are only two possible transport schemes that are possible at this point, a SwitchParameter is being used to switch between the two.

(Inherited from PSRemotingBaseCmdlet)
VMId

Guid of target virtual machine.

(Inherited from PSRemotingBaseCmdlet)
VMName

Name of target virtual machine.

(Inherited from PSRemotingBaseCmdlet)

Methods

BeginProcessing()

The throttle limit will be set here as it needs to be done only once per cmdlet and not for every call

CurrentProviderLocation(String) (Inherited from PSCmdlet)
Dispose()

Dispose method of IDisposable. Gets called in the following cases: 1. Pipeline explicitly calls dispose on cmdlets 2. Called by the garbage collector

Dispose(Boolean)

Internal dispose method which does the actual dispose operations and finalize suppressions

EndProcessing()

OpenAsync would have been called from ProcessRecord. This method will wait until all runspaces are opened and then write them to the pipeline as and when they become available.

GetResolvedProviderPathFromPSPath(String, ProviderInfo) (Inherited from PSCmdlet)
GetResourceString(String, String)

Gets the resource string corresponding to baseName and resourceId from the current assembly. You should override this if you require a different behavior.

(Inherited from Cmdlet)
GetUnresolvedProviderPathFromPSPath(String) (Inherited from PSCmdlet)
GetVariableValue(String) (Inherited from PSCmdlet)
GetVariableValue(String, Object) (Inherited from PSCmdlet)
Invoke()

Invoke this cmdlet object returning a collection of results.

(Inherited from Cmdlet)
Invoke<T>()

Returns a strongly-typed enumerator for the results of this cmdlet.

(Inherited from Cmdlet)
ParseSshHostName(String, String, String, Int32) (Inherited from PSRemotingBaseCmdlet)
ProcessRecord()

The runspace objects will be created using OpenAsync. At the end, the method will check if any runspace opened has already become available. If so, then it will be written to the pipeline

ResolveAppName(String)

Determines the appname to be used based on the following order: 1. AppName parameter specified 2. DEFAULTREMOTEAPPNAME variable set 3. WSMan

(Inherited from PSRemotingCmdlet)
ResolveComputerName(String)

Resolves a computer name. If its null or empty its assumed to be localhost

(Inherited from PSRemotingCmdlet)
ResolveComputerNames(String[], String[])

Resolve all the machine names provided. Basically, if a machine name is '.' assume localhost

(Inherited from PSRemotingCmdlet)
ResolveShell(String)

Determines the shellname to use based on the following order: 1. ShellName parameter specified 2. DEFAULTREMOTESHELLNAME variable set 3. PowerShell

(Inherited from PSRemotingCmdlet)
ShouldContinue(String, String)

Confirm an operation or grouping of operations with the user. This differs from ShouldProcess in that it is not affected by preference settings or command-line parameters, it always does the query. This variant only offers Yes/No, not YesToAll/NoToAll.

(Inherited from Cmdlet)
ShouldContinue(String, String, Boolean, Boolean)

Confirm an operation or grouping of operations with the user. This differs from ShouldProcess in that it is not affected by preference settings or command-line parameters, it always does the query. This variant offers Yes, No, YesToAll and NoToAll.

(Inherited from Cmdlet)
ShouldContinue(String, String, Boolean, Boolean, Boolean)

Confirm an operation or grouping of operations with the user. This differs from ShouldProcess in that it is not affected by preference settings or command-line parameters, it always does the query. This variant offers Yes, No, YesToAll and NoToAll.

(Inherited from Cmdlet)
ShouldProcess(String)

Confirm the operation with the user. Cmdlets which make changes (e.g. delete files, stop services etc.) should call ShouldProcess to give the user the opportunity to confirm that the operation should actually be performed.

(Inherited from Cmdlet)
ShouldProcess(String, String)

Confirm the operation with the user. Cmdlets which make changes (e.g. delete files, stop services etc.) should call ShouldProcess to give the user the opportunity to confirm that the operation should actually be performed.

This variant allows the caller to specify text for both the target resource and the action.

(Inherited from Cmdlet)
ShouldProcess(String, String, String)

Confirm the operation with the user. Cmdlets which make changes (e.g. delete files, stop services etc.) should call ShouldProcess to give the user the opportunity to confirm that the operation should actually be performed.

This variant allows the caller to specify the complete text describing the operation, rather than just the name and action.

(Inherited from Cmdlet)
ShouldProcess(String, String, String, ShouldProcessReason)

Confirm the operation with the user. Cmdlets which make changes (e.g. delete files, stop services etc.) should call ShouldProcess to give the user the opportunity to confirm that the operation should actually be performed.

This variant allows the caller to specify the complete text describing the operation, rather than just the name and action.

(Inherited from Cmdlet)
StopProcessing()

This method is called when the user sends a stop signal to the cmdlet. The cmdlet will not exit until it has completed creating all the runspaces (basically the runspaces its waiting on OpenAsync is made available). However, when a stop signal is sent, CloseAsyn needs to be called to close all the pending runspaces

ThrowTerminatingError(ErrorRecord)

Terminate the command and report an error

(Inherited from Cmdlet)
TransactionAvailable()

Returns true if a transaction is available and active.

(Inherited from Cmdlet)
ValidateComputerName(String[])

Validates computer names to check if none of them happen to be a Uri. If so this throws an error

(Inherited from PSRemotingBaseCmdlet)
ValidateRemoteRunspacesSpecified()

Validate the PSSession objects specified and write appropriate error records.

(Inherited from PSRemotingBaseCmdlet)
WriteCommandDetail(String)

Write text into pipeline execution log.

(Inherited from Cmdlet)
WriteDebug(String)

Display debug information

(Inherited from Cmdlet)
WriteError(ErrorRecord)

Internal variant: Writes the specified error to the error pipe.

(Inherited from Cmdlet)
WriteInformation(InformationRecord)

Route information to the user or host.

(Inherited from Cmdlet)
WriteInformation(Object, String[])

Route information to the user or host.

(Inherited from Cmdlet)
WriteObject(Object)

Writes the object to the output pipe.

(Inherited from Cmdlet)
WriteObject(Object, Boolean)

Writes one or more objects to the output pipe. If the object is a collection and the enumerateCollection flag is true, the objects in the collection will be written individually.

(Inherited from Cmdlet)
WriteProgress(ProgressRecord)

Display progress information

(Inherited from Cmdlet)
WriteVerbose(String)

Display verbose information

(Inherited from Cmdlet)
WriteWarning(String)

Display warning information

(Inherited from Cmdlet)

Applies to