Connect-PSSession

Ristabilisce la connessione alle sessioni disconnesse.

Sintassi

Connect-PSSession
       -Name <String[]>
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-Session] <PSSession[]>
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       -ComputerName <String[]>
       [-ApplicationName <String>]
       [-ConfigurationName <String>]
       -InstanceId <Guid[]>
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-Port <Int32>]
       [-UseSSL]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       -ComputerName <String[]>
       [-ApplicationName <String>]
       [-ConfigurationName <String>]
       [-Name <String[]>]
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-Port <Int32>]
       [-UseSSL]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-ConfigurationName <String>]
       [-ConnectionUri] <Uri[]>
       [-AllowRedirection]
       -InstanceId <Guid[]>
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-ConfigurationName <String>]
       [-ConnectionUri] <Uri[]>
       [-AllowRedirection]
       [-Name <String[]>]
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       -InstanceId <Guid[]>
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-ThrottleLimit <Int32>]
       [-Id] <Int32[]>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Descrizione

Questo cmdlet è disponibile solo nella piattaforma Windows.

Il Connect-PSSession cmdlet si riconnette alle sessioni di PowerShell gestite dall'utente (PSSession) disconnesse. Funziona su sessioni disconnesse intenzionalmente, ad esempio usando il cmdlet o il Disconnect-PSSessionparametro InDisconnectedSession del Invoke-Command cmdlet e quelle disconnesse involontariamente, ad esempio da un'interruzione temporanea della rete.

Connect-PSSession può connettersi a qualsiasi sessione disconnessa avviata dallo stesso utente. Questi includono quelli avviati da o disconnessi da altre sessioni in altri computer.

Tuttavia, Connect-PSSession non è possibile connettersi a sessioni interrotte o chiuse o sessioni interattive avviate usando il Enter-PSSession cmdlet . Inoltre, non è possibile connettere sessioni alle sessioni avviate da altri utenti, a meno che non sia possibile fornire le credenziali dell'utente che ha creato la sessione.

Per altre informazioni sulla funzionalità Sessioni disconnesse, vedere about_Remote_Disconnected_Sessions.

Questo cmdlet è stato introdotto in Windows PowerShell 3.0.

Esempio

Esempio 1: Riconnettersi a una sessione

Connect-PSSession -ComputerName Server01 -Name ITTask

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 4 ITTask          Server01        Opened        ITTasks                  Available

Questo comando si riconnette alla ITTask sessione nel computer Server01.

L'output mostra che il comando è riuscito. Lo stato della sessione è Opened e la disponibilità è Available, che indica che è possibile eseguire i comandi nella sessione.

Esempio 2: Effetto della disconnessione e della riconnessione

Get-PSSession

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 Backups         Localhost       Opened        Microsoft.PowerShell     Available

Get-PSSession | Disconnect-PSSession

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 Backups         Localhost       Disconnected  Microsoft.PowerShell          None

Get-PSSession | Connect-PSSession

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 Backups         Localhost       Opened        Microsoft.PowerShell     Available

Questo esempio illustra l'effetto della disconnessione e della successiva riconnessione a una sessione.

Il primo comando usa il Get-PSSession cmdlet . Senza il parametro ComputerName , il comando ottiene solo le sessioni create nella sessione corrente.

L'output mostra che il comando ottiene la Backups sessione nel computer locale. Lo stato della sessione è Opened e la disponibilità è Available.

Il secondo comando usa il Get-PSSession cmdlet per ottenere gli oggetti PSSession creati nella sessione corrente e il Disconnect-PSSession cmdlet per disconnettere le sessioni. L'output mostra che la Backups sessione è stata disconnessa. Lo stato della sessione è Disconnected e la disponibilità è None.

Il terzo comando usa il Get-PSSession cmdlet per ottenere gli oggetti PSSession creati nella sessione corrente e il Connect-PSSession cmdlet per riconnettere le sessioni. L'output mostra che la Backups sessione è stata riconnessa. Lo stato della sessione è Opened e la disponibilità è Available.

