Receive-PSSession
Ottiene i risultati dei comandi nelle sessioni disconnesse
Sintassi
Session (Impostazione predefinita)
Receive-PSSession
[-Session] <PSSession>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Id
Receive-PSSession
[-Id] <Int32>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ComputerSessionName
Receive-PSSession
[-ComputerName] <String>
-Name <String>
[-ApplicationName <String>]
[-ConfigurationName <String>]
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ComputerInstanceId
Receive-PSSession
[-ComputerName] <String>
-InstanceId <Guid>
[-ApplicationName <String>]
[-ConfigurationName <String>]
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ConnectionUriSessionName
Receive-PSSession
[-ConnectionUri] <Uri>
-Name <String>
[-ConfigurationName <String>]
[-AllowRedirection]
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ConnectionUriInstanceId
Receive-PSSession
[-ConnectionUri] <Uri>
-InstanceId <Guid>
[-ConfigurationName <String>]
[-AllowRedirection]
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceId
Receive-PSSession
-InstanceId <Guid>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
SessionName
Receive-PSSession
-Name <String>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Questo cmdlet è disponibile solo nella piattaforma Windows.
Il Receive-PSSession cmdlet ottiene i risultati dei comandi in esecuzione nelle sessioni di PowerShell (PSSession) disconnesse. Se la sessione è attualmente connessa, Receive-PSSession ottiene i risultati dei comandi in esecuzione quando la sessione è stata disconnessa. Se la sessione è ancora disconnessa, Receive-PSSession si connette alla sessione, riprende tutti i comandi sospesi e ottiene i risultati dei comandi in esecuzione nella sessione.
Questo cmdlet è stato introdotto in PowerShell 3.0.
È possibile usare un oggetto Receive-PSSession oltre a o invece di un Connect-PSSession comando.
Receive-PSSession può connettersi a qualsiasi sessione disconnessa o riconnessa avviata in altre sessioni o in altri computer.
Receive-PSSessionfunziona sulle sessioni PSSession disconnesse intenzionalmente usando il Disconnect-PSSession cmdlet o il Invoke-Command parametro InDisconnectedSession. O disconnesso involontariamente da un'interruzione di rete.
Se si usa il Receive-PSSession cmdlet per connettersi a una sessione in cui non sono in esecuzione o sospesi comandi, Receive-PSSession si connette alla sessione, ma non restituisce alcun output o errori.
Per altre informazioni sulla funzionalità Sessioni disconnesse, vedere about_Remote_Disconnected_Sessions.
Alcuni esempi usano lo splatting per ridurre la lunghezza della linea e migliorare la leggibilità. Per ulteriori informazioni, vedere about_Splatting.
Esempio
Esempio 1: Connettersi a una sessione PSSession
Questo esempio si connette a una sessione in un computer remoto e ottiene i risultati dei comandi in esecuzione in una sessione.
Receive-PSSession -ComputerName Server01 -Name ITTask
Specifica Receive-PSSession il computer remoto con il parametro ComputerName . Il parametro Name identifica la sessione ITTask nel computer Server01. L'esempio ottiene i risultati dei comandi in esecuzione nella sessione ITTask.
Poiché il comando non usa il parametro OutTarget , i risultati vengono visualizzati nella riga di comando.
Esempio 2: Ottenere i risultati di tutti i comandi nelle sessioni disconnesse
In questo esempio vengono ottenuti i risultati di tutti i comandi in esecuzione in tutte le sessioni disconnesse in due computer remoti.
Se una sessione non è stata disconnessa o non esegue comandi, Receive-PSSession non si connette alla sessione e non restituisce alcun output o errori.
Get-PSSession -ComputerName Server01, Server02 | Receive-PSSession
Get-PSSession utilizza il parametro ComputerName per specificare i computer remoti. Gli oggetti vengono inviati alla pipeline a Receive-PSSession.
Esempio 3: Ottenere i risultati di uno script in esecuzione in una sessione
In questo esempio viene usato il Receive-PSSession cmdlet per ottenere i risultati di uno script in esecuzione nella sessione di un computer remoto.
$parms = @{
ComputerName = "Server01"
Name = "ITTask"
OutTarget = "Job"
JobName = "ITTaskJob01"
Credential = "Domain01\Admin01"
}
Receive-PSSession @parms
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 ITTaskJob01 Running True Server01
Il comando utilizza i parametri ComputerName e Name per identificare la sessione disconnessa.
Usa il parametro OutTarget con un valore Job per indirizzare Receive-PSSession la restituzione dei risultati come processo. Il parametro JobName specifica un nome per il processo nella sessione riconnessa.
Il parametro Credential esegue il Receive-PSSession comando usando le autorizzazioni di un amministratore di dominio.
L'output mostra che Receive-PSSession ha restituito i risultati come processo nella sessione corrente. Per ottenere i risultati del processo, usare un Receive-Job comando
Esempio 4: Ottenere risultati dopo un'interruzione della rete
Questo esempio usa il Receive-PSSession cmdlet per ottenere i risultati di un processo dopo un'interruzione della rete interrompe una connessione di sessione. PowerShell tenta automaticamente di riconnettere la sessione una volta al secondo per i quattro minuti successivi e abbandona lo sforzo solo se tutti i tentativi nell'intervallo di quattro minuti hanno esito negativo.
PS> $s = New-PSSession -ComputerName Server01 -Name AD -ConfigurationName ADEndpoint
PS> $s
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
8 AD Server01 Opened ADEndpoint Available
PS> Invoke-Command -Session $s -FilePath \\Server12\Scripts\SharedScripts\New-ADResolve.ps1
Running "New-ADResolve.ps1"
# Network outage
# Restart local computer
# Network access is not re-established within 4 minutes
PS> Get-PSSession -ComputerName Server01
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Backup Server01 Disconnected Microsoft.PowerShell None
8 AD Server01 Disconnected ADEndpoint None
PS> Receive-PSSession -ComputerName Server01 -Name AD -OutTarget Job -JobName AD
Job Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 ADJob Running True Server01
PS> Get-PSSession -ComputerName Server01
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Backup Server01 Disconnected Microsoft.PowerShell Busy
8 AD Server01 Opened ADEndpoint Available
Il New-PSSession cmdlet crea una sessione nel computer Server01 e salva la sessione nella $s variabile . La $s variabile visualizza che lo stato è Aperto e la disponibilità è Disponibile. Questi valori indicano che si è connessi alla sessione ed è possibile eseguire i comandi nella sessione.
Il Invoke-Command cmdlet esegue uno script nella sessione nella $s variabile . Lo script inizia a eseguire e restituire i dati, ma si verifica un'interruzione della rete che interrompe la sessione. L'utente deve uscire dalla sessione e riavviare il computer locale.
Quando il computer viene riavviato, l'utente avvia PowerShell ed esegue un Get-PSSession comando per ottenere sessioni nel computer Server01. L'output mostra che la sessione di Active Directory esiste ancora nel computer Server01.
Lo stato indica che la sessione di Active Directory è disconnessa. Il valore Di disponibilità none indica che la sessione non è connessa ad alcuna sessione client.
Il Receive-PSSession cmdlet si riconnette alla sessione di Active Directory e ottiene i risultati dello script eseguito nella sessione. Il comando usa il parametro OutTarget per richiedere i risultati in un processo denominato ADJob. Il comando restituisce un oggetto processo e l'output indica che lo script è ancora in esecuzione.
Il Get-PSSession cmdlet viene usato per controllare lo stato del processo. L'output conferma che il Receive-PSSession cmdlet si riconnette alla sessione di ACTIVE Directory , che è ora aperta e disponibile per i comandi. E lo script ha ripreso l'esecuzione e sta ottenendo i risultati dello script.
Esempio 5: Riconnessione alle sessioni disconnesse
In questo esempio viene usato il Receive-PSSession cmdlet per riconnettersi alle sessioni disconnesse intenzionalmente e ottenere i risultati dei processi in esecuzione nelle sessioni.
PS> $parms = @{
InDisconnectedSession = $True
ComputerName = "Server01", "Server02", "Server30"
FilePath = "\\Server12\Scripts\SharedScripts\Get-BugStatus.ps1"
Name = "BugStatus"
SessionOption = @{IdleTimeout = 86400000}
ConfigurationName = "ITTasks"
}
PS> Invoke-Command @parms
PS> Exit
PS> $s = Get-PSSession -ComputerName Server01, Server02, Server30 -Name BugStatus
PS> $s
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 ITTask Server01 Disconnected ITTasks None
8 ITTask Server02 Disconnected ITTasks None
2 ITTask Server30 Disconnected ITTasks None
PS> $Results = Receive-PSSession -Session $s
PS> $s
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 ITTask Server01 Opened ITTasks Available
8 ITTask Server02 Opened ITTasks Available
2 ITTask Server30 Opened ITTasks Available
PS> $Results
Bug Report - Domain 01
----------------------
ComputerName BugCount LastUpdated
-------------- --------- ------------
Server01 121 Friday, December 30, 2011 5:03:34 PM
Il Invoke-Command cmdlet esegue uno script in tre computer remoti. Poiché lo script raccoglie e riepiloga i dati da più database, spesso richiede un tempo prolungato per il completamento dello script. Il comando usa il parametro InDisconnectedSession che avvia gli script e quindi disconnette immediatamente le sessioni. Il parametro SessionOption estende il valore IdleTimeout della sessione disconnessa. Le sessioni disconnesse vengono considerate inattive dal momento in cui sono disconnesse. È importante impostare il timeout di inattività per un periodo di tempo sufficiente in modo che i comandi possano essere completati ed è possibile riconnettersi alla sessione. È possibile impostare IdleTimeout solo quando si crea la sessione PSSession e modificarla solo quando si disconnette da esso. Non è possibile modificare il valore IdleTimeout quando ci si connette a una sessione PSSession o si ricevono i risultati. Dopo aver eseguito il comando, l'utente esce da PowerShell e chiude il computer.
Il giorno successivo, l'utente riprende Windows, avvia PowerShell e usa Get-PSSession per ottenere le sessioni in cui gli script erano in esecuzione. Il comando identifica le sessioni in base al nome del computer, al nome della sessione e al nome della configurazione della sessione e salva le sessioni nella $s variabile. Il valore della $s variabile viene visualizzato e mostra che le sessioni sono disconnesse, ma non sono occupate.
Il Receive-PSSession cmdlet si connette alle sessioni nella $s variabile e ottiene i risultati.
Il comando salva i risultati nella variabile $Results. La $s variabile viene visualizzata e mostra che le sessioni sono connesse e disponibili per i comandi.
I risultati dello $Results script nella variabile vengono visualizzati nella console di PowerShell. Se uno dei risultati è imprevisto, l'utente può eseguire comandi nelle sessioni per analizzare la causa radice.
Esempio 6: Esecuzione di un processo in una sessione disconnessa
Questo esempio mostra cosa accade a un processo in esecuzione in una sessione disconnessa.
PS> $s = New-PSSession -ComputerName Server01 -Name Test
PS> $j = Invoke-Command -Session $s { 1..1500 | Foreach-Object {"Return $_"; sleep 30}} -AsJob
PS> $j
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 Job1 Running True Server01
PS> $s | Disconnect-PSSession
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Test Server01 Disconnected Microsoft.PowerShell None
PS> $j
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 Job1 Disconnected True Server01
PS> Receive-Job $j -Keep
Return 1
Return 2
PS> $s2 = Connect-PSSession -ComputerName Server01 -Name Test
PS> $j2 = Receive-PSSession -ComputerName Server01 -Name Test
PS> Receive-Job $j
Return 3
Return 4
Il New-PSSession cmdlet crea la sessione test nel computer Server01. Il comando salva la sessione nella $s variabile .
Il Invoke-Command cmdlet esegue un comando nella sessione nella $s variabile . Il comando usa il parametro AsJob per eseguire il comando come processo e crea l'oggetto processo nella sessione corrente.
Il comando restituisce un oggetto processo salvato nella $j variabile . La $j variabile visualizza l'oggetto processo.
L'oggetto sessione nella $s variabile viene inviato nella pipeline a Disconnect-PSSession e la sessione viene disconnessa.
La $j variabile viene visualizzata e mostra l'effetto della disconnessione dell'oggetto processo nella $j variabile . Lo stato del processo è ora Disconnesso.
viene Receive-Job eseguito nel processo nella $j variabile . L'output mostra che il processo ha iniziato a restituire l'output prima della sessione e che il processo è stato disconnesso.
Il Connect-PSSession cmdlet viene eseguito nella stessa sessione client. Il comando si riconnette alla sessione di test nel computer Server01 e salva la sessione nella $s2 variabile .
Il Receive-PSSession cmdlet ottiene i risultati del processo in esecuzione nella sessione. Poiché il comando viene eseguito nella stessa sessione, Receive-PSSession restituisce i risultati come processo per impostazione predefinita e riutilizza lo stesso oggetto processo. Il comando salva il processo nella variabile $j2. Il Receive-Job cmdlet ottiene i risultati del processo nella $j variabile .
Parametri
-AllowRedirection
Indica che questo cmdlet consente il reindirizzamento di questa connessione a un URI (Uniform Resource Identifier) alternativo.
Quando si usa il parametro ConnectionURI, la destinazione remota può restituire un'istruzione per il reindirizzamento a un URI diverso. Per impostazione predefinita, PowerShell non reindirizza le connessioni, ma è possibile usare questo parametro per abilitarlo per reindirizzare la connessione.
È anche possibile limitare il numero di reindirizzamenti della connessione modificando il valore dell'opzione MaximumConnectionRedirectionCount sessione. Utilizzare il parametro MaximumRedirection del New-PSSessionOption cmdlet o impostare la proprietà MaximumConnectionRedirectionCount della $PSSessionOption variabile di preferenza. Il valore predefinito è 5.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ConnectionUriSessionName
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ConnectionUriInstanceId
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-ApplicationName
Specifica un'applicazione. Questo cmdlet si connette solo alle sessioni che utilizzano l'applicazione specificata.
Immettere il segmento del nome dell'applicazione dell'URI di connessione. Nell'URI di connessione seguente, ad esempio, WSMan è il nome dell'applicazione: http://localhost:5985/WSMAN.
Il nome dell'applicazione di una sessione viene archiviato nella proprietà Runspace.ConnectionInfo.AppName della sessione.
Il valore del parametro viene usato per selezionare e filtrare le sessioni. Non modifica l'applicazione usata dalla sessione.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ComputerInstanceId
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
ComputerSessionName
| 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 usato per autenticare le credenziali utente nel comando per riconnettersi a una sessione disconnessa. I valori accettabili per questo parametro sono:
- Impostazione predefinita
- Fondamentale
- Credssp
- Sommario
- Kerberos
- Negoziare
- NegotiateWithImplicitCredential
Il valore predefinito è Default.
Per ulteriori informazioni sui valori di questo parametro, consultare Enumerazione del Meccanismo di Autenticazione.
Attenzione
L'autenticazione CredSSP (Credential Security Support Provider), in cui le credenziali utente vengono passate a un computer remoto per l'autenticazione, è progettata per i comandi che richiedono l'autenticazione su più risorse, 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
ComputerInstanceId
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ComputerSessionName
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ConnectionUriSessionName
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ConnectionUriInstanceId
| 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 autorizzato a connettersi alla sessione disconnessa. Immettere l'impronta digitale del certificato.
I certificati vengono usati nell'autenticazione basata su certificati client. I certificati possono essere mappati solo agli account utente locali e non funzionano con gli account di dominio.
Per ottenere un'identificazione personale del certificato, usare un Get-Item comando o Get-ChildItem nell'unità di PowerShell Cert: .
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ComputerInstanceId
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ComputerSessionName
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ConnectionUriSessionName
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ConnectionUriInstanceId
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-ComputerName
Specifica il computer in cui è archiviata la sessione disconnessa. Le sessioni vengono archiviate nel computer sul lato server o che ricevono la fine di una connessione. Il valore predefinito è il computer locale.
Digitare il nome NetBIOS, un indirizzo IP o un nome di dominio completo (FQDN) di un computer.
I caratteri jolly non sono consentiti. Per specificare il computer locale, digitare il nome del computer, un punto (.), $env:COMPUTERNAMEo localhost.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | CN |
Set di parametri
ComputerInstanceId
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
ComputerSessionName
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-ConfigurationName
Specifica il nome di una configurazione di sessione. Questo cmdlet si connette solo alle sessioni che usano la configurazione di sessione specificata.
Immettere un nome di configurazione o l'URI completo della risorsa per una configurazione di sessione. Se si specifica solo il nome di configurazione, viene anteporto l'URI dello schema seguente:
http://schemas.microsoft.com/powershell.
Il nome di configurazione di una sessione viene archiviato nella proprietà ConfigurationName della sessione.
Il valore del parametro viene usato per selezionare e filtrare le sessioni. Non modifica la configurazione della sessione usata dalla sessione.
Per altre informazioni sulle configurazioni di sessione, vedere about_Session_Configurations.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ComputerInstanceId
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
ComputerSessionName
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
ConnectionUriSessionName
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
ConnectionUriInstanceId
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | cfr |
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 |
-ConnectionUri
Specifica un URI che definisce l'endpoint di connessione utilizzato per riconnettersi alla sessione disconnessa.
L'URI deve essere completo. Il formato della stringa è il seguente:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
Il valore predefinito è il seguente:
http://localhost:5985/WSMAN
Se non si specifica un URI di connessione, è possibile usare i parametri UseSSL, ComputerName, Port e ApplicationName per specificare i valori dell'URI di connessione.
I valori validi per il segmento Transport dell'URI sono HTTP e HTTPS. Se si specifica un URI di connessione con un segmento di trasporto, ma non si specifica una porta, la sessione viene creata con porte standard: 80 per HTTP e 443 per HTTPS. Per usare le porte predefinite per la comunicazione remota di PowerShell, specificare la porta 5985 per HTTP o 5986 per HTTPS.
Se il computer di destinazione reindirizza la connessione a un URI diverso, PowerShell impedisce il reindirizzamento a meno che non si usi il parametro AllowRedirection nel comando .
Proprietà dei parametri
| Tipo: | Uri |
| Valore predefinito: | http://localhost:5985/WSMAN |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | URI (Identificatore Uniforme delle Risorse), CU |
Set di parametri
ConnectionUriSessionName
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
ConnectionUriInstanceId
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-Credential
Specifica un account utente che dispone dell'autorizzazione per connettersi alla sessione disconnessa. Il valore predefinito è l'utente corrente.
Digitare un nome utente, ad esempio User01 o Domain01\User01oppure immettere un oggetto PSCredential generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesto di immettere la password.
Le credenziali vengono archiviate in un oggetto PSCredential e la password viene archiviata come SecureString.
Annotazioni
Per ulteriori informazioni sulla protezione dei dati di SecureString, vedere Quanto è sicuro SecureString?.
Proprietà dei parametri
| Tipo: | PSCredential |
| Valore predefinito: | Current user |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ComputerInstanceId
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ComputerSessionName
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ConnectionUriSessionName
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ConnectionUriInstanceId
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Id
Specifica l'ID di una sessione disconnessa. Il parametro Id funziona solo quando la sessione disconnessa è stata precedentemente connessa alla sessione corrente.
Questo parametro è valido, ma non efficace, quando la sessione viene archiviata nel computer locale, ma non è stata connessa alla sessione corrente.
Proprietà dei parametri
| Tipo: | Int32 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
Id
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-InstanceId
Specifica l'ID istanza della sessione disconnessa. L'ID istanza è un GUID che identifica in modo univoco una sessione PSSession in un computer locale o remoto. L'ID istanza viene archiviato nella proprietà InstanceID di PSSession.
Proprietà dei parametri
| Tipo: | Guid |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ComputerInstanceId
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ConnectionUriInstanceId
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
InstanceId
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-JobName
Specifica un nome descrittivo per il processo restituito Receive-PSSession .
Receive-PSSession restituisce un processo quando il valore del parametro OutTarget è Job o il processo in esecuzione nella sessione disconnessa è stato avviato nella sessione corrente.
Se il processo in esecuzione nella sessione disconnessa è stato avviato nella sessione corrente, PowerShell riutilizza l'oggetto processo originale nella sessione e ignora il valore del parametro JobName .
Se il processo in esecuzione nella sessione disconnessa è stato avviato in una sessione diversa, PowerShell crea un nuovo oggetto processo. Utilizza un nome predefinito, ma è possibile utilizzare questo parametro per modificare il nome.
Se il valore predefinito o il valore esplicito del parametro OutTarget non è Job, il comando ha esito positivo, ma il parametro JobName non ha alcun effetto.
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 |
-Name
Specifica il nome descrittivo della sessione disconnessa.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ComputerSessionName
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ConnectionUriSessionName
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
SessionName
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-OutTarget
Determina la modalità di restituzione dei risultati della sessione. I valori accettabili per questo parametro sono:
- Processo. Restituisce i risultati in modo asincrono in un oggetto processo. È possibile utilizzare il parametro JobName per specificare un nome o un nuovo nome per il processo.
- Host. Restituisce i risultati alla riga di comando (in modo sincrono). Se il comando viene ripreso o i risultati sono costituiti da un numero elevato di oggetti, la risposta potrebbe essere ritardata.
Il valore predefinito del parametro OutTarget è Host. Se il comando ricevuto in una sessione disconnessa è stato avviato nella sessione corrente, il valore predefinito del parametro OutTarget è il modulo in cui è stato avviato il comando. Se il comando è stato avviato come processo, per impostazione predefinita viene restituito come processo. In caso contrario, viene restituito al programma host per impostazione predefinita.
In genere, il programma host visualizza gli oggetti restituiti nella riga di comando senza ritardi, ma questo comportamento può variare.
Proprietà dei parametri
| Tipo: | OutTarget |
| Valore predefinito: | None |
| Valori accettati: | Default, Host, Job |
| 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 del computer remoto utilizzata per riconnettersi alla sessione. Per connettersi a un computer remoto, deve essere in ascolto sulla porta usata dalla connessione. Le porte predefinite sono 5985, ovvero la porta WinRM per HTTP e 5986, ovvero la porta WinRM per HTTPS.
Prima di usare una porta alternativa, è necessario configurare il listener WinRM nel computer remoto per l'ascolto su tale porta. Per configurare il listener, digitare i due comandi seguenti al prompt di PowerShell:
Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse
New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>
Non usare il parametro Port a meno che non sia necessario. La porta impostata 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
ComputerInstanceId
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ComputerSessionName
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Session
Specifica la sessione disconnessa. Immettere una variabile contenente la sessione PSSession o un comando che crea o ottiene la sessione PSSession, ad esempio un Get-PSSession comando.
Proprietà dei parametri
| Tipo: | PSSession |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
Session
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-SessionOption
Specifica le opzioni avanzate per la sessione. Immettere un oggetto SessionOption , ad esempio uno creato utilizzando il New-PSSessionOption cmdlet, o una tabella hash in cui le chiavi sono nomi di opzioni di sessione e i valori sono valori di opzioni di sessione.
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 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 una descrizione delle opzioni di sessione che includono i valori predefiniti, vedere New-PSSessionOption. Per informazioni sulla variabile di preferenza $PSSessionOption, vedere about_Preference_Variables. Per altre informazioni sulle configurazioni di sessione, vedere about_Session_Configurations.
Proprietà dei parametri
| Tipo: | PSSessionOption |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ComputerInstanceId
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ComputerSessionName
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ConnectionUriSessionName
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ConnectionUriInstanceId
| 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 utilizza il protocollo SSL (Secure Sockets Layer) per connettersi alla sessione disconnessa. Per impostazione predefinita, SSL non viene usato.
WS-Management crittografa tutto il contenuto di PowerShell trasmesso in rete. UseSSL è una protezione aggiuntiva che invia i dati attraverso una connessione HTTPS anziché una connessione HTTP.
Se si usa questo parametro e SSL non è disponibile sulla porta usata per il comando, il comando ha esito negativo.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ComputerInstanceId
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ComputerSessionName
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | Wi |
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 gli oggetti sessione a questo cmdlet, ad esempio gli oggetti restituiti dal Get-PSSession cmdlet .
Int32
È possibile inviare tramite pipe gli ID sessione a questo cmdlet.
Guid
È possibile inviare tramite pipe gli ID istanza delle sessioni questo cmdlet.
String
È possibile reindirizzare i nomi delle sessioni a questo cmdlet.
Output
System.Management.Automation.Job or PSObject
Questo cmdlet restituisce i risultati dei comandi eseguiti nella sessione disconnessa, se presenti. Se il valore o il valore predefinito del parametro OutTarget è Job, Receive-PSSession restituisce un oggetto processo. In caso contrario, restituisce gli oggetti che rappresentano i risultati del comando.
Note
Questo cmdlet è disponibile solo nelle piattaforme Windows.
Receive-PSSession ottiene i risultati solo dalle sessioni disconnesse. È possibile disconnettere e riconnettersi solo le sessioni connesse o terminate in corrispondenza dei computer che eseguono PowerShell 3.0 o versioni successive.
Se i comandi in esecuzione nella sessione disconnessa non hanno generato risultati o se i risultati sono già stati restituiti a un'altra sessione, Receive-PSSession non genera alcun output.
La modalità di buffering di output di una sessione determina il modo in cui i comandi nella sessione gestiscono l'output quando la sessione viene disconnessa. Quando il valore dell'opzione OutputBufferingMode della sessione è Drop e il buffer di output è pieno, il comando inizia a eliminare l'output.
Receive-PSSession non è in grado di recuperare questo output. Per altre informazioni sull'opzione modalità buffering di output, vedere gli articoli della Guida per i cmdlet New-PSSessionOption e New-PSTransportOption .
Non è possibile modificare il valore di timeout di inattività di una sessione PSSession quando ci si connette alla sessione PSSession o si ricevono risultati. Il parametro SessionOption di Receive-PSSession accetta un oggetto SessionOption con un valore IdleTimeout . Tuttavia, il valore IdleTimeout dell'oggetto SessionOption e il valore IdleTimeout della $PSSessionOption variabile vengono ignorati quando si connette a una sessione PSSession o ricevono risultati.
- È possibile impostare e modificare il timeout di inattività di una sessione PSSession quando si crea la sessione PSSession, usando i
New-PSSessioncmdlet oInvoke-Commande quando si disconnette dalla sessione PSSession. - La proprietà IdleTimeout di una sessione PSSession è fondamentale per le sessioni disconnesse perché determina per quanto tempo viene mantenuta una sessione disconnessa nel computer remoto. Le sessioni disconnesse sono considerate inattive dal momento in cui vengono disconnesse, anche se i comandi sono in esecuzione nella sessione disconnessa.
Se si avvia un processo in una sessione remota usando il parametro AsJob del Invoke-Command cmdlet , l'oggetto processo viene creato nella sessione corrente, anche se il processo viene eseguito nella sessione remota. Se si disconnette la sessione remota, l'oggetto processo nella sessione corrente viene disconnesso dal processo. L'oggetto processo contiene tutti i risultati restituiti, ma non riceve nuovi risultati dal processo nella sessione disconnessa.
Se un client diverso si connette alla sessione che contiene il processo in esecuzione, i risultati recapitati all'oggetto processo originale nella sessione originale non sono disponibili nella sessione appena connessa. Nella sessione riconnessa sono disponibili solo i risultati che non sono stati recapitati all'oggetto processo originale.
Analogamente, se si avvia uno script in una sessione e quindi si disconnette dalla sessione, tutti i risultati recapitati dallo script alla sessione prima della disconnessione non sono disponibili per un altro client che si connette alla sessione.
Per evitare la perdita di dati nelle sessioni che si intende disconnettere, usare il parametro InDisconnectedSession del Invoke-Command cmdlet. Poiché questo parametro impedisce che i risultati vengano restituiti alla sessione corrente, tutti i risultati sono disponibili quando la sessione viene riconnessa.
È anche possibile impedire la perdita di dati usando il Invoke-Command cmdlet per eseguire un Start-Job comando nella sessione remota. In questo caso, l'oggetto processo viene creato nella sessione remota. Non è possibile usare il Receive-PSSession cmdlet per ottenere i risultati del processo. Usare invece il Connect-PSSession cmdlet per connettersi alla sessione e quindi usare il Invoke-Command cmdlet per eseguire un Receive-Job comando nella sessione.
Quando una sessione contenente un processo in esecuzione viene disconnessa e quindi riconnessa, l'oggetto processo originale viene riutilizzato solo se il processo viene disconnesso e riconnesso alla stessa sessione e il comando per riconnettersi non specifica un nuovo nome di processo. Se la sessione viene riconnessa a una sessione client diversa o viene specificato un nuovo nome di processo, PowerShell crea un nuovo oggetto processo per la nuova sessione.
Quando si disconnette una sessione PSSession, lo stato della sessione è Disconnesso e la disponibilità è Nessuno.
- Il valore della proprietà state è relativo alla sessione corrente. Il valore Disconnected indica che la sessione PSSession non è connessa alla sessione corrente. Tuttavia, non significa che la sessione PSSession sia disconnessa da tutte le sessioni. Potrebbe essere connesso a una sessione diversa. Per determinare se è possibile connettersi o riconnettersi alla sessione, utilizzare la proprietà Availability .
- Il valore di Disponibilità Nessuno indica che è possibile connettersi alla sessione. Un valore occupato indica che non è possibile connettersi alla sessione PSSession perché è connessa a un'altra sessione.
- Per altre informazioni sui valori della proprietà State delle sessioni, vedere RunspaceState.
- Per altre informazioni sui valori della proprietà Availability delle sessioni, vedere RunspaceAvailability.
Collegamenti correlati
- Informazioni su PSSessions
- informazioni su Remote
- informazioni_su_Remote_Disconnected_Sessions
- Informazioni_sulle_Configurazioni_della_Sessione
- Connect-PSSession
- Enter-PSSession
- Exit-PSSession (Esci dalla sessione PS)
- Get-PSSession
- Invoke-Command
- New-PSSession
- Nuova Opzione di Sessione PS
- New-PSTransportOption
- Remove-PSSession