New-PSWorkflowSession

Erstellt eine Workflowsitzung.

Syntax

New-PSWorkflowSession
   [[-ComputerName] <String[]>]
   [-Credential <Object>]
   [-Name <String[]>]
   [-Port <Int32>]
   [-UseSSL]
   [-ApplicationName <String>]
   [-ThrottleLimit <Int32>]
   [-SessionOption <PSSessionOption>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <String>]
   [-EnableNetworkAccess]
   [<CommonParameters>]

Beschreibung

Das New-PSWorkflowSession Cmdlet erstellt eine vom Benutzer verwaltete Sitzung (PSSession), die speziell für die Ausführung von Windows PowerShell-Workflows entwickelt wurde. Es verwendet die Microsoft.PowerShell.Workflow-Sitzungskonfiguration , die Skripts, Typ- und Formatierungsdateien sowie Optionen enthält, die für Workflows erforderlich sind.

Sie können den Alias oder den zugehörigen Alias nwsnverwendenNew-PSWorkflowSession.

Sie können diesem Befehl auch allgemeine Workflowparameter hinzufügen. Weitere Informationen zu allgemeinen Workflowparametern finden Sie unter about_WorkflowCommonParameters

Dieses Cmdlet wurde in Windows PowerShell 3.0 eingeführt.

Beispiele

Beispiel 1: Erstellen einer Workflowsitzung auf einem Remotecomputer

In diesem Beispiel wird die WorkflowTests-Sitzung auf dem Remotecomputer ServerNode01 erstellt.

$params = @{
    ComputerName = "ServerNode01"
    Name = "WorkflowTests"
    SessionOption = (New-PSSessionOption -OutputBufferingMode Drop)
}
New-PSWorkflowSession @params

Der Wert des SessionOption-Parameters ist ein New-PSSessionOption Befehl, der den Ausgabepuffermodus in der Sitzung auf Drop festlegt.

Beispiel 2: Erstellen von Workflowsitzungen auf mehreren Remotecomputern

In diesem Beispiel werden Workflowsitzungen auf den Computern ServerNode01 und Server12 erstellt. Der Befehl verwendet den Parameter "Credential", um mit den Berechtigungen des Do Standard-Administrators auszuführen.

"ServerNode01", "Server12" |
    New-PSWorkflowSession -Name WorkflowSession -Credential Domain01\Admin01 -ThrottleLimit 150

Der Befehl verwendet den Parameter ThrottleLimit , um die Drosselungsgrenze pro Befehl zu 150erhöhen. Dieser Wert hat Vorrang vor dem Standardgrenzwert für die Drosselung, der 100 in der Microsoft.PowerShell.Workflow-Sitzungskonfiguration festgelegt ist.

Parameter

-ApplicationName

Gibt das Anwendungsnamenssegment des Verbindungs-URI an.

Der Standardwert ist der Wert der $PSSessionApplicationName Einstellungsvariable auf dem lokalen Computer. Wenn diese Einstellungsvariable nicht definiert ist, ist der Standardwert „WSMan“. Dieser Wert ist für die meisten Verwendungsarten geeignet. Weitere Informationen finden Sie unter about_Preference_Variables.

Der WinRM-Dienst wählt mit dem Anwendungsnamen einen Listener für die Verbindungsanforderung aus. Der Wert dieses Parameters sollte mit dem Wert der URLPrefix-Eigenschaft eines Listeners auf dem Remotecomputer übereinstimmen.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Authentication

Gibt den Mechanismus an, der zum Authentifizieren der Benutzeranmeldeinformationen verwendet wird. Zulässige Werte für diesen Parameter:

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

Der Standardwert ist Default.

CredSSP-Authentifizierung ist nur in Windows Vista, Windows Server 2008 und höheren Versionen des Windows-Betriebssystems verfügbar.

Weitere Informationen zu den Werten dieses Parameters finden Sie unter AuthenticationMechanism Enumeration.

Achtung

Credential Security Service Provider (CredSSP)-Authentifizierung, bei der die Benutzeranmeldeinformationen an einen Remotecomputer übergeben werden, der authentifiziert werden soll, ist für Befehle konzipiert, die eine Authentifizierung für mehrere Ressourcen erfordern, z. B. den Zugriff auf eine Remotenetzwerkfreigabe. Dieser Mechanismus erhöht das Sicherheitsrisiko des Remotevorgangs. Wenn die Sicherheit des Remotecomputers gefährdet ist, können die an ihn übergebenen Anmeldeinformationen zum Steuern der Netzwerksitzung verwendet werden.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:Default
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