Se si usa il Connect-PSSession cmdlet in una sessione non disconnessa, il comando non influisce sulla sessione e non genera errori.

Esempio 3: Serie di comandi in uno scenario aziendale

Questa serie di comandi illustra come usare il Connect-PSSession cmdlet in uno scenario aziendale. In questo caso, un amministratore di sistema avvia un processo a esecuzione prolungata in una sessione in un computer remoto. Dopo l'avvio del processo, l'amministratore si disconnette dalla sessione e lascia l'ufficio. Successivamente, l'amministratore accede al computer di casa e verifica che il processo sia stato eseguito fino a quando non viene completato.

L'amministratore inizia creando sessioni in un computer remoto ed eseguendo uno script nella sessione. Il primo comando usa il New-PSSession cmdlet per creare la ITTask sessione nel computer remoto Server01. Il comando usa il parametro ConfigurationName per specificare la configurazione della ITTasks sessione. Il comando salva le sessioni nella $s variabile .

Secondo cmdlet di comando Invoke-Command per avviare un processo in background nella sessione nella $s variabile . Usa il parametro FilePath per eseguire lo script nel processo in background.

Il terzo comando usa il Disconnect-PSSession cmdlet per disconnettersi dalla sessione nella $s variabile . Il comando usa il parametro OutputBufferingMode con un valore di Drop per impedire che lo script venga bloccato dalla necessità di recapitare l'output alla sessione. Usa il parametro IdleTimeoutSec per estendere il timeout della sessione a 15 ore. Al termine del comando, l'amministratore blocca il computer e torna a casa per la sera.

Successivamente, l'amministratore avvia il computer domestico, accede alla rete aziendale e avvia PowerShell. Il quarto comando usa il Get-PSSession cmdlet per ottenere le sessioni nel computer Server01. Il comando trova la ITTask sessione. Il quinto comando usa il Connect-PSSession cmdlet per connettersi alla ITTask sessione. Il comando salva la sessione nella variabile $s.

Il sesto comando usa il Invoke-Command cmdlet per eseguire un Get-Job comando nella sessione nella $s variabile . L'output mostra che il processo è stato completato correttamente. Il settimo comando usa il Invoke-Command cmdlet per eseguire un Receive-Job comando nella sessione nella $s variabile nella sessione. Il comando salva i risultati nella $BackupSpecs variabile. L'ottavo comando usa il Invoke-Command cmdlet per eseguire un altro script nella sessione. Il comando usa il valore della $BackupSpecs variabile nella sessione come input per lo script.

$s = New-PSSession -ComputerName Server01 -Name ITTask -ConfigurationName ITTasks
Invoke-Command -Session $s -ScriptBlock {Start-Job -FilePath \\Server30\Scripts\Backup-SQLDatabase.ps1}

Id     Name            State         HasMoreData     Location             Command
--     ----            -----         -----------     --------             -------
2      Job2            Running       True            Server01             \\Server30\Scripts\Backup...

Disconnect-PSSession -Session $s -OutputBufferingMode Drop -IdleTimeoutSec 60*60*15

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Disconnected  ITTasks               None

Get-PSSession -ComputerName Server01 -Name ITTask

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Disconnected  ITTasks               None

$s = Connect-PSSession -ComputerName Server01 -Name ITTask

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Opened        ITTasks               Available

Invoke-Command -Session $s -ScriptBlock {Get-Job}

Id     Name            State         HasMoreData     Location             Command
--     ----            -----         -----------     --------             -------
2      Job2            Completed     True            Server01             \\Server30\Scripts\Backup...

Invoke-Command -Session $s -ScriptBlock {$BackupSpecs = Receive-Job -JobName Job2}
Invoke-Command -Session $s -ScriptBlock {\\Server30\Scripts\New-SQLDatabase.ps1 -InitData $BackupSpecs.Initialization}
Disconnect-PSSession -Session $s -OutputBufferingMode Drop -IdleTimeoutSec 60*60*15

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Disconnected  ITTasks               None

