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 nwsn
verwendenNew-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 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 zu 150
erhö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.
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. 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.
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 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:
.
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. 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 localhost
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 New-PSWorkflowSession
die .
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.
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. Der Standardwert ist der aktuelle Benutzer. Geben Sie einen Benutzernamen ein, zUser01
. B. , Domain01\User01
oder User@Domain.com
geben 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.
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 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 (.
), localhost
oder 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.
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 verwenden, z Get-PSSession
. B. und Enter-PSSession
. Der Name muss für den Computer oder die aktuelle Sitzung nicht eindeutig sein.
Typ: | String[] |
Position: | Named |
Standardwert: | Session# |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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.
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 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.
Typ: | PSSessionOption |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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-Sitzungskonfiguration 100
verwendet.
Die Drosselungsgrenze gilt nur für den aktuellen Befehl und 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 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.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können eine Sitzung an dieses Cmdlet weiterleiten.
Sie können einen Computernamen an dieses Cmdlet weiterleiten.
Ausgaben
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