Condividi tramite


Disable-PSRemoting

Impedisce agli utenti remoti di eseguire comandi nel computer locale.

Sintassi

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

Descrizione

Il cmdlet Disable-PSRemoting impedisce agli utenti di altri computer di eseguire comandi nel computer locale.

Disable-PSRemoting blocca l'accesso remoto a tutte le configurazioni di sessione nel computer locale. In questo modo si impedisce agli utenti remoti di creare sessioni temporanee o permanenti nel computer locale. Disable-PSRemoting non impedisce agli utenti del computer locale di creare sessioni (PSSession) nel computer locale o nei computer remoti.

Per riabilitare l'accesso remoto a tutte le configurazioni di sessione, usare il cmdlet Enable-PSRemoting. 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.

In Windows PowerShell 2.0 Disable-PSRemoting impedisce a tutti gli utenti di creare sessioni gestite dall'utente nel computer locale. In Windows PowerShell 3.0 Disable-PSRemoting 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.

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

ATTENZIONE: nei sistemi con Windows PowerShell 3.0 e il motore Windows PowerShell 2.0, non usare Windows PowerShell 2.0 per eseguire i cmdlet Enable-PSRemoting e Disable-PSRemoting. Anche se potrebbe sembrare che i comandi vengano completati, in realtà la comunicazione remota non è configurata correttamente. I comandi remoti e i successivi tentativi di abilitare e disabilitare la comunicazione remota hanno poche probabilità di riuscire.

Esempio

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

PS C:\> Disable-PSRemoting

Questo comando impedisce l'accesso remoto a tutte le configurazioni di sessione nel computer.

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

PS C:\> Disable-PSRemoting -Force

Questo comando impedisce l'accesso remoto a tutte le configurazioni di sessione nel computer senza chiedere conferma.

Esempio 3: Effetti dell'esecuzione di questo cmdlet

PS C:\> Disable-PSRemoting -Force


[ADMIN] PS C:\> New-PSSession -ComputerName localhost


Id Name       ComputerName    State    Configuration         Availability
-- ----       ------------    -----    -------------         ------------
1 Session1   Server02...     Opened   Microsoft.PowerShell     Available
# On Server02 remote computer:
PS C:\> New-PSSession -ComputerName Server01

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

Questo esempio illustra l'effetto dell'uso del cmdlet Disable-PSRemoting. Per eseguire questa sequenza di comandi, avviare Windows PowerShell con l'opzione Esegui come amministratore.

Il primo comando usa il cmdlet Disable-PSRemoting per disabilitare tutte le configurazioni di sessione nel computer Server01.

Il secondo comando usa il cmdlet New-PSSession per creare una sessione remota nel computer locale (noto anche come "loopback"). Il comando riesce.

Il terzo comando viene eseguito nel computer remoto Server02. Usa il cmdlet New-PSSession per creare una sessione nel computer remoto Server01. Poiché l'accesso remoto è disabilitato, il comando non riesce.

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

PS C:\> Disable-PSRemoting -force

