Informazioni sui requisiti remotiAbout Remote Requirements

DESCRIZIONE BREVESHORT DESCRIPTION

Descrive i requisiti di sistema e i requisiti di configurazione per l'esecuzione di comandi remoti in PowerShell.Describes the system requirements and configuration requirements for running remote commands in PowerShell.

DESCRIZIONE LUNGALONG DESCRIPTION

Questo argomento descrive i requisiti di sistema, i requisiti degli utenti e i requisiti di risorse per stabilire connessioni remote ed eseguire comandi remoti in PowerShell.This topic describes the system requirements, user requirements, and resource requirements for establishing remote connections and running remote commands in PowerShell. Vengono inoltre fornite istruzioni per la configurazione delle operazioni remote.It also provides instructions for configuring remote operations.

Nota: molti cmdlet (compresi i cmdlet Get-Service, Get-Process, Get-WMIObject, Get-EventLog e Get-WinEvent) ottengono oggetti da computer remoti usando Microsoft .NET metodi Framework per recuperare gli oggetti.Note: Many cmdlets (including the Get-Service, Get-Process, Get-WMIObject, Get-EventLog, and Get-WinEvent cmdlets) get objects from remote computers by using Microsoft .NET Framework methods to retrieve the objects. Non usano l'infrastruttura di comunicazione remota di PowerShell.They do not use the PowerShell remoting infrastructure. I requisiti di questo documento non si applicano a questi cmdlet.The requirements in this document do not apply to these cmdlets.

Per trovare i cmdlet che hanno un parametro ComputerName ma che non usano la comunicazione remota di PowerShell, leggere la descrizione del parametro ComputerName dei cmdlet.To find the cmdlets that have a ComputerName parameter but do not use PowerShell remoting, read the description of the ComputerName parameter of the cmdlets.

REQUISITI DI SISTEMASYSTEM REQUIREMENTS

Per eseguire sessioni remote in Windows PowerShell 3,0, i computer locali e remoti devono avere quanto segue:To run remote sessions on Windows PowerShell 3.0, the local and remote computers must have the following:

  • Windows PowerShell 3,0 o versione successivaWindows PowerShell 3.0 or later
  • Microsoft .NET Framework 4 o versione successivaThe Microsoft .NET Framework 4 or later
  • Gestione remota Windows 3,0Windows Remote Management 3.0

Per eseguire sessioni remote in Windows PowerShell 2,0, i computer locali e remoti devono avere quanto segue:To run remote sessions on Windows PowerShell 2.0, the local and remote computers must have the following:

  • Windows PowerShell 2,0 o versione successivaWindows PowerShell 2.0 or later
  • Microsoft .NET Framework 2,0 o versione successivaThe Microsoft .NET Framework 2.0 or later
  • Gestione remota Windows 2,0Windows Remote Management 2.0

È possibile creare sessioni remote tra computer che eseguono Windows PowerShell 2,0 e Windows PowerShell 3,0.You can create remote sessions between computers running Windows PowerShell 2.0 and Windows PowerShell 3.0. Tuttavia, le funzionalità che vengono eseguite solo in Windows PowerShell 3,0, ad esempio la possibilità di disconnettersi e riconnettersi alle sessioni, sono disponibili solo quando entrambi i computer eseguono Windows PowerShell 3,0.However, features that run only on Windows PowerShell 3.0, such as the ability to disconnect and reconnect to sessions, are available only when both computers are running Windows PowerShell 3.0.

Per trovare il numero di versione di una versione installata di PowerShell, usare la $PSVersionTable variabile automatica.To find the version number of an installed version of PowerShell, use the $PSVersionTable automatic variable.

Gestione remota Windows (WinRM) 3,0 e Microsoft .NET Framework 4 sono incluse in Windows 8, Windows Server 2012 e nelle versioni più recenti del sistema operativo Windows.Windows Remote Management (WinRM) 3.0 and Microsoft .NET Framework 4 are included in Windows 8, Windows Server 2012, and newer releases of the Windows operating system. WinRM 3,0 è incluso in Windows Management Framework 3,0 per i sistemi operativi precedenti.WinRM 3.0 is included in Windows Management Framework 3.0 for older operating systems. Se il computer non dispone della versione richiesta di WinRM o del Framework Microsoft .NET, l'installazione non riesce.If the computer does not have the required version of WinRM or the Microsoft .NET Framework, the installation fails.

