Condividi tramite


Disable-PSRemoting

Impedisce agli endpoint di PowerShell di ricevere connessioni remote.

Sintassi

Disable-PSRemoting
       [-Force]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Descrizione

Il Disable-PSRemoting cmdlet blocca l'accesso remoto a tutte le configurazioni degli endpoint di sessione di Windows PowerShell nel computer locale. Sono inclusi gli endpoint creati da PowerShell 6 o versione successiva.

Per riabilitare l'accesso remoto a tutte le configurazioni di sessione, usare il Enable-PSRemoting cmdlet . Sono inclusi gli endpoint creati da PowerShell 6 o versione successiva. Per abilitare l'accesso remoto alle configurazioni di sessione selezionate, usare il parametro AccessMode del Set-PSSessionConfiguration cmdlet . È anche possibile usare i Enable-PSSessionConfiguration cmdlet e Disable-PSSessionConfiguration per abilitare e disabilitare le configurazioni di sessione per tutti gli utenti. Per altre informazioni sulle configurazioni di sessione, vedere about_Session_Configurations.

Nota

Anche dopo l'esecuzione Disable-PSRemoting è comunque possibile effettuare connessioni di loopback nel computer locale. Una connessione loopback è una sessione remota di PowerShell che ha origine e si connette allo stesso computer locale. Le sessioni remote da origini esterne rimangono bloccate. Per le connessioni loopback è necessario usare credenziali implicite lungo il parametro EnableNetworkAccess . Per altre informazioni sulle connessioni loopback, vedere New-PSSession.

Per eseguire questo cmdlet, avviare Windows PowerShell con l'opzione Esegui come amministratore .

Esempio

Esempio 1: Impedire l'accesso remoto a tutte le configurazioni di sessione

In questo esempio viene impedito l'accesso remoto a tutte le configurazioni degli endpoint di sessione di PowerShell nel computer.

Disable-PSRemoting

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these
 steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

Esempio 2: Impedire l'accesso remoto a tutte le configurazioni di sessione senza richiesta di conferma

In questo esempio viene impedito l'accesso remoto a tutte le configurazioni degli endpoint di sessione di PowerShell nel computer senza chiedere conferma.

Disable-PSRemoting -Force

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these
 steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

Esempio 3: Effetti dell'esecuzione di questo cmdlet

In questo esempio viene illustrato l'effetto dell'uso del Disable-PSRemoting cmdlet . Per eseguire questa sequenza di comandi, avviare PowerShell con l'opzione Esegui come amministratore .

Dopo aver disabilitato le configurazioni delle sessioni, il New-PSSession cmdlet tenta di creare una sessione remota nel computer locale (noto anche come "loopback"). Poiché l'accesso remoto è disabilitato nel computer locale, il comando ha esito negativo.

Disable-PSRemoting -Force
New-PSSession -ComputerName localhost

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

New-PSSession : [localhost] Connecting to remote server localhost failed with the following error
 message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:1