Gibt das digitale Zertifikat für öffentliche Schlüssel (X509) eines Benutzerkontos an, das über die Berechtigung zum Ausführen dieser Aktion verfügt. Geben Sie den Zertifikatfingerabdruck des Zertifikats ein.

Zertifikate werden bei der clientzertifikatbasierten Authentifizierung verwendet. Sie können nur lokalen Benutzerkonten zugeordnet werden und funktionieren nicht mit Domänenkonten.

Verwenden Sie zum Abrufen eines Zertifikatfingerabdrucks das Get-Item Cmdlet oder das Get-ChildItem Cmdlet im Windows PowerShell-Laufwerk Cert: .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Erstellt eine dauerhafte Verbindung (PSSession) mit dem angegebenen Computer. Wenn Sie mehrere Computernamen eingeben, erstellt Windows PowerShell mehrere PSSessions, eine für jeden Computer. Die Standardeinstellung ist der lokale Computer.

Geben Sie den NetBIOS-Namen, eine IP-Adresse oder den vollqualifizierten Domänennamen mindestens eines Computers ein. Um den lokalen Computer anzugeben, geben Sie den Computernamen oder localhosteinen Punkt (.) ein. Wenn sich der Remotecomputer in einer anderen Domäne als der Benutzer befindet, ist der vollqualifizierte Domänenname erforderlich. Sie können auch einen Computernamen in Anführungszeichen an New-PSWorkflowSessiondie .

Um eine IP-Adresse im Wert des ComputersName-Parameters zu verwenden, muss der Befehl den Parameter "Credential " enthalten. Außerdem muss der Computer für den HTTPS-Transport konfiguriert sein, oder die IP-Adresse des Remotecomputers muss in der WinRM TrustedHosts-Liste auf dem lokalen Computer enthalten sein. Anweisungen zum Hinzufügen eines Computernamens zur Liste "TrustedHosts" finden Sie unter "Hinzufügen eines Computers zur vertrauenswürdigen Hostliste" in about_Remote_Troubleshooting.

Type:String[]
Aliases:Cn
Position:0
Default value:Local computer
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Credential

Gibt ein Benutzerkonto an, das über die Berechtigung zum Ausführen dieser Aktion verfügt. Der Standardwert ist der aktuelle Benutzer. Geben Sie einen Benutzernamen ein, zUser01. B. , Domain01\User01oder User@Domain.comgeben Sie ein PSCredential-Objekt ein, z. B. einen benutzernamen, der Get-Credential vom Cmdlet zurückgegeben wird.

Wenn Sie einen Benutzernamen eingeben, werden Sie von diesem Cmdlet aufgefordert, ein Kennwort einzugeben.

Type:Object
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EnableNetworkAccess

Gibt an, dass mit diesem Cmdlet ein interaktives Sicherheitstoken zu Loopbacksitzungen hinzugefügt wird. Mit dem interaktiven Token können Sie die Befehle in der Loopbacksitzung ausführen, um Daten von anderen Computern abzurufen. Beispielsweise können Sie einen Befehl in der Sitzung ausführen, mit dem XML-Dateien von einem Remotecomputer auf den lokalen Computer kopiert werden.

Eine Loopbacksitzung ist eine PSSession , die auf demselben Computer stammt und endet. Wenn Sie eine Loopbacksitzung erstellen möchten, geben Sie nicht den ComputerName-Parameter an, oder legen Sie dessen Wert auf Punkt (.), localhostoder den Namen des lokalen Computers fest.

Standardmäßig werden Loopbacksitzungen erstellt, die über ein Netzwerktoken verfügen, das möglicherweise nicht über ausreichende Berechtigungen für die Authentifizierung bei Remotecomputern verfügt.

Der Parameter EnableNetworkAccess ist nur in Loopbacksitzungen wirksam. Wenn Sie den Parameter EnableNetworkAccess angeben, wenn Sie eine Sitzung auf einem Remotecomputer erstellen, wird der Befehl erfolgreich ausgeführt, der Parameter wird jedoch ignoriert.

Sie können den Remotezugriff auch in einer Loopbacksitzung zulassen, indem Sie den CredSSP-Wert des Authentifizierungsparameters verwenden, der die Sitzungsanmeldeinformationen an andere Computer delegiert.