AUTORIZZAZIONI UTENTEUSER PERMISSIONS

Per creare sessioni remote ed eseguire comandi remoti, per impostazione predefinita, l'utente corrente deve essere un membro del gruppo Administrators nel computer remoto o fornire le credenziali di un amministratore.To create remote sessions and run remote commands, by default, the current user must be a member of the Administrators group on the remote computer or provide the credentials of an administrator. In caso contrario, il comando non riesce.Otherwise, the command fails.

Le autorizzazioni necessarie per creare sessioni ed eseguire comandi in un computer remoto o in una sessione remota nel computer locale vengono stabilite dalla configurazione di sessione (nota anche come "endpoint") nel computer remoto a cui si connette la sessione.The permissions required to create sessions and run commands on a remote computer (or in a remote session on the local computer) are established by the session configuration (also known as an "endpoint") on the remote computer to which the session connects. In particolare, il descrittore di sicurezza nella configurazione di sessione determina chi può accedere alla configurazione di sessione e chi può usarlo per la connessione.Specifically, the security descriptor on the session configuration determines who has access to the session configuration and who can use it to connect.

I descrittori di sicurezza nelle configurazioni di sessione predefinite, Microsoft. PowerShell, Microsoft. PowerShell32 e Microsoft. PowerShell. Workflow, consentono l'accesso solo ai membri del gruppo Administrators.The security descriptors on the default session configurations, Microsoft.PowerShell, Microsoft.PowerShell32, and Microsoft.PowerShell.Workflow, allow access only to members of the Administrators group.

Se l'utente corrente non dispone delle autorizzazioni per usare la configurazione di sessione, il comando per eseguire un comando (che usa una sessione temporanea) o creare una sessione persistente nel computer remoto non riesce.If the current user doesn't have permission to use the session configuration, the command to run a command (which uses a temporary session) or create a persistent session on the remote computer fails. L'utente può usare il parametro ConfigurationName dei cmdlet che creano sessioni per selezionare una configurazione di sessione diversa, se disponibile.The user can use the ConfigurationName parameter of cmdlets that create sessions to select a different session configuration, if one is available.

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 e creando nuove configurazioni di sessione con diversi descrittori di sicurezza.Members of the Administrators group on a computer can determine who has permission to connect to the computer remotely by changing the security descriptors on the default session configurations and by creating new session configurations with different security descriptors.

Per altre informazioni sulle configurazioni di sessione, vedere about_Session_Configurations.For more information about session configurations, see about_Session_Configurations.

PERCORSI DI RETE DI WINDOWSWINDOWS NETWORK LOCATIONS

A partire da Windows PowerShell 3,0, il cmdlet Enable-PSRemoting può abilitare la comunicazione remota nelle versioni client e server di Windows su reti private, di dominio e pubbliche.Beginning in Windows PowerShell 3.0, the Enable-PSRemoting cmdlet can enable remoting on client and server versions of Windows on private, domain, and public networks.

Nelle versioni server di Windows con reti private e di dominio, il cmdlet Enable-PSRemoting crea regole del firewall che consentono l'accesso remoto senza restrizioni.On server versions of Windows with private and domain networks, the Enable-PSRemoting cmdlet creates firewall rules that allow unrestricted remote access. Viene inoltre creata una regola del firewall per reti pubbliche che consente l'accesso remoto solo da computer nella stessa subnet locale.It also creates a firewall rule for public networks that allows remote access only from computers in the same local subnet. Questa regola del firewall di 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.This local subnet firewall rule is enabled by default on server versions of Windows on public networks, but Enable-PSRemoting reapplies the rule in case it was changed or deleted.

