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, localhosto 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\User01o User@Domain.como 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 (.), localhosto 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

PSSession

È possibile inviare tramite pipe una sessione a questo cmdlet.

String

È possibile inviare tramite pipe un nome computer a questo cmdlet.

Output

PSSession

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