Um den Computer vor böswilligem Zugriff zu schützen, können getrennte Loopbacksitzungen mit interaktiven Token, die mit dem Parameter EnableNetworkAccess erstellt wurden, nur von dem Computer erneut verbunden werden, auf dem die Sitzung erstellt wurde. Die Verbindung von getrennten Sitzungen, die die CredSSP-Authentifizierung verwenden, kann von anderen Computern wiederhergestellt werden. Weitere Informationen finden Sie im Disconnect-PSSession Cmdlet.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Gibt einen Anzeigenamen für die Workflowsitzung an. Sie können den Namen mit anderen Cmdlets verwenden, z Get-PSSession . B. und Enter-PSSession. Der Name muss für den Computer oder die aktuelle Sitzung nicht eindeutig sein.

Type:String[]
Position:Named
Default value:Session#
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Port

Gibt den Netzwerkport an dem für diese Verbindung verwendeten Remotecomputer an. Zum Herstellen einer Verbindung mit einem Remotecomputer muss der Remotecomputer den für die Verbindung verwendeten Port abhören. Die Standardports sind 5985 (WinRM-Port für HTTP) und 5986 (WinRM-Port für HTTPS).

Bevor Sie einen anderen Port verwenden, müssen Sie den WinRM-Listener auf dem Remotecomputer so konfigurieren, dass er an diesem Port lauscht. Verwenden Sie die folgenden Befehle, um den Listener zu konfigurieren:

winrm delete winrm/config/listener?Address=*+Transport=HTTP

winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}

Verwenden Sie den Port-Parameter nicht, es sei denn, Sie müssen. Die Porteinstellung im Befehl gilt für alle Computer oder Sitzungen, für die der Befehl ausgeführt wird. Eine alternative Porteinstellung kann verhindern, dass der Befehl auf allen Computern ausgeführt wird.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionOption

Gibt erweiterte Optionen für die Sitzung an. Geben Sie ein SessionOption-Objekt ein, z. B. ein Objekt, das Sie mithilfe des New-PSSessionOption Cmdlets erstellen.

Die Standardwerte für die Optionen werden durch den Wert der $PSSessionOption Einstellungsvariablen bestimmt, wenn sie festgelegt ist. Andernfalls werden die Standardwerte durch Optionen festgelegt, die in der Sitzungskonfiguration festgelegt sind.

Die Sitzungsoptionswerte haben Vorrang vor Standardwerten für Sitzungen, die in der $PSSessionOption Einstellungsvariable und in der Sitzungskonfiguration festgelegt sind. Allerdings haben sie nicht Vorrang vor Höchstwerten, Kontingenten oder Grenzwerten, die in der Sitzungskonfiguration festgelegt sind. Weitere Informationen zu Sitzungskonfigurationen finden Sie unter about_Session_Configurations.

Eine Beschreibung der Sitzungsoptionen, einschließlich der Standardwerte, finden Sie unter New-PSSessionOption. Informationen zur Einstellungsvariablen $PSSessionOption finden Sie unter about_Preference_Variables.

Type:PSSessionOption
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ThrottleLimit

Gibt die maximale Anzahl von gleichzeitigen Verbindungen an, die zum Ausführen dieses Befehls hergestellt werden können. Wenn Sie diesen Parameter weglassen oder einen Wert von 0 (Null) eingeben, wird der Standardwert für die Microsoft.PowerShellWorkflow-Sitzungskonfiguration100verwendet.

Die Drosselungsgrenze gilt nur für den aktuellen Befehl und nicht für die Sitzung oder den Computer.

Type:Int32
Position:Named
Default value:100
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseSSL

Gibt an, dass dieses Cmdlet das SSL-Protokoll (Secure Sockets Layer) verwendet, um eine Verbindung mit dem Remotecomputer herzustellen. Standardmäßig wird SSL nicht verwendet.

WS-Management verschlüsselt alle Windows PowerShell-Inhalte, die über das Netzwerk übertragen werden. Der UseSSL-Parameter ist ein zusätzlicher Schutz, der die Daten über eine HTTPS-Verbindung statt über eine HTTP-Verbindung sendet.

Wenn Sie diesen Parameter angeben, SSL jedoch nicht für den Port verfügbar ist, der für den Befehl verwendet wird, schlägt der Befehl fehl.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

PSSession

Sie können eine Sitzung an dieses Cmdlet weiterleiten.

String

Sie können einen Computernamen an dieses Cmdlet weiterleiten.

Ausgaben

PSSession

Hinweise

Windows PowerShell enthält die folgenden Aliase für New-PSWorkflowSession:

  • nwsn

Ein New-PSWorkflowSession Befehl entspricht dem folgenden Befehl:

New-PSSession -ConfigurationName Microsoft.PowerShell.Workflow