about_Remote_Requirements

Descrizione breve

Descrive i requisiti di sistema e i requisiti di configurazione per l'esecuzione di comandi remoti in PowerShell.

Descrizione lunga

Questo argomento descrive i requisiti di sistema, i requisiti utente e i requisiti delle risorse per stabilire connessioni remote ed eseguire comandi remoti in PowerShell. Vengono inoltre fornite istruzioni per la configurazione delle operazioni remote.

Nota

Alcuni cmdlet ottengono oggetti dalle connessioni RPC dei computer remoti o dalle sessioni WMI per le connessioni remote. Non usano l'infrastruttura remota di PowerShell. I requisiti in questo documento non si applicano a questi cmdlet.

Per trovare i cmdlet con un parametro ComputerName ma che non usano la comunicazione remota di PowerShell, leggere la descrizione del parametro ComputerName dei cmdlet.

Requisiti di sistema

In Windows la comunicazione remota di PowerShell usa Gestione remota Windows (WinRM), fornita da Windows Management Framework (WMF). Per eseguire sessioni remote in PowerShell, i computer locali e remoti devono avere quanto segue:

  • Windows PowerShell 3.0 o versione successiva
  • Microsoft .NET Framework 4 o versione successiva
  • Gestione remota Windows 3.0 o versione successiva

Per eseguire sessioni remote in Windows PowerShell 2.0, i computer locali e remoti devono disporre dei seguenti elementi:

  • Windows PowerShell 2.0 o versione successiva
  • Microsoft .NET Framework 2.0 o versione successiva
  • Gestione remota Windows 2.0

Per essere completamente supportato, è consigliabile usare WMF 5.1. Per altre informazioni sul supporto wmf, vedere Windows Management Framework (WMF).

È possibile creare una sessione remota tra un computer che esegue Windows PowerShell 2.0 e uno che esegue una versione più recente di PowerShell. Tuttavia, le funzionalità eseguite solo in nuove versioni di PowerShell, ad esempio la possibilità di disconnettersi e riconnettersi alle sessioni, sono disponibili solo quando entrambi i computer eseguono Windows PowerShell 3.0 e versioni successive.

Per trovare il numero di versione di una versione installata di PowerShell, usare la $PSVersionTable variabile automatica.

PowerShell 7 e versioni successive supporta anche la comunicazione remota di PowerShell tramite SSH. La comunicazione remota di PowerShell tramite SSH consente di connettersi a qualsiasi host Windows, macOS o Linux che esegue SSH. Per altre informazioni, vedere Comunicazione remota di PowerShell su SSH.

Autorizzazioni utenti

Per creare sessioni remote ed eseguire comandi remoti, per impostazione predefinita, l'utente corrente deve essere membro del gruppo Administrators nel computer remoto o fornire le credenziali di un amministratore. In caso contrario, il comando non riesce.

Le autorizzazioni necessarie per creare sessioni ed eseguire comandi in un computer remoto vengono stabilite dalla configurazione della sessione. La configurazione della sessione definisce le opzioni di configurazione per l'endpoint di connessione nel computer remoto. In particolare, il descrittore di sicurezza nella configurazione della sessione determina chi può accedere alla configurazione della sessione e chi può usarlo per connettersi.

I descrittori di sicurezza nelle configurazioni di sessione predefinite, Microsoft.PowerShell e Microsoft.PowerShell32 consentono solo l'accesso ai membri del gruppo Administrators .

I membri del gruppo Administrators in un computer possono determinare chi dispone dell'autorizzazione per connettersi al computer in remoto modificando i descrittori di sicurezza nelle configurazioni di sessione predefinite o creare nuove configurazioni di sessione con descrittori di sicurezza diversi. Gli utenti possono usare il parametro ConfigurationName dei *-PSSession cmdlet per connettersi a endpoint diversi.

Per altre informazioni sulle configurazioni di sessione, vedere about_Session_Configurations.

Percorsi di rete di Windows

A partire da Windows PowerShell 3.0, il cmdlet può abilitare la Enable-PSRemoting comunicazione remota nelle versioni client e server di Windows.

Nelle versioni server di Windows con reti private e di dominio, il Enable-PSRemoting cmdlet crea regole del firewall che consentono l'accesso remoto senza restrizioni. Crea anche una regola del firewall per le reti pubbliche che consente l'accesso remoto solo dai computer nella stessa subnet locale. Questa regola del firewall della subnet locale è abilitata per impostazione predefinita nelle versioni server di Windows nelle reti pubbliche, ma Enable-PSRemoting riapplica la regola nel caso in cui sia stata modificata o eliminata.