Nelle versioni client di Windows con reti private e di dominio, per impostazione predefinita, il cmdlet Enable-PSRemoting crea regole del firewall che consentono l'accesso remoto senza restrizioni.On client versions of Windows with private and domain networks, by default, the Enable-PSRemoting cmdlet creates firewall rules that allow unrestricted remote access.

Per abilitare la comunicazione remota nelle versioni client di Windows con reti pubbliche, usare il parametro SkipNetworkProfileCheck del cmdlet Enable-PSRemoting.To enable remoting on client versions of Windows with public networks, use the SkipNetworkProfileCheck parameter of the Enable-PSRemoting cmdlet. Viene creata una regola del firewall che consente l'accesso remoto solo da computer nella stessa subnet locale.It creates a firewall rule that allows remote access only from computers in the same local subnet.

Per rimuovere la restrizione della subnet locale nelle reti pubbliche e consentire l'accesso remoto da tutti i percorsi nelle versioni client e server di Windows, usare il cmdlet Set-NetFirewallRule nel modulo NetSecurity.To remove the local subnet restriction on public networks and allow remote access from all locations on client and server versions of Windows, use the Set-NetFirewallRule cmdlet in the NetSecurity module. Eseguire il comando seguente:Run the following command:

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

In Windows PowerShell 2,0, nelle versioni server di Windows Enable-PSRemoting crea regole del firewall che consentono l'accesso remoto su tutte le reti.In Windows PowerShell 2.0, on server versions of Windows, Enable-PSRemoting creates firewall rules that permit remote access on all networks.

In Windows PowerShell 2,0, nelle versioni client di Windows Enable-PSRemoting crea regole del firewall solo su reti private e di dominio.In Windows PowerShell 2.0, on client versions of Windows, Enable-PSRemoting creates firewall rules only on private and domain networks. Se il percorso di rete è pubblico, Enable-PSRemoting ha esito negativo.If the network location is public, Enable-PSRemoting fails.

ESEGUI COME AMMINISTRATORERUN AS ADMINISTRATOR

I privilegi di amministratore sono necessari per le operazioni remote seguenti:Administrator privileges are required for the following remoting operations:

  • Stabilire una connessione remota al computer locale.Establishing a remote connection to the local computer. Questo scenario è comunemente noto come "loopback".This is commonly known as a "loopback" scenario.

  • Gestione delle configurazioni di sessione nel computer locale.Managing session configurations on the local computer.

  • Visualizzazione e modifica delle impostazioni di WS-Management nel computer locale.Viewing and changing WS-Management settings on the local computer. Queste sono le impostazioni nel nodo LocalHost dell'unità WSMAN:.These are the settings in the LocalHost node of the WSMAN: drive.

Per eseguire queste attività, è necessario avviare PowerShell con l'opzione "Esegui come amministratore" anche se si è un membro del gruppo Administrators nel computer locale.To perform these tasks, you must start PowerShell with the "Run as administrator" option even if you are a member of the Administrators group on the local computer.

In Windows 7 e in Windows Server 2008 R2, per avviare Windows PowerShell con l'opzione "Esegui come amministratore":In Windows 7 and in Windows Server 2008 R2, to start Windows PowerShell with the "Run as administrator" option:

  1. Fare clic sul pulsante Start, scegliere tutti i programmi, accessori, quindi fare clic sulla cartella Windows PowerShell.Click Start, click All Programs, click Accessories, and then click the Windows PowerShell folder.
  2. Fare clic con il pulsante destro del mouse su Windows PowerShell, quindi scegliere "Esegui come amministratore".Right-click Windows PowerShell, and then click "Run as administrator".

Per avviare Windows PowerShell con l'opzione "Esegui come amministratore":To start Windows PowerShell with the "Run as administrator" option:

  1. Fare clic sul pulsante Start, scegliere tutti i programmi, quindi fare clic sulla cartella Windows PowerShell.Click Start, click All Programs, and then click the Windows PowerShell folder.
  2. Fare clic con il pulsante destro del mouse su Windows PowerShell, quindi scegliere "Esegui come amministratore".Right-click Windows PowerShell, and then click "Run as administrator".

