Freigeben über


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 cmdlet New-PSWorkflowSession 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 und Optionen umfasst, die für Workflows erforderlich sind.

Sie können New-PSWorkflowSession oder ihren Alias nwsnverwenden.

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 ServerNode01-Remotecomputer 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 Dropfestlegt.

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 Domänenadministrators auszuführen.

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

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

Parameter

-ApplicationName

Gibt das Anwendungsnamensegment 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 Verwendungen geeignet. Weitere Informationen finden Sie unter about_Preference_Variables.

Der WinRM-Dienst verwendet den Anwendungsnamen, um einen Listener zum Dienst der Verbindungsanforderung auszuwählen. Der Wert dieses Parameters sollte mit dem Wert der URLPrefix Eigenschaft eines Listeners auf dem Remotecomputer übereinstimmen.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Authentication

Gibt den Mechanismus an, der zum Authentifizieren der Benutzeranmeldeinformationen verwendet wird. Die zulässigen Werte für diesen Parameter sind:

  • 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.

Vorsicht

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 der Remotecomputer kompromittiert ist, können die an ihn übergebenen Anmeldeinformationen zum Steuern der Netzwerksitzung verwendet werden.

Typ:AuthenticationMechanism
Zulässige Werte:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Standardwert:Default
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-CertificateThumbprint

Gibt das Zertifikat für den digitalen öffentlichen 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 in der zertifikatbasierten Clientauthentifizierung verwendet. Sie können nur lokalen Benutzerkonten zugeordnet werden; sie funktionieren nicht mit Domänenkonten.

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

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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. Der Standardwert ist der lokale Computer.

Geben Sie den NetBIOS-Namen, eine IP-Adresse oder einen vollqualifizierten Domänennamen eines oder mehrerer Remotecomputer ein. Um den lokalen Computer anzugeben, geben Sie den Computernamen, localhostoder einen Punkt (.) ein. Wenn sich der Computer 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-PSWorkflowSessionweitergeleitet werden.

Um eine IP-Adresse im Wert des ComputerName Parameters zu verwenden, muss der Befehl den parameter Credential enthalten. Außerdem muss der Computer für den HTTPS-Transport oder die IP-Adresse des Remotecomputers in der WinRM TrustedHosts-Liste auf dem lokalen Computer enthalten sein. Anweisungen zum Hinzufügen eines Computernamens zur Liste "TrustedHosts" finden Sie unter "How to Add a Computer to the Trusted Host List" in about_Remote_Troubleshooting.

Typ:String[]
Aliase:Cn
Position:0
Standardwert:Local computer
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Credential

Gibt ein Benutzerkonto an, das über die Berechtigung zum Ausführen dieser Aktion verfügt. Die Standardeinstellung ist der aktuelle Benutzer. Geben Sie einen Benutzernamen ein, z. B. User01, Domain01\User01oder User@Domain.com, oder geben Sie ein PSCredential--Objekt ein, z. B. ein objekt, das vom Cmdlet Get-Credential zurückgegeben wird.

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

Typ:Object
Position:Named
Standardwert:Current user
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-EnableNetworkAccess

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

Eine Loopbacksitzung ist eine PSSession-, die auf demselben Computer stammt und endet. Um eine Loopbacksitzung zu erstellen, geben Sie nicht den ComputerName Parameter an, oder legen Sie den 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 EnableNetworkAccess Parameter 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 Authentication-Parameters verwenden, der die Sitzungsanmeldeinformationen an andere Computer delegiert.

Um den Computer vor böswilligem Zugriff zu schützen, können getrennte Loopbacksitzungen, die über interaktive Token verfügen, die mit dem parameter EnableNetworkAccess erstellt wurden, nur von dem Computer erneut verbunden werden, auf dem die Sitzung erstellt wurde. Getrennte Sitzungen, die die CredSSP-Authentifizierung verwenden, können von anderen Computern erneut verbunden werden. Weitere Informationen finden Sie im Cmdlet Disconnect-PSSession.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Name

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

Typ:String[]
Position:Named
Standardwert:Session#
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Port

Gibt den Netzwerkport auf dem Remotecomputer an, der für diese Verbindung verwendet wird. Um eine Verbindung mit einem Remotecomputer herzustellen, muss der Remotecomputer auf dem von der Verbindung genutzten Port lauschen. 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 nicht den Parameter Port, es sei denn, Sie müssen. Die Porteinstellung im Befehl gilt für alle Computer oder Sitzungen, auf denen der Befehl ausgeführt wird. Eine alternative Porteinstellung kann verhindern, dass der Befehl auf allen Computern ausgeführt wird.

Typ:Int32
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-SessionOption

Gibt erweiterte Optionen für die Sitzung an. Geben Sie ein SessionOption--Objekt ein, z. B. ein Objekt, das Sie mithilfe des Cmdlets New-PSSessionOption 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 einstellungsvariablen $PSSessionOption und in der Sitzungskonfiguration festgelegt sind. Sie haben jedoch keine Vorrang vor maximalen Werten, 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 $PSSessionOption Einstellungsvariablen finden Sie unter about_Preference_Variables.

Typ:PSSessionOption
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ThrottleLimit

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

Der Drosselungsgrenzwert gilt nur für den aktuellen Befehl, nicht für die Sitzung oder den Computer.

Typ:Int32
Position:Named
Standardwert:100
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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 über das Netzwerk übertragenen Windows PowerShell-Inhalte. Der UseSSL--Parameter ist ein zusätzlicher Schutz, der die Daten über eine HTTPS-Verbindung anstatt ü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.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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