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
Hinweise
Ein New-PSWorkflowSession
Befehl entspricht dem folgenden Befehl:
New-PSSession -ConfigurationName Microsoft.PowerShell.Workflow