L'opzione "Esegui come amministratore" è disponibile anche in altre voci di Esplora risorse di Windows PowerShell, inclusi i collegamenti.The "Run as administrator" option is also available in other Windows Explorer entries for Windows PowerShell, including shortcuts. È sufficiente fare clic con il pulsante destro del mouse sull'elemento, quindi scegliere "Esegui come amministratore".Just right-click the item, and then click "Run as administrator".

Quando si avvia Windows PowerShell da un altro programma, ad esempio Cmd.exe, utilizzare l'opzione "Esegui come amministratore" per avviare il programma.When you start Windows PowerShell from another program such as Cmd.exe, use the "Run as administrator" option to start the program.

COME CONFIGURARE IL COMPUTER PER LA COMUNICAZIONE REMOTAHOW TO CONFIGURE YOUR COMPUTER FOR REMOTING

I computer che eseguono tutte le versioni supportate di Windows possono stabilire connessioni remote ed eseguire comandi remoti in PowerShell senza alcuna configurazione.Computers running all supported versions of Windows can establish remote connections to and run remote commands in PowerShell without any configuration. Tuttavia, per ricevere le connessioni e consentire agli utenti di creare sessioni di PowerShell gestite dall'utente locali e remote ("PSSession") ed eseguire comandi nel computer locale, è necessario abilitare la comunicazione remota di PowerShell nel computer.However, to receive connections, and allow users to create local and remote user-managed PowerShell sessions ("PSSessions") and run commands on the local computer, you must enable PowerShell remoting on the computer.

Per impostazione predefinita, Windows Server 2012 e le versioni più recenti di Windows Server sono abilitate per la comunicazione remota di PowerShell.Windows Server 2012 and newer releases of Windows Server are enabled for PowerShell remoting by default. Se le impostazioni vengono modificate, è possibile ripristinare le impostazioni predefinite eseguendo il cmdlet Enable-PSRemoting.If the settings are changed, you can restore the default settings by running the Enable-PSRemoting cmdlet.

In tutte le altre versioni supportate di Windows, è necessario eseguire il cmdlet Enable-PSRemoting per abilitare la comunicazione remota di PowerShell.On all other supported versions of Windows, you need to run the Enable-PSRemoting cmdlet to enable PowerShell remoting.

Le funzionalità di comunicazione remota di PowerShell sono supportate dal servizio WinRM, che è l'implementazione Microsoft del protocollo Web Services for Management (WS-Management).The remoting features of PowerShell are supported by the WinRM service, which is the Microsoft implementation of the Web Services for Management (WS-Management) protocol. Quando si Abilita la comunicazione remota di PowerShell, è possibile modificare la configurazione predefinita di WS-Management e aggiungere la configurazione di sistema che consente agli utenti di connettersi a WS-Management.When you enable PowerShell remoting, you change the default configuration of WS-Management and add system configuration that allow users to connect to WS-Management.

Per configurare PowerShell per la ricezione di comandi remoti:To configure PowerShell to receive remote commands:

  1. Avviare PowerShell con l'opzione "Esegui come amministratore".Start PowerShell with the "Run as administrator" option.
  2. Al prompt dei comandi digitare: Enable-PSRemotingAt the command prompt, type: Enable-PSRemoting

Per verificare che la comunicazione remota sia configurata correttamente, eseguire un comando di test, ad esempio il comando seguente, che consente di creare una sessione remota nel computer locale.To verify that remoting is configured correctly, run a test command such as the following command, which creates a remote session on the local computer.

New-PSSession

Se la comunicazione remota è configurata correttamente, il comando creerà una sessione nel computer locale e restituirà un oggetto che rappresenta la sessione.If remoting is configured correctly, the command will create a session on the local computer and return an object that represents the session. L'output dovrebbe essere simile all'output di esempio seguente:The output should resemble the following sample output:

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

Se il comando non riesce, per assistenza, vedere about_Remote_Troubleshooting.If the command fails, for assistance, see about_Remote_Troubleshooting.

INFORMAZIONI SUI CRITERIUNDERSTAND POLICIES

