New-PSWorkflowSession
Crea una sessione del flusso di lavoro.
Sintassi
New-PSWorkflowSession
[[-ComputerName] <String[]>]
[-Credential <Object>]
[-Name <String[]>]
[-Port <Int32>]
[-UseSSL]
[-ApplicationName <String>]
[-ThrottleLimit <Int32>]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-EnableNetworkAccess]
[<CommonParameters>]
Descrizione
Il New-PSWorkflowSession
cmdlet crea una sessione gestita dall'utente (PSSession) progettata appositamente per l'esecuzione di flussi di lavoro di Windows PowerShell. Usa la configurazione della sessione Microsoft.PowerShell.Workflow , che include script, file di tipo e formattazione e opzioni necessari per i flussi di lavoro.
È possibile usare New-PSWorkflowSession
o il relativo alias, nwsn
.
È anche possibile aggiungere parametri comuni del flusso di lavoro a questo comando. Per altre informazioni sui parametri comuni del flusso di lavoro, vedere about_WorkflowCommonParameters
Questo cmdlet è stato introdotto in Windows PowerShell 3.0.
Esempio
Esempio 1: Creare una sessione del flusso di lavoro in un computer remoto
In questo esempio viene creata la sessione WorkflowTests nel computer remoto ServerNode01.
$params = @{
ComputerName = "ServerNode01"
Name = "WorkflowTests"
SessionOption = (New-PSSessionOption -OutputBufferingMode Drop)
}
New-PSWorkflowSession @params
Il valore del parametro SessionOption è un New-PSSessionOption
comando che imposta la modalità di buffering di output nella sessione su Drop.
Esempio 2: Creare sessioni del flusso di lavoro in più computer remoti
In questo esempio vengono create sessioni del flusso di lavoro nei computer ServerNode01 e Server12. Il comando usa il parametro Credential per l'esecuzione con le autorizzazioni dell'amministratore di dominio.
"ServerNode01", "Server12" |
New-PSWorkflowSession -Name WorkflowSession -Credential Domain01\Admin01 -ThrottleLimit 150
Il comando usa il parametro ThrottleLimit per aumentare il limite di limitazione per ogni comando a 150
. Questo valore ha la precedenza sul limite di limitazione predefinito impostato 100
nella configurazione della sessione Microsoft.PowerShell.Workflow .
Parametri
-ApplicationName
Specifica il segmento dell'URI di connessione corrispondente al nome dell'applicazione.
Il valore predefinito è il valore della variabile di $PSSessionApplicationName
preferenza nel computer locale. Se questa variabile di preferenza non è definita, il valore predefinito è WSMAN. Questo valore è appropriato per la maggior parte degli utilizzi. Per altre informazioni, vedere about_Preference_Variables.
Il servizio Gestione remota Windows usa il nome dell'applicazione per selezionare un listener per soddisfare la richiesta di connessione. Il valore di questo parametro deve corrispondere al valore della proprietà URLPrefix di un listener nel computer remoto.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Authentication
Specifica il meccanismo utilizzato per autenticare le credenziali utente. I valori validi per questo parametro sono:
Default
Basic
Credssp
Digest
Kerberos
Negotiate
NegotiateWithImplicitCredential
Il valore predefinito è Default
.
L'autenticazione CredSSP è disponibile solo in Windows Vista, Windows Server 2008 e versioni successive del sistema operativo Windows.
Per altre informazioni sui valori di questo parametro, vedere AuthenticationMechanism Enumeration.
Attenzione
L'autenticazione CredSSP (Credential Security Service Provider), in cui le credenziali utente vengono passate a un computer remoto da autenticare, è progettato per i comandi che richiedono l'autenticazione su più di una risorsa, ad esempio l'accesso a una condivisione di rete remota. Questo meccanismo aumenta il rischio per la sicurezza dell'operazione remota. Se infatti il computer remoto viene compromesso, le credenziali che gli vengono passate possono essere usate per controllare la sessione di rete.
Tipo: | AuthenticationMechanism |
Valori accettati: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Posizione: | Named |
Valore predefinito: | Default |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-CertificateThumbprint
Specifica il certificato di chiave pubblica digitale (X509) di un account utente con autorizzazione per l'esecuzione di questa azione. Immettere l'identificazione personale del certificato.
I certificati vengono usati nell'autenticazione basata sui certificati client. Possono essere mappati solo ad account utente locali. Non funzionano con gli account di dominio.
Per ottenere un'identificazione personale del certificato, usare il Get-Item
cmdlet o il Get-ChildItem
cmdlet nell'unità di Windows PowerShell Cert:
.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-ComputerName
Crea una connessione permanente (PSSession) al computer specificato. Se si immettono più nomi di computer, Windows PowerShell crea più sessioni PSSession, una per ogni computer. Il valore predefinito è il computer locale.
Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo di uno o più computer remoti. Per specificare il computer locale, digitare il nome del computer, localhost
o un punto (.
). Quando il computer è in un dominio diverso rispetto all'utente, il nome di dominio completo è obbligatorio.
È anche possibile inviare tramite pipe un nome computer tra virgolette a New-PSWorkflowSession
.
Per usare un indirizzo IP nel valore del parametro ComputerName , il comando deve includere il parametro Credential . Inoltre, il computer deve essere configurato per il trasporto HTTPS o l'indirizzo IP del computer remoto deve essere incluso nell'elenco TrustedHosts di Gestione remota Windows nel computer locale. Per istruzioni sull'aggiunta di un nome computer all'elenco TrustedHosts, vedere "Come aggiungere un computer all'elenco host attendibile" in about_Remote_Troubleshooting.
Tipo: | String[] |
Alias: | Cn |
Posizione: | 0 |
Valore predefinito: | Local computer |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Credential
Specifica un account utente che dispone delle autorizzazioni per eseguire questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio User01
, Domain01\User01
o User@Domain.com
o immettere un oggetto PSCredential , ad esempio quello restituito dal Get-Credential
cmdlet .
Quando si digita un nome utente, questo cmdlet richiede una password.
Tipo: | Object |
Posizione: | Named |
Valore predefinito: | Current user |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-EnableNetworkAccess
Indica che questo cmdlet aggiunge un token di sicurezza interattivo alle sessioni di loopback. Il token interattivo consente di eseguire comandi nella sessione di loopback che ottengono dati da altri computer. Ad esempio, è possibile eseguire un comando nella sessione che copia file XML da un computer remoto al computer locale.
Una sessione di loopback è una sessione PSSession che ha origine e termina nello stesso computer. Per creare una sessione di loopback, non specificare il parametro ComputerName o impostarne il valore su dot (.
), localhost
o il nome del computer locale.
Per impostazione predefinita, le sessioni di loopback vengono create con un token di rete, che potrebbe non fornire autorizzazioni sufficienti per l'autenticazione nei computer remoti.
Il parametro EnableNetworkAccess è efficace solo nelle sessioni di loopback. Se si specifica il parametro EnableNetworkAccess quando si crea una sessione in un computer remoto, il comando ha esito positivo, ma il parametro viene ignorato.
È anche possibile consentire l'accesso remoto in una sessione di loopback usando il valore CredSSP del parametro Authentication , che delega le credenziali di sessione ad altri computer.
Per proteggere il computer da accessi dannosi, le sessioni di loopback disconnesse con token interattivi, quelle create tramite il parametro EnableNetworkAccess , possono essere riconnesse solo dal computer in cui è stata creata la sessione. Le sessioni disconnesse che usano l'autenticazione CredSSP possono essere riconnesse da altri computer. Per altre informazioni, vedere il Disconnect-PSSession
cmdlet .
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Name
Specifica un nome descrittivo per la sessione del flusso di lavoro. È possibile usare il nome con altri cmdlet, ad esempio Get-PSSession
e Enter-PSSession
. Il nome non deve essere univoco per il computer o la sessione corrente.
Tipo: | String[] |
Posizione: | Named |
Valore predefinito: | Session# |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Port
Specifica la porta di rete nel computer remoto utilizzata per questa connessione. Per connettersi a un computer remoto, è necessario che il computer remoto sia in attesa sulla porta usata dalla connessione. Le porte predefinite sono 5985
(porta WinRM per HTTP) e 5986
(porta WinRM per HTTPS).
Prima di usare un'altra porta, è necessario configurare il listener WinRM nel computer remoto per l'ascolto su tale porta. Usare i comandi seguenti per configurare il listener:
winrm delete winrm/config/listener?Address=*+Transport=HTTP
winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}
Non usare il parametro Port a meno che non sia necessario. L'impostazione della porta nel comando si applica a tutti i computer o tutte le sessioni in cui viene eseguito il comando. Un'impostazione di porta alternativa potrebbe impedire l'esecuzione del comando in tutti i computer.
Tipo: | Int32 |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-SessionOption
Specifica le opzioni avanzate per la sessione. Immettere un oggetto SessionOption , ad esempio quello creato usando il New-PSSessionOption
cmdlet .
I valori predefiniti per le opzioni sono determinati dal valore della variabile di $PSSessionOption
preferenza, se impostato. In caso contrario, i valori predefiniti vengono stabiliti dalle opzioni impostate nella configurazione di sessione.
I valori delle opzioni di sessione hanno la precedenza sui valori predefiniti per le sessioni impostate nella $PSSessionOption
variabile di preferenza e nella configurazione della sessione. Non hanno tuttavia la precedenza sui valori, sulle quote o sui limiti massimi impostati nella configurazione di sessione. Per altre informazioni sulle configurazioni di sessione, vedere about_Session_Configurations.
Per una descrizione delle opzioni di sessione, inclusi i valori predefiniti, vedere New-PSSessionOption
.
Per informazioni sulla $PSSessionOption
variabile di preferenza, vedere about_Preference_Variables.
Tipo: | PSSessionOption |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-ThrottleLimit
Specifica il numero massimo di connessioni simultanee che è possibile stabilire per eseguire il comando.
Se si omette questo parametro o si immette un valore pari 0
a (zero), viene usato il valore predefinito per la configurazione della sessione Microsoft.PowerShellWorkflow. 100
Questo valore limite si applica solo al comando corrente, non alla sessione o al computer.
Tipo: | Int32 |
Posizione: | Named |
Valore predefinito: | 100 |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-UseSSL
Indica che questo cmdlet usa il protocollo SSL (Secure Sockets Layer) per stabilire una connessione al computer remoto. Per impostazione predefinita SSL non viene utilizzato.
WS-Management crittografa tutto il contenuto di Windows PowerShell trasmesso in rete. Il parametro UseSSL è una protezione aggiuntiva che invia i dati attraverso una connessione HTTPS anziché una connessione HTTP.
Se si specifica questo parametro, ma SSL non è disponibile sulla porta usata per il comando, il comando ha esito negativo.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe una sessione a questo cmdlet.
È possibile inviare tramite pipe un nome computer a questo cmdlet.
Output
Note
Windows PowerShell include gli alias seguenti per New-PSWorkflowSession
:
nwsn
Un New-PSWorkflowSession
comando equivale al comando seguente:
New-PSSession -ConfigurationName Microsoft.PowerShell.Workflow