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 oEnable-PSSessionConfiguration
. Può essere necessario annullare manualmente le modifiche seguenti.- Arrestare e disabilitare il servizio WinRM.
- Eliminare il listener che accetta richieste in qualsiasi indirizzo IP.
- Disabilitare le eccezioni del firewall per le comunicazioni di WS-Management.
- 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.0Disable-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 aDisable-PSSessionConfiguration -Name *
. In Windows PowerShell 3.0 e versioni successive èDisable-PSRemoting
l'equivalente diSet-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local