Disable-PSRemoting
Impedisce agli endpoint di PowerShell di ricevere connessioni remote.
Sintassi
Default (Impostazione predefinita)
Disable-PSRemoting
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Il cmdlet Disable-PSRemoting 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 cmdlet Enable-PSRemoting. 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 cmdlet Set-PSSessionConfiguration.
È anche possibile usare i cmdlet Enable-PSSessionConfiguration 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.
Annotazioni
Anche dopo aver eseguito Disable-PSRemoting è comunque possibile stabilire 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 le 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 cmdlet Disable-PSRemoting. Per eseguire questa sequenza di comandi, avviare PowerShell con l'opzione Esegui come amministratore.
Dopo aver disabilitato le configurazioni delle sessioni, il cmdlet New-PSSession 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 cmdlet Disable-PSRemoting 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 degli utenti. I cmdlet Get-PSSessionConfiguration 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 cmdlet Enable-PSRemoting riabilita 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 chiedere 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
Il primo utilizzo di New-PSSession tenta di 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 errore di accesso.
Il secondo uso di New-PSSession tenta anche di 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 parametro switch EnableNetworkAccess.
Per altre informazioni sulle connessioni loopback, vedere 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 Disable-PSRemoting disabilita l'accesso 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 di. 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 cmdlet Get-PSSessionConfiguration e Format-Table visualizzano le configurazioni di sessione e le relative proprietà. L'output mostra che la configurazione della sessione 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
I cmdlet Get-PSSessionConfiguration e Format-Table mostrano ora che un descrittore di sicurezza di accessdenied per tutti gli utenti di rete viene aggiunto a tutte le configurazioni di sessione, inclusa la configurazione di sessione 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 di sessione test.
Esempio 7: Riabilitare l'accesso remoto alle configurazioni di sessione selezionate
Questo esempio mostra come riabilitare l'accesso remoto solo alle configurazioni di sessione selezionate. Dopo aver disabilitato tutte le configurazioni di sessione, si riabilita una sessione specifica.
Il cmdlet Set-PSSessionConfiguration viene usato per modificare il microsoft. ServerManager configurazione della sessione. Il parametro AccessMode con il valore Remote riattiva 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.
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 |
-Force
Forza l'esecuzione del comando senza chiedere conferma dell'utente.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-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
None
Gli oggetti non possono essere inviati tramite pipe a questo cmdlet.
Output
None
Questo cmdlet non restituisce alcun output.
Note
La disabilitazione delle configurazioni di sessione non annulla tutte le modifiche apportate dai cmdlet
Enable-PSRemotingoEnable-PSSessionConfiguration. Potrebbe essere necessario annullare manualmente le modifiche seguenti.- Arrestare e disabilitare il servizio WinRM.
- Eliminare il listener che accetta le richieste su 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 nel computer. Negando l'accesso remoto a tutte le configurazioni di sessione, si impedisce agli utenti remoti di stabilire sessioni che si connettono al computer.
In Windows PowerShell 2.0
Disable-PSRemotingaggiunge 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-PSRemotingaggiunge 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-PSRemotingequivale aDisable-PSSessionConfiguration -Name *. In Windows PowerShell 3.0 e versioni successiveDisable-PSRemotingequivale aSet-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local