[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto

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


[ADMIN] PS C:\> Enable-PSRemoting -Force
WinRM already is set up to receive requests on this machine.
WinRM already is set up for remote management on this machine.

[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto

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

Questo esempio mostra l'effetto sulle configurazioni di sessione di usando i cmdlet Disable-PSRemoting e Enable-PSRemoting .

Il primo comando usa il cmdlet Disable-PSRemoting per disabilitare l'accesso remoto a tutte le configurazioni di sessione. Il parametro Force elimina tutti i prompt utente.

Il secondo comando usa il cmdlet Get-PSSessionConfiguration per visualizzare le configurazioni di sessione nel computer. Il comando usa un operatore pipeline per inviare i risultati a un comando Format-Table, che visualizza solo le proprietà Name e Permission delle configurazioni in una tabella.

L'output mostra che l'accesso alle configurazioni è negato solo agli utenti remoti. I membri del gruppo Administrators nel computer locale sono autorizzati a usare le configurazioni di sessione. L'output mostra anche che il comando influisce su tutte le configurazioni di sessione che includono la configurazione della sessione WithProfile creata dall'utente.

Il terzo comando usa il cmdlet Enable-PSRemoting per riabilitare l'accesso remoto a tutte le configurazioni di sessione nel computer. Usa il parametro Force per eliminare tutti i prompt utente e riavviare il servizio WinRM senza chiedere conferma.

Il quarto comando usa i cmdlet Get-PSSessionConfiguration e Format-Table per visualizzare i nomi e le autorizzazioni delle configurazioni di sessione. I risultati mostrano che i descrittori di sicurezza AccessDenied sono stati rimossi da tutte le configurazioni di sessione.

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

PS C:\> Register-PSSessionConfiguration -Name Test -FilePath .\TestEndpoint.pssc -ShowSecurityDescriptorUI

[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap

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

[ADMIN] PS C:\> Disable-PSRemoting -Force


[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Wrap

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

# Domain01\User01

PS C:\> New-PSSession -ComputerName Server01 -ConfigurationName Test
[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

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.

Il primo comando usa il cmdlet Register-PSSessionConfiguration per creare la configurazione della sessione di test. Usa il parametro FilePath per specificare un file di configurazione di sessione che personalizza la sessione e il parametro ShowSecurityDescriptorUI per visualizzare una finestra di dialogo in cui impostare le autorizzazioni per la configurazione di sessione. Nella finestra di dialogo delle autorizzazioni vengono create autorizzazioni personalizzate con accesso completo per l'utente Domain01\User01.

Il secondo comando usa i cmdlet Get-PSSessionConfiguration e Format-Table per visualizzare le configurazioni di sessione e le relative proprietà. L'output mostra che la configurazione di sessione Test concede autorizzazioni speciali e di accesso interattivo per l'utente Domain01\User01.

Il terzo comando usa il cmdlet Disable-PSRemoting per disabilitare l'accesso remoto a tutte le configurazioni di sessione.

Il quarto comando usa i cmdlet Get-PSSessionConfiguration e Format-Table per visualizzare le configurazioni di sessione e le relative proprietà. L'output mostra che un descrittore di sicurezza AccessDenied per tutti gli utenti di rete viene aggiunto a tutte le configurazioni di sessione che includono 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.

Il quinto comando mostra che il comando Disable-PSRemoting impedisce anche all'utente Domain01\User01 che dispone di autorizzazioni speciali per la configurazione della sessione di test di utilizzare la configurazione della sessione di test per connettersi al computer in remoto.

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

PS C:\> Disable-PSRemoting -Force


[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto

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

[ADMIN] PS C:\> Set-PSSessionConfiguration -Name Microsoft.ServerManager -AccessMode Remote -Force

[ADMIN] PS C:\> Get-PSSessionConfiguration | Format-Table -Property Name, Permission -Auto

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

Questo esempio illustra come riabilitare l'accesso remoto solo a determinate configurazioni di sessione.

Il primo comando usa il cmdlet Disable-PSRemoting per disabilitare l'accesso remoto a tutte le configurazioni di sessione.

Il secondo comando usa i cmdlet Get-PSSessionConfiguration e Format-Table per visualizzare le configurazioni di sessione e le relative proprietà. L'output mostra che in tutte le configurazioni di sessione viene aggiunto un descrittore di sicurezza AccessDenied per tutti gli utenti di rete.

Il terzo comando usa il cmdlet Set-PSSessionConfiguration . Usa il parametro AccessMode con il valore Remote per abilitare l'accesso remoto alla configurazione di sessione Microsoft.ServerManager. È possibile usare il parametro AccessMode per abilitare l'accesso locale e disabilitare le configurazioni di sessione.

Il quarto comando usa i cmdlet Get-PSSessionConfiguration e Format-Table per visualizzare le configurazioni di sessione e le relative proprietà. L'output mostra che il descrittore di sicurezza AccessDenied viene rimosso per tutti gli utenti di rete, ripristinando in questo modo l'accesso remoto alla configurazione di sessione Microsoft.ServerManager.

Parametri

-Confirm

Richiede la conferma dell'utente prima di eseguire il cmdlet.

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

-Force

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

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

-WhatIf

Mostra l'esito in caso di 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

None

Non è possibile inviare input tramite pipe a questo cmdlet.

Output

None

Questo cmdlet non restituisce alcun oggetto.

Note

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

Arrestare e disabilitare il servizio WinRM.

2. Eliminare il listener che accetta le richieste su qualsiasi indirizzo IP.

3. Disabilitare le eccezioni del firewall per le comunicazioni 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 di 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 è l'equivalente di Disable-PSSessionConfiguration -Name *. In Windows PowerShell 3.0 e versioni successive, Disable-PSRemoting è l'equivalente diSet-PSSessionConfiguration -Name \<Configuration name\> -AccessMode Local

In Windows PowerShell 2.0 Disable-PSRemoting è una funzione. A partire da Windows PowerShell 3.0, è un cmdlet.