Nelle versioni client di Windows con reti private e di dominio, Enable-PSRemoting crea regole del firewall che consentono l'accesso remoto senza restrizioni.

Per abilitare la comunicazione remota nelle versioni client di Windows con reti pubbliche, usare il parametro SkipNetworkProfileCheck del Enable-PSRemoting cmdlet . Questa opzione crea una regola del firewall che consente l'accesso remoto solo dai computer nella stessa subnet locale.

Per rimuovere la restrizione della subnet locale sulle reti pubbliche e consentire l'accesso remoto da tutte le posizioni nelle versioni client e server di Windows, usare il Set-NetFirewallRule cmdlet nel modulo NetSecurity . Eseguire il comando riportato di seguito:

Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

Nota

Il nome della regola del firewall può essere diverso per versioni diverse di Windows. Usare Get-NetFirewallRule per visualizzare un elenco di regole. Prima di abilitare la regola del firewall, visualizzare le impostazioni di sicurezza nella regola per verificare che la configurazione sia appropriata per l'ambiente in uso.

In Windows PowerShell 2.0, nelle versioni server di Windows, Enable-PSRemoting crea regole del firewall che consentono l'accesso remoto in tutte le reti.

In Windows PowerShell 2.0, nelle versioni client di Windows, Enable-PSRemoting crea regole del firewall solo nelle reti private e di dominio. Se il percorso di rete è pubblico, Enable-PSRemoting ha esito negativo.

Esegui come amministratore

I privilegi di amministratore sono necessari per le operazioni di comunicazione remota seguenti:

  • Stabilire una connessione remota al computer locale. Questo scenario è comunemente noto come scenario di "loopback".
  • Gestione delle configurazioni di sessione nel computer locale.
  • Visualizzazione e modifica delle impostazioni di WS-Management nel computer locale. Queste sono le impostazioni nel nodo LocalHost dell'unità WSMAN: .

È necessario avviare PowerShell con l'opzione Esegui come amministratore anche se si è membri del gruppo Administrators nel computer locale.

Quando si avvia Windows PowerShell da un altro programma, cmd.exead esempio , usare l'opzione Esegui come amministratore per avviare il programma.

Come configurare il computer per la comunicazione remota

I computer che eseguono qualsiasi versione supportata di Windows possono stabilire connessioni remote ed eseguire comandi remoti in PowerShell senza alcuna configurazione. Tuttavia, per ricevere connessioni remote è necessario abilitare la comunicazione remota di PowerShell nel computer.

Windows Server 2012 e versioni più recenti di Windows Server sono abilitati per la comunicazione remota di PowerShell per impostazione predefinita. Se le impostazioni vengono modificate, è possibile ripristinare le impostazioni predefinite eseguendo il Enable-PSRemoting cmdlet .

Per impostazione predefinita, le funzionalità di comunicazione remota di PowerShell sono supportate dal servizio WinRM, ovvero l'implementazione Microsoft del protocollo WS-Management (Web Services for Management). Quando si abilita la comunicazione remota di PowerShell, si modifica la configurazione predefinita di WS-Management e si aggiunge la configurazione di sistema che consente agli utenti di connettersi a WS-Management.

Per configurare PowerShell per ricevere comandi remoti:

  1. Avviare PowerShell con l'opzione Esegui come amministratore .
  2. Al prompt dei comandi digitare: Enable-PSRemoting

Per verificare che la comunicazione remota sia configurata correttamente, eseguire un comando di test, ad esempio il comando seguente, che crea una sessione remota nel computer locale.

New-PSSession

Se la comunicazione remota è configurata correttamente, il comando crea una sessione nel computer locale e restituisce un oggetto che rappresenta la sessione.

Id Name        ComputerName    State    ConfigurationName
-- ----        ------------    -----    -----
1  Session1    localhost       Opened   Microsoft.PowerShell

Se il comando non riesce, vedere about_Remote_Troubleshooting.

Informazioni sui criteri

Quando si lavora in remoto, si usano due istanze di PowerShell, una nel computer locale e una nel computer remoto. Di conseguenza, il lavoro è interessato dai criteri di Windows e PowerShell nei computer locali e remoti.

Prima di connettersi e durante la connessione, i criteri nel computer locale sono attivi. Quando si usa la connessione, i criteri nel computer remoto sono effettivi.

Vedi anche