Il nono comando si disconnette dalla sessione nella $s variabile . L'amministratore chiude PowerShell e chiude il computer. Può riconnettersi alla sessione il giorno successivo e controllare lo stato dello script dal computer di lavoro.

Parametri

-AllowRedirection

Indica che questo cmdlet consente il reindirizzamento di questa connessione a un URI alternativo.

Quando si usa il parametro Connessione ionURI, 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 consentire il reindirizzamento della connessione.

È anche possibile limitare il numero di reindirizzamenti della connessione modificando il valore dell'opzione di sessione Maximum Connessione ionRedirectionCount. Utilizzare il parametro MaximumRedirection del New-PSSessionOption cmdlet o impostare la proprietà Maximum Connessione ionRedirectionCount della variabile di preferenza $PSSessionOption. Il valore predefinito è 5.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationName

Specifica il nome di un'applicazione. Questo cmdlet si connette solo alle sessioni che usano l'applicazione specificata.

Immettere il segmento dell'URI di connessione corrispondente al nome dell'applicazione. Nell'URI di connessione seguente, ad esempio, il nome dell'applicazione è WSMan: http://localhost:5985/WSMAN. Il nome dell'applicazione di una sessione viene archiviato in Runspace.ConnessioneProprietà ionInfo.AppName della sessione.

Il valore di questo parametro consente di selezionare e filtrare le sessioni. L'applicazione usata dalla sessione rimane invariata.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Authentication

Specifica il meccanismo usato per autenticare le credenziali utente nel comando per riconnettersi alla sessione disconnessa. I valori validi per questo parametro sono:

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

Il valore predefinito è Default.

Per altre informazioni sui valori di questo parametro, vedere AuthenticationMechanism Enumeration.

Attenzione

L'autenticazione credSSP (Credential Security Support Provider), in cui le credenziali dell'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.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

Specifica il certificato di chiave pubblica digitale (X509) di un account utente che dispone dell'autorizzazione per la connessione alla sessione disconnessa. Immettere l'identificazione personale del certificato.

I certificati vengono usati nell'autenticazione basata sui 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 un Get-Item comando o Get-ChildItem nell'unità di PowerShell Cert: .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Specifica i computer in cui sono archiviate le sessioni disconnesse. Le sessioni vengono archiviate nel computer che si trova 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 di un computer. I caratteri jolly non sono consentiti. Per specificare il computer locale, digitare il nome del computer, localhosto un punto (.)

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ConfigurationName

Stabilisce la connessione solo alle sessioni che usano la configurazione di sessione specificata.

Immettere un nome di configurazione o l'URI di risorsa completo 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 di questo parametro consente di selezionare e filtrare le sessioni. La configurazione di sessione usata dalla sessione rimane invariata.

Per altre informazioni sulle configurazioni di sessione, vedere about_Session_Configurations.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionUri

Specifica gli URI degli endpoint di connessione per le sessioni disconnesse.

L'URI deve essere completo. Il formato di questa 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 e Port 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 .

Type:Uri[]
Aliases:URI, CU
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Credential

Specifica un account utente che dispone dell'autorizzazione per la connessione alla sessione disconnessa. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio User01 o Domain01\User01, o immettere un oggetto PSCredential generato dal Get-Credential cmdlet . 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.

Nota

Per altre informazioni sulla protezione dei dati SecureString , vedere How secure is SecureString?.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

Specifica gli ID delle sessioni disconnesse. Il parametro ID funziona solo quando la sessione disconnessa è stata precedentemente connessa alla sessione corrente.

Questo parametro è valido, ma non efficace, quando la sessione è archiviata nel computer locale, ma non era connessa alla sessione corrente.