+ New-PSSession -ComputerName localhost -ConfigurationName PowerShell.6
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : OpenError: (System.Management.A\u2026tion.RemoteRunspace:RemoteRunspace)
 [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed

Esempio 4: Effetti dell'esecuzione di questo cmdlet e Enable-PSRemoting

In questo esempio viene illustrato l'effetto sulle configurazioni di sessione di usando i Disable-PSRemoting cmdlet e Enable-PSRemoting .

Disable-PSRemoting viene usato per disabilitare l'accesso remoto a tutte le configurazioni degli endpoint di sessione di PowerShell. Il parametro Force elimina tutte le richieste dell'utente. I Get-PSSessionConfiguration cmdlet e Format-Table visualizzano le configurazioni di sessione nel computer.

L'output mostra che tutti gli utenti remoti con un token di rete vengono negati l'accesso alle configurazioni dell'endpoint. Il gruppo Administrators nel computer locale è autorizzato ad accedere alle configurazioni dell'endpoint purché si connetta in locale (noto anche come loopback) e usi credenziali implicite.

Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize

Enable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize

Name                          Permission
----                          ----------
microsoft.powershell          NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32        NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager       NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
WithProfile                   NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed

Name                          Permission
----                          ----------
microsoft.powershell          BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow BUILTIN\Administrators AccessAllowed
microsoft.powershell32        BUILTIN\Administrators AccessAllowed
microsoft.ServerManager       BUILTIN\Administrators AccessAllowed
WithProfile                   BUILTIN\Administrators AccessAllowed

Il Enable-PSRemoting cmdlet abilita nuovamente l'accesso remoto a tutte le configurazioni degli endpoint di sessione di PowerShell nel computer. Il parametro Force elimina tutte le richieste dell'utente e riavvia il servizio WinRM senza richiedere conferma. Il nuovo output mostra che i descrittori di sicurezza AccessDenied sono stati rimossi da tutte le configurazioni di sessione.

Esempio 5: Connessioni loopback con configurazioni dell'endpoint sessione disabilitate

Questo esempio illustra come le configurazioni degli endpoint sono disabilitate e illustra come stabilire una connessione loopback corretta a un endpoint disabilitato. Disable-PSRemoting disabilita tutte le configurazioni degli endpoint di sessione di PowerShell.

Disable-PSRemoting -Force
New-PSSession -ComputerName localhost

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

New-PSSession : [localhost] Connecting to remote server localhost failed with the following error message : Access is
denied. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:1
+ New-PSSession -ComputerName localhost
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin
   gTransportException
    + FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed

New-PSSession -ComputerName localhost -EnableNetworkAccess

Id Name       Transport ComputerName  ComputerType   State   ConfigurationName   Availability
 -- ----       --------- ------------  ------------   -----   -----------------   ------------
 1  Runspace1  WSMan     localhost     RemoteMachine  Opened  powershell.6           Available

Primo utilizzo di tentativi di New-PSSession creare una sessione remota nel computer locale. Questo tipo di connessione passa attraverso lo stack di rete e non è un loopback. Di conseguenza, il tentativo di connessione all'endpoint disabilitato ha esito negativo e viene negato un errore di Accesso.

Il secondo utilizzo di tenta anche di New-PSSession creare una sessione remota nel computer locale. In questo caso, ha esito positivo perché si tratta di una connessione loopback che ignora lo stack di rete.

Una connessione loopback viene creata quando vengono soddisfatte le condizioni seguenti:

  • Il nome del computer a cui connettersi è "localhost".
  • Non vengono passate credenziali. L'utente connesso corrente (credenziali implicite) viene usato per la connessione.
  • Viene usato il parametro dell'opzione EnableNetworkAccess .

Per altre informazioni sulle connessioni loopback, vedere il documento New-PSSession .

Esempio 6: Impedire l'accesso remoto alle configurazioni di sessione con descrittori di sicurezza personalizzati

In questo esempio viene illustrato che il cmdlet disabilita l'accesso Disable-PSRemoting remoto a tutte le configurazioni di sessione che includono configurazioni di sessione con descrittori di sicurezza personalizzati.

Register-PSSessionConfiguration crea la configurazione della sessione di test . Il parametro FilePath specifica un file di configurazione della sessione che personalizza la sessione. Il parametro ShowSecurityDescriptorUI visualizza una finestra di dialogo che imposta le autorizzazioni per la configurazione della sessione. Nella finestra di dialogo Autorizzazioni vengono create autorizzazioni di accesso completo personalizzate per l'utente indicato.

I Get-PSSessionConfiguration cmdlet e Format-Table visualizzano le configurazioni di sessione e le relative proprietà. L'output mostra che la configurazione della sessione di test consente l'accesso interattivo e le autorizzazioni speciali per l'utente indicato.

Disable-PSRemoting disabilita l'accesso remoto a tutte le configurazioni di sessione.

Register-PSSessionConfiguration -Name Test -FilePath .\TestEndpoint.pssc -ShowSecurityDescriptorUI -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap

Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap
New-PSSession -ComputerName localhost -ConfigurationName Test

Name                          Permission
----                          ----------
microsoft.powershell          BUILTIN\Administrators AccessAllowed
Test                          NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed,
DOMAIN01\User01 AccessAllowed

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

Name                          Permission
----                          ----------
microsoft.powershell          NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
Test                          NT AUTHORITY\NETWORK AccessDenied, NTAUTHORITY\INTERACTIVE AccessAllowed,
BUILTIN\Administrators AccessAllowed, DOMAIN01\User01 AccessAllowed


[Server01] Connecting to remote server failed with the following error message : Access is denied. For more information, see the about_Rem
ote_Troubleshooting Help topic.
+ CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionOpenFailed

Get-PSSessionConfiguration I cmdlet e Format-Table mostrano ora che un descrittore di sicurezza AccessDenied per tutti gli utenti di rete viene aggiunto a tutte le configurazioni di sessione, inclusa la configurazione della sessione di test. Anche se gli altri descrittori di sicurezza non vengono modificati, il descrittore di sicurezza "network_deny_all" ha la precedenza. Questo è illustrato dal tentativo di usare New-PSSession per connettersi alla configurazione della sessione di test .

Esempio 7: Riabilitare l'accesso remoto alle configurazioni di sessione selezionate

Questo esempio illustra come riabilitare l'accesso remoto solo a determinate configurazioni di sessione. Dopo aver disabilitato tutte le configurazioni di sessione, si riabilita una sessione specifica.

Il Set-PSSessionConfiguration cmdlet viene usato per modificare microsoft . Configurazione della sessione ServerManager . Il parametro AccessMode con il valore Remote re-abilita l'accesso remoto alla configurazione.

Disable-PSRemoting -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize

Set-PSSessionConfiguration -Name Microsoft.ServerManager -AccessMode Remote -Force
Get-PSSessionConfiguration | Format-Table -Property Name, Permission -AutoSize

WARNING: Disabling the session configurations does not undo all the changes made by the Enable-PSRemoting
 or Enable-PSSessionConfiguration cmdlet. You might have to manually undo the changes by following these steps:
    1. Stop and disable the WinRM service.
    2. Delete the listener that accepts requests on any IP address.
    3. Disable the firewall exceptions for WS-Management communications.
    4. Restore the value of the LocalAccountTokenFilterPolicy to 0, which restricts remote access to
       members of the Administrators group on the computer.

Name                          Permission
----                          ----------
microsoft.powershell          NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32        NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager       NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
WithProfile                   NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed

Name                          Permission
----                          ----------
microsoft.powershell          NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell.workflow NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.powershell32        NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed
microsoft.ServerManager       BUILTIN\Administrators AccessAllowed
WithProfile                   NT AUTHORITY\NETWORK AccessDenied, BUILTIN\Administrators AccessAllowed

Parametri

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Tipo:SwitchParameter
Alias:cf
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Force

Forza l'esecuzione del comando senza chiedere conferma all'utente.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-WhatIf

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

Tipo:SwitchParameter
Alias:wi
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

None

Questo cmdlet non restituisce output.

Note

  • La disabilitazione delle configurazioni di sessione non annulla tutte le modifiche apportate dai Enable-PSRemoting cmdlet o Enable-PSSessionConfiguration . Può essere necessario annullare manualmente le modifiche seguenti.

    1. Arrestare e disabilitare il servizio WinRM.
    2. Eliminare il listener che accetta richieste in qualsiasi indirizzo IP.
    3. Disabilitare le eccezioni del firewall per le comunicazioni di WS-Management.
    4. Ripristinare il valore di LocalAccountTokenFilterPolicy su 0, che limita l'accesso remoto ai membri del gruppo Administrators nel computer.

    Una configurazione di sessione è un gruppo di impostazioni che definiscono l'ambiente per una sessione. Ogni sessione che si connette al computer deve usare una delle configurazioni di sessione registrate nello stesso. Negando l'accesso a tutte le configurazioni di sessione, si impedisce effettivamente agli utenti remoti di stabilire sessioni che si connettono al computer.

    In Windows PowerShell 2.0 Disable-PSRemoting aggiunge una voce Deny_All ai descrittori di sicurezza di tutte le configurazioni di sessione. Questa impostazione impedisce a tutti gli utenti di creare sessioni gestite dall'utente nel computer locale. In Windows PowerShell 3.0 Disable-PSRemoting aggiunge una voce Network_Deny_All ai descrittori di sicurezza di tutte le configurazioni di sessione. Questa impostazione impedisce agli utenti in altri computer di creare sessioni gestite dall'utente nel computer locale, ma consente agli utenti del computer locale di creare sessioni di loopback gestite dall'utente.

    In Windows PowerShell 2.0 Disable-PSRemoting equivale a Disable-PSSessionConfiguration -Name *. In Windows PowerShell 3.0 e versioni successive è Disable-PSRemoting l'equivalente di Set-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local