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

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

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: Create 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: Create Workflowsitzungen auf mehreren Remotecomputern

In diesem Beispiel werden Workflowsitzungen auf den Computern ServerNode01 und Server12 erstellt. Der Befehl verwendet den Credential-Parameter zur Ausführung mit den Berechtigungen des Domänenadministrators.

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

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

Parameter

-ApplicationName

Gibt das Anwendungsnamenssegment des Verbindungs-URI an.

Der Standardwert ist der Wert der $PSSessionApplicationName Einstellungsvariablen 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:

  • Standard
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Aushandeln
  • NegotiateWithImplicitCredential

Der Standardwert ist Default.

Die 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

Die CredSSP-Authentifizierung (Credential Security Service Provider), bei der die Benutzeranmeldeinformationen an einen Remotecomputer übergeben werden, um authentifiziert zu werden, ist für Befehle konzipiert, die eine Authentifizierung für mehr als eine Ressource 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 laufwerk Windows PowerShell Cert: .

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

-ComputerName

Erstellt eine permanente 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, localhost oder einen 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 übergeben New-PSWorkflowSession.

Um eine IP-Adresse im Wert des ComputerName-Parameters zu verwenden, muss der Befehl den Credential-Parameter 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 Liste vertrauenswürdiger Hosts 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, z. B. User01, Domain01\User01 oder , oder User@Domain.comgeben Sie ein PSCredential-Objekt ein, z. B. ein vom Get-Credential Cmdlet zurückgegebenes Objekt.

Wenn Sie einen Benutzernamen eingeben, werden Sie von diesem Cmdlet zur Eingabe eines Kennworts aufgefordert.

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

-EnableNetworkAccess

Gibt an, dass dieses Cmdlet Loopbacksitzungen ein interaktives Sicherheitstoken hinzufügt. 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 entsteht und endet. Um eine Loopbacksitzung zu erstellen, geben Sie nicht den ComputerName-Parameter an, und legen Sie seinen Wert nicht auf dot, localhost oder den Namen des lokalen Computers fest.

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

Der EnableNetworkAccess-Parameter ist nur bei Loopbacksitzungen wirksam. Wenn Sie beim Erstellen einer Sitzung auf einem Remotecomputer den Parameter EnableNetworkAccess angeben, ist der Befehl erfolgreich, aber der Parameter wird ignoriert.

Sie können auch Remotezugriff in einer Loopbacksitzung erlauben, indem Sie den CredSSP-Wert des Authentication-Parameters verwenden, der die Anmeldeinformationen für die Sitzung an andere Computer delegiert.

Um den Computer vor böswilligem Zugriff zu schützen, können getrennte Loopbacksitzungen mit interaktiven Token, die mithilfe des EnableNetworkAccess-Parameters erstellt wurden, nur von dem Computer wiederhergestellt 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 unter 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 nur, wenn es unbedingt notwendig ist. 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 mit dem New-PSSessionOption Cmdlet erstellen.

Die Standardwerte für die Optionen werden durch den Wert der $PSSessionOption Einstellungsvariablen bestimmt, sofern 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. 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 den Wert 0 (null) eingeben, wird der Standardwert für die Microsoft.PowerShellWorkflow-Sitzungskonfiguration 100 verwendet.

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 anstelle einer HTTP-Verbindung sendet.

Wenn Sie diesen Parameter angeben, ssl jedoch nicht auf dem 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

System.Management.Automation.Runspaces.PSSession[], System.String

Sie können eine Sitzung oder einen Computernamen an dieses Cmdlet übergeben.

Ausgaben

PSSession

Hinweise

Ein New-PSWorkflowSession Befehl entspricht dem folgenden Befehl:

New-PSSession -ConfigurationName Microsoft.PowerShell.Workflow