Quando si lavora in modalità remota, si usano due istanze di PowerShell, una nel computer locale e una nel computer remoto.When you work remotely, you use two instances of PowerShell, one on the local computer and one on the remote computer. Di conseguenza, il lavoro è influenzato dai criteri di Windows e dai criteri di PowerShell nei computer locali e remoti.As a result, your work is affected by the Windows policies and the PowerShell policies on the local and remote computers.

In generale, prima di connettersi e quando si stabilisce la connessione, i criteri nel computer locale sono attivi.In general, before you connect and as you are establishing the connection, the policies on the local computer are in effect. Quando si utilizza la connessione, i criteri nel computer remoto sono attivi.When you are using the connection, the policies on the remote computer are in effect.

Limitazioni dell'autenticazione di base in Linux e macOSBasic Authentication Limitations on Linux and macOS

Quando ci si connette da un sistema Linux o macOS a Windows, l'autenticazione di base su HTTP non è supportata.When connecting from a Linux or macOS system to Windows, Basic Authentication over HTTP is not supported. L'autenticazione di base può essere utilizzata su HTTPS installando un certificato nel server di destinazione.Basic Authentication can be used over HTTPS by installing a certificate on the target server. Il certificato deve avere un nome di CN corrispondente al nome host, non è scaduto o è stato revocato.The certificate must have a CN name that matches the hostname, is not expired or revoked. Un certificato autofirmato può essere usato a scopo di test.A self-signed certificate may be used for testing purposes.

Per ulteriori informazioni, vedere procedura: configurare WINRM per HTTPS .See How To: Configure WINRM for HTTPS for additional details.

Il comando seguente, eseguito da un prompt dei comandi con privilegi elevati, configurerà il listener HTTPS in Windows con il certificato installato.The following command, run from an elevated command prompt, will configure the HTTPS listener on Windows with the installed certificate.

$hostinfo = '@{Hostname="<DNS_NAME>"; CertificateThumbprint="<THUMBPRINT>"}'
winrm create winrm/config/Listener?Address=*+Transport=HTTPS $hostinfo

Sul lato Linux o macOS selezionare Basic for Authentication e-UseSSl.On the Linux or macOS side, select Basic for authentication and -UseSSl.

Nota: non è possibile usare l'autenticazione di base con gli account di dominio. è necessario un account locale e l'account deve appartenere al gruppo Administrators.NOTE: Basic authentication cannot be used with domain accounts; a local account is required and the account must be in the Administrators group.

# The specified local user must have administrator rights on the target machine.
# Specify the unqualified username.
$cred = Get-Credential username
$session = New-PSSession -Computer <hostname> -Credential $cred `
  -Authentication Basic -UseSSL

Un'alternativa all'autenticazione di base su HTTPS è negoziata.An alternative to Basic Authentication over HTTPS is Negotiate. Ciò comporta l'autenticazione NTLM tra il client e il server e il payload viene crittografato tramite HTTP.This results in NTLM authentication between the client and server and payload is encrypted over HTTP.

Di seguito viene illustrato l'uso di Negotiate con New-PSSession:The following illustrates using Negotiate with New-PSSession:

# The specified user must have administrator rights on the target machine.
$cred = Get-Credential username@hostname
$session = New-PSSession -Computer <hostname> -Credential $cred `
  -Authentication Negotiate

Nota

Windows Server richiede un'impostazione del registro di sistema aggiuntiva per consentire agli amministratori, oltre all'amministratore predefinito, di connettersi tramite NTLM.Windows Server requires an additional registry setting to enable administrators, other than the built in administrator, to connect using NTLM. Vedere l'impostazione del registro di sistema LocalAccountTokenFilterPolicy in Negotiate Authentication in Authentication for Remote ConnectionsRefer to the LocalAccountTokenFilterPolicy registry setting under Negotiate Authentication in Authentication for Remote Connections

VEDERE ANCHESEE ALSO

about_Remoteabout_Remote

about_Remote_Variablesabout_Remote_Variables

about_PSSessionsabout_PSSessions

Invoke-CommandInvoke-Command

Enter-PSSessionEnter-PSSession

New-PSSessionNew-PSSession