Type:Int32[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

Specifica gli ID istanza delle sessioni disconnesse.

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 della sessione PSSession.

Type:Guid[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Name

Specifica i nomi descrittivi delle sessioni disconnesse.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Port

Specifica la porta di rete nel computer remoto usata per riconnettersi alla sessione. Per connettersi a un computer remoto, è necessario che il computer remoto sia in attesa 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 di Gestione remota Windows 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 tutte le sessioni in cui viene eseguito il comando. Un'impostazione di porta alternativa potrebbe impedire l'esecuzione del comando in tutti i computer.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Session

Specifica le sessioni disconnesse. Immettere una variabile contenente gli oggetti PSSession o un comando che crea o ottiene gli oggetti PSSession , ad esempio un Get-PSSession comando.

Type:PSSession[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-SessionOption

Specifica le opzioni avanzate per la sessione. Immettere un oggetto SessionOption , ad esempio quello creato usando il New-PSSessionOption cmdlet o una tabella hash in cui le chiavi sono nomi di opzioni di sessione e i valori sono valori di opzione 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 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 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.

Type:PSSessionOption
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 0a , viene usato il valore predefinito , 32.

Questo valore limite si applica solo al comando corrente, non alla sessione o al computer.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseSSL

Indica che questo cmdlet usa il protocollo SSL (Secure Sockets Layer) per connettersi alla sessione disconnessa. Per impostazione predefinita SSL non viene utilizzato.

WS-Management crittografa tutto il contenuto di PowerShell trasmesso in rete. Il parametro UseSSL è una protezione aggiuntiva che invia i dati attraverso una connessione HTTPS anziché una connessione HTTP.

Se si usa questo parametro, ma SSL non è disponibile sulla porta usata per il comando, il comando ha esito negativo.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

PSSession

È possibile inviare tramite pipe una sessione (PSSession) a questo cmdlet.

Output

PSSession

Questo cmdlet restituisce un oggetto che rappresenta la sessione a cui si è riconnessa.

Note

PowerShell include gli alias seguenti per Connect-PSSession:

  • Windows:

    • cnsn
  • Questo cmdlet è disponibile solo nelle piattaforme Windows.

  • Connect-PSSession si riconnette solo alle sessioni disconnesse, ovvero le sessioni con valore Disconnected per la proprietà State . Solo le sessioni connesse o terminano con i computer che eseguono Windows PowerShell 3.0 o versioni successive possono essere disconnesse e riconnesse.

  • Se si usa Connect-PSSession in una sessione non disconnessa, il comando non influisce sulla sessione e non genera errori.

  • Le sessioni di loopback disconnesse con token interattivi creati usando il parametro EnableNetworkAccess possono essere riconnesse solo dal computer in cui è stata creata la sessione. Questa restrizione protegge il computer da accessi non autorizzati.

  • Il valore della proprietà State di una sessione PSSession è relativo alla sessione corrente. Pertanto, un valore Disconnesso indica che la sessione PSSession non è connessa alla sessione corrente. Tuttavia, non significa che la sessione PSSession sia disconnessa da tutte le sessioni. È possibile che sia connessa a una sessione diversa. Per determinare se è possibile connettersi o riconnettersi alla sessione, utilizzare la proprietà Availability .

    Un valore availability di None indica che è possibile connettersi alla sessione. Il 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 Enumerazione RunspaceState.

    Per altre informazioni sui valori della proprietà Availability delle sessioni, vedere Enumerazione RunspaceAvailability.

  • Non è possibile modificare il valore di timeout di inattività di una sessione PSSession quando ci si connette alla sessione PSSession. Il parametro SessionOption di Connect-PSSession accetta un oggetto SessionOption con un valore IdleTimeout . Tuttavia, il valore IdleTimeout dell'oggetto SessionOption e il valore IdleTimeout della variabile vengono ignorati durante la $PSSessionOption connessione a una sessione PSSession.

    È possibile impostare e modificare il timeout di inattività di una sessione PSSession quando si crea la sessione PSSession, usando i New-PSSession cmdlet o Invoke-Command e 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 della disconnessione, anche se vi sono comandi in esecuzione.