Condividi tramite


New-PSWorkflowSession

Crea una sessione del flusso di lavoro.

Sintassi

Default (Impostazione predefinita)

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 cmdlet New-PSWorkflowSession 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 di WorkflowTests nel computer remoto ServerNode01.

$params = @{
    ComputerName = "ServerNode01"
    Name = "WorkflowTests"
    SessionOption = (New-PSSessionOption -OutputBufferingMode Drop)
}
New-PSWorkflowSession @params

Il valore del parametro SessionOption è un comando New-PSSessionOption 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 credenziali 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 comando a 150. Questo valore ha la precedenza sul limite di limitazione predefinito di 100 impostato nella configurazione di 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 usi. Per altre informazioni, vedere about_Preference_Variables.

Il servizio WinRM usa il nome dell'applicazione per selezionare un listener per gestire la richiesta di connessione. Il valore di questo parametro deve corrispondere al valore della proprietà URLPrefix di un listener nel computer remoto.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-Authentication

Specifica il meccanismo utilizzato per autenticare le credenziali utente. I valori accettabili 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 ulteriori informazioni sui valori di questo parametro, consultare Enumerazione del Meccanismo di Autenticazione.

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 di sicurezza dell'operazione remota. Se il computer remoto viene compromesso, è possibile usare le credenziali passate per controllare la sessione di rete.

Proprietà dei parametri

Tipo:AuthenticationMechanism
Valore predefinito:Default
Valori accettati:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-CertificateThumbprint

Specifica il certificato di chiave pubblica digitale (X509) di un account utente che dispone dell'autorizzazione per eseguire questa azione. Immettere l'impronta digitale del certificato.

I certificati vengono usati nell'autenticazione basata su certificati client. Possono essere mappati solo agli account utente locali; non funzionano con gli account di dominio.

Per ottenere un'identificazione personale del certificato, usare il cmdlet Get-Item o il cmdlet Get-ChildItem nell'unità Cert: di Windows PowerShell.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-ComputerName

Crea una connessione permanente (PSSession) al computer specificato. Se si immettono più nomi di computer, Windows PowerShell crea più PSSessions, uno 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 si trova in un dominio diverso dall'utente, è necessario il nome di dominio completo. È 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 WinRM 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.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:Local computer
Supporta i caratteri jolly:False
DontShow:False
Alias:CN

Set di parametri

(All)
Posizione:0
Obbligatorio:False
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-Credential

Specifica un account utente autorizzato a eseguire questa azione. Il valore predefinito è l'utente corrente. Digitare un nome utente, ad esempio User01, Domain01\User01o User@Domain.comoppure immettere un oggetto PSCredential, ad esempio quello restituito dal cmdlet Get-Credential.

Quando si digita un nome utente, questo cmdlet richiede una password.

Proprietà dei parametri

Tipo:Object
Valore predefinito:Current user
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti: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 recuperano dati da altri computer. Ad esempio, è possibile eseguire un comando nella sessione che copia i 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 NomeComputer 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 usando 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 cmdlet Disconnect-PSSession.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:Session#
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Port

Specifica la porta di rete nel computer remoto utilizzato per questa connessione. Per connettersi a un computer remoto, il computer remoto deve essere in ascolto 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 porta a meno che non sia necessario. L'impostazione della porta nel comando si applica a tutti i computer o le sessioni in cui viene eseguito il comando. Un'impostazione di porta alternativa potrebbe impedire l'esecuzione del comando in tutti i computer.

Proprietà dei parametri

Tipo:Int32
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-SessionOption

Specifica le opzioni avanzate per la sessione. Immettere un oggetto SessionOption, ad esempio quello creato usando il cmdlet New-PSSessionOption.

I valori predefiniti per le opzioni sono determinati dal valore della variabile di preferenza $PSSessionOption, se impostata. In caso contrario, i valori predefiniti vengono stabiliti dalle opzioni impostate nella configurazione della 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. Tuttavia, non hanno la precedenza sui valori massimi, sulle quote o sui limiti impostati nella configurazione della 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.

Proprietà dei parametri

Tipo:PSSessionOption
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-ThrottleLimit

Specifica il numero massimo di connessioni simultanee che è possibile stabilire per eseguire questo comando. Se si omette questo parametro o si immette un valore pari a 0 (zero), viene usato il valore predefinito per il configurazione di sessione Microsoft.PowerShellWorkflow, 100.

Il limite di limitazione si applica solo al comando corrente, non alla sessione o al computer.

Proprietà dei parametri

Tipo:Int32
Valore predefinito:100
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 usato.

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.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

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 comando New-PSWorkflowSession equivale al comando seguente:

New-PSSession -ConfigurationName Microsoft.PowerShell.Workflow