Informazioni sulla risoluzione dei problemi remotiAbout Remote Troubleshooting

Breve descrizioneShort description

Viene descritto come risolvere i problemi relativi alle operazioni remote in PowerShell.Describes how to troubleshoot remote operations in PowerShell.

Descrizione lungaLong description

Questa sezione descrive alcuni dei problemi che possono verificarsi quando si usano le funzionalità di comunicazione remota di PowerShell basate sulla tecnologia WS-Management e suggerisce soluzioni a questi problemi.This section describes some of the problems that you might encounter when using the remoting features of PowerShell that are based on WS-Management technology and it suggests solutions to these problems.

Prima di usare la comunicazione remota di PowerShell, vedere about_Remote e about_Remote_Requirements per istruzioni sulla configurazione e sull'uso di base.Before using PowerShell remoting, see about_Remote and about_Remote_Requirements for guidance on configuration and basic use. Inoltre, gli argomenti della Guida per ogni cmdlet di comunicazione remota, in particolare le descrizioni dei parametri, presentano informazioni utili che consentono di evitare problemi.Also, the Help topics for each of the remoting cmdlets, particularly the parameter descriptions, have useful information that is designed to help you avoid problems.

Nota

Per visualizzare o modificare le impostazioni per il computer locale nell'unità WSMan:, incluse le modifiche alle configurazioni di sessione, agli host attendibili, alle porte o ai listener, avviare PowerShell con l'opzione Esegui come amministratore .To view or change settings for the local computer in the WSMan: drive, including changes to the session configurations, trusted hosts, ports, or listeners, start PowerShell with the Run as administrator option.

Risoluzione dei problemi di autorizzazione e autenticazioneTroubleshooting permission and authentication issues

In questa sezione vengono illustrati i problemi di comunicazione remota relativi a autorizzazioni utente e computer e ai requisiti di comunicazione remota.This section discusses remoting problems that are related to user and computer permissions and remoting requirements.

Come eseguire come amministratoreHow to run as administrator

ERROR: Access is denied. You need to run this cmdlet from an elevated
process.

Per avviare una sessione remota nel computer locale o per visualizzare o modificare le impostazioni del computer locale nell'unità WSMan:, incluse le modifiche alle configurazioni di sessione, agli host attendibili, alle porte o ai listener, avviare Windows PowerShell con l'opzione Esegui come amministratore .To start a remote session on the local computer, or to view or change settings for the local computer in the WSMan: drive, including changes to the session configurations, trusted hosts, ports, or listeners, start Windows PowerShell with the Run as administrator option.

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

  • Fare clic con il pulsante destro del mouse su un'icona di Windows PowerShell (o Windows PowerShell ISE), quindi scegliere Esegui come amministratore.Right-click a Windows PowerShell (or Windows PowerShell ISE) icon and then click Run as administrator.

    Per avviare Windows PowerShell con l'opzione Esegui come amministratore in Windows 7 e windows Server 2008 R2.To start Windows PowerShell with the Run as administrator option in Windows 7 and Windows Server 2008 R2.

  • Nella barra delle applicazioni di Windows fare clic con il pulsante destro del mouse sull'icona di Windows PowerShell, quindi scegliere Esegui come amministratore.In the Windows taskbar, right-click the Windows PowerShell icon, and then click Run as administrator.

    Per impostazione predefinita, in Windows Server 2008 R2 l'icona di Windows PowerShell è bloccata alla barra delle applicazioni.In Windows Server 2008 R2, the Windows PowerShell icon is pinned to the taskbar by default.

Come abilitare la comunicazione remotaHow to enable remoting

ERROR:  ACCESS IS DENIED

or

ERROR: The connection to the remote host was refused. Verify that the
WS-Management service is running on the remote host and configured to
listen for requests on the correct port and HTTP URL.

Non è necessaria alcuna configurazione per consentire a un computer di inviare comandi remoti.No configuration is required to enable a computer to send remote commands. Tuttavia, per ricevere comandi remoti, è necessario abilitare la comunicazione remota di PowerShell nel computer.However, to receive remote commands, PowerShell remoting must be enabled on the computer. L'abilitazione di include l'avvio del servizio gestione remota Windows, l'impostazione del tipo di avvio per il servizio WinRM su automatico, la creazione di listener per le connessioni HTTP e HTTPS e la creazione di configurazioni di sessione predefinite.Enabling includes starting the WinRM service, setting the startup type for the WinRM service to Automatic, creating listeners for HTTP and HTTPS connections, and creating default session configurations.

La comunicazione remota di Windows PowerShell è abilitata in Windows Server 2012 e nelle versioni più recenti di Windows Server per impostazione predefinita.Windows PowerShell remoting is enabled on Windows Server 2012 and newer releases of Windows Server by default. In tutti gli altri sistemi eseguire il Enable-PSRemoting cmdlet per abilitare la comunicazione remota.On all other systems, run the Enable-PSRemoting cmdlet to enable remoting. È anche possibile eseguire il Enable-PSRemoting cmdlet per abilitare nuovamente la comunicazione remota in Windows server 2012 e versioni più recenti di Windows Server se la comunicazione remota è disabilitata.You can also run the Enable-PSRemoting cmdlet to re-enable remoting on Windows Server 2012 and newer releases of Windows Server if remoting is disabled.

Per configurare un computer per la ricezione di comandi remoti, utilizzare il Enable-PSRemoting cmdlet.To configure a computer to receive remote commands, use the Enable-PSRemoting cmdlet. Il comando seguente abilita tutte le impostazioni remote obbligatorie, Abilita le configurazioni di sessione e riavvia il servizio WinRM per rendere effettive le modifiche.The following command enables all required remote settings, enables the session configurations, and restarts the WinRM service to make the changes effective.

Enable-PSRemoting

Per disattivare tutti i prompt utente, digitare:To suppress all user prompts, type:

Enable-PSRemoting -Force

Per ulteriori informazioni, vedere Enable-PSRemoting.For more information, see Enable-PSRemoting.

Come abilitare la comunicazione remota in un'organizzazioneHow to enable remoting in an enterprise

ERROR:  ACCESS IS DENIED

or

ERROR: The connection to the remote host was refused. Verify that the
WS-Management service is running on the remote host and configured to listen
for requests on the correct port and HTTP URL.

Per consentire a un singolo computer di ricevere comandi remoti di PowerShell e accettare connessioni, utilizzare il Enable-PSRemoting cmdlet.To enable a single computer to receive remote PowerShell commands and accept connections, use the Enable-PSRemoting cmdlet.

Per abilitare la comunicazione remota per più computer in un'organizzazione, è possibile usare le opzioni ridimensionate seguenti.To enable remoting for multiple computers in an enterprise, you can use the following scaled options.

  • Per configurare i listener per la comunicazione remota, abilitare i criteri di gruppo Consenti configurazione automatica dei listener .To configure listeners for remoting, enable the Allow automatic configuration of listeners group policy.

  • Per impostare il tipo di avvio del Gestione remota Windows (WinRM) su automatico su più computer, utilizzare il Set-Service cmdlet.To set the startup type of the Windows Remote Management (WinRM) to Automatic on multiple computers, use the Set-Service cmdlet.

  • Per abilitare un'eccezione del firewall, usare i criteri di gruppo Windows Firewall: Consenti eccezioni porta locale .To enable a firewall exception, use the Windows Firewall: Allow Local Port Exceptions group policy.

Come abilitare i listener tramite criteri di gruppoHow to enable listeners by using a group policy

ERROR:  ACCESS IS DENIED

or

ERROR: The connection to the remote host was refused. Verify that the
WS-Management service is running on the remote host and configured to listen
for requests on the correct port and HTTP URL.

Per configurare i listener per tutti i computer in un dominio, abilitare il criterio Consenti configurazione automatica dei listener nel percorso di criteri di gruppo seguente:To configure the listeners for all computers in a domain, enable the Allow automatic configuration of listeners policy in the following Group Policy path:

Computer Configuration\Administrative Templates\Windows Components
    \Windows Remote Management (WinRM)\WinRM service

Abilitare i criteri e specificare i filtri IPv4 e IPv6.Enable the policy and specify the IPv4 and IPv6 filters. *Sono consentiti i caratteri jolly ().Wildcards (*) are permitted.

Come abilitare la comunicazione remota nelle reti pubblicheHow to enable remoting on public networks

ERROR:  Unable to check the status of the firewall

Il Enable-PSRemoting cmdlet restituisce questo errore quando la rete locale è pubblica e il parametro SkipNetworkProfileCheck non viene usato nel comando.The Enable-PSRemoting cmdlet returns this error when the local network is public and the SkipNetworkProfileCheck parameter is not used in the command.

Nelle versioni server di Windows, ha Enable-PSRemoting esito positivo su tutti i tipi di percorso di rete.On server versions of Windows, Enable-PSRemoting succeeds on all network location types. Crea regole del firewall che consentono l'accesso remoto alle reti private e di dominio ("Home" e "Work").It creates firewall rules that allow remote access to private and domain ("Home" and "Work") networks. Per le reti pubbliche, vengono create regole del firewall che consentono l'accesso remoto dalla stessa subnet locale.For public networks, it creates firewall rules that allows remote access from the same local subnet.

Nelle versioni client di Windows, ha Enable-PSRemoting esito positivo su reti private e di dominio.On client versions of Windows, Enable-PSRemoting succeeds on private and domain networks. Per impostazione predefinita, si verifica un errore nelle reti pubbliche, ma se si usa il parametro SkipNetworkProfileCheck , ha Enable-PSRemoting esito positivo e crea una regola del firewall che consente il traffico dalla stessa subnet locale.By default, it fails on public networks, but if you use the SkipNetworkProfileCheck parameter, Enable-PSRemoting succeeds and creates a firewall rule that allows traffic from the same local subnet.

Per rimuovere la restrizione della subnet locale nelle reti pubbliche e consentire l'accesso remoto da qualsiasi percorso, eseguire il comando seguente:To remove the local subnet restriction on public networks and allow remote access from any location, run the following command:

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

Il Set-NetFirewallRule cmdlet viene esportato dal modulo NetSecurity.The Set-NetFirewallRule cmdlet is exported by the NetSecurity module.

Nota

In Windows PowerShell 2,0, nei computer che eseguono versioni server di Windows, Enable-PSRemoting Crea regole del firewall che consentono l'accesso remoto su reti private, di dominio e pubbliche.In Windows PowerShell 2.0, on computers running server versions of Windows, Enable-PSRemoting creates firewall rules that allow remote access on private, domain and public networks. Nei computer che eseguono versioni client di Windows, Enable-PSRemoting Crea regole del firewall che consentono l'accesso remoto solo su reti private e di dominio.On computers running client versions of Windows, Enable-PSRemoting creates firewall rules that allow remote access only on private and domain networks.

Come abilitare un'eccezione del firewall utilizzando un criterio di gruppoHow to enable a firewall exception by using a group policy

ERROR:  ACCESS IS DENIED

or

ERROR: The connection to the remote host was refused. Verify that the
WS-Management service is running on the remote host and configured to listen
for requests on the correct port and HTTP URL.

Per abilitare un'eccezione del firewall per in tutti i computer di un dominio, abilitare il criterio Windows Firewall: Consenti eccezioni per le porte locali nel seguente percorso criteri di gruppo:To enable a firewall exception for in all computers in a domain, enable the Windows Firewall: Allow local port exceptions policy in the following Group Policy path:

Computer Configuration\Administrative Templates\Network
    \Network Connections\Windows Firewall\Domain Profile

Questo criterio consente ai membri del gruppo Administrators nel computer di utilizzare Windows Firewall nel Pannello di controllo per creare un'eccezione del Firewall per il servizio gestione remota Windows.This policy allows members of the Administrators group on the computer to use Windows Firewall in Control Panel to create a firewall exception for the Windows Remote Management service.

Se la configurazione dei criteri non è corretta, è possibile che venga visualizzato l'errore seguente:If the policy configuration is incorrect you may receive the following error:

The client cannot connect to the destination specified in the request. Verify
that the service on the destination is running and is accepting requests.

Un errore di configurazione nei criteri genera un valore vuoto per la proprietà ListeningOn .A configuration error in the policy results in an empty value for the ListeningOn property. Usare il comando seguente per verificare il valore.Use the following command to check the value.

PS> Get-WSManInstance winrm/config/listener -Enumerate

cfg                   : http://schemas.microsoft.com/wbem/wsman/1/config/listener
xsi                   : http://www.w3.org/2001/XMLSchema-instance
Source                : GPO
lang                  : en-US
Address               : *
Transport             : HTTP
Port                  : 5985
Hostname              :
Enabled               : true
URLPrefix             : wsman
CertificateThumbprint :
ListeningOn           : {}

Come impostare il tipo di avvio del servizio gestione remota WindowsHow to set the startup type of the WinRM service

ERROR:  ACCESS IS DENIED

La comunicazione remota di PowerShell dipende dal servizio Gestione remota Windows (WinRM).PowerShell remoting depends upon the Windows Remote Management (WinRM) service. Il servizio deve essere in esecuzione per supportare i comandi remoti.The service must be running to support remote commands.

Nelle versioni server di Windows, il tipo di avvio del servizio Gestione remota Windows (WinRM) è automatico.On server versions of Windows, the startup type of the Windows Remote Management (WinRM) service is Automatic.

Tuttavia, nelle versioni client di Windows, il servizio WinRM è disabilitato per impostazione predefinita.However, on client versions of Windows, the WinRM service is disabled by default.

Per impostare il tipo di avvio di un servizio in un computer remoto, utilizzare il Set-Service cmdlet.To set the startup type of a service on a remote computer, use the Set-Service cmdlet.

Per eseguire il comando su più computer, è possibile creare un file di testo o un file CSV con i nomi dei computer.To run the command on multiple computers, you can create a text file or CSV file of the computer names.

Ad esempio, i comandi seguenti ottengono un elenco di nomi di computer dal Servers.txt file e quindi imposta il tipo di avvio del servizio WinRM su tutti i computer su automatico.For example, the following commands get a list of computer names from the Servers.txt file and then sets the startup type of the WinRM service on all of the computers to Automatic.

$servers = Get-Content servers.txt
Set-Service WinRM -ComputerName $servers -startuptype Automatic

Per visualizzare i risultati, usare il Get-WMIObject cmdlet con l'oggetto Win32_Service .To see the results use the Get-WMIObject cmdlet with the Win32_Service object. Per ulteriori informazioni, vedere set-service.For more information, see Set-Service.

Come ricreare le configurazioni di sessione predefiniteHow to recreate the default session configurations

ERROR:  ACCESS IS DENIED

Per connettersi al computer locale ed eseguire i comandi in modalità remota, è necessario che il computer locale includa le configurazioni di sessione per i comandi remoti.To connect to the local computer and run commands remotely, the local computer must include session configurations for remote commands.

Quando si usa Enable-PSRemoting , vengono create configurazioni di sessione predefinite nel computer locale.When you use Enable-PSRemoting, it creates default session configurations on the local computer. Gli utenti remoti usano queste configurazioni di sessione ogni volta che un comando remoto non include il parametro ConfigurationName .Remote users use these session configurations whenever a remote command does not include the ConfigurationName parameter.

Se vengono annullate la registrazione o l'eliminazione delle configurazioni predefinite in un computer, utilizzare il Enable-PSRemoting cmdlet per ricrearle.If the default configurations on a computer are unregistered or deleted, use the Enable-PSRemoting cmdlet to recreate them. È possibile utilizzare questo cmdlet ripetutamente.You can use this cmdlet repeatedly. Non genera errori se una funzionalità è già configurata.It does not generate errors if a feature is already configured.

Se si modificano le configurazioni di sessione predefinite e si desidera ripristinare le configurazioni di sessione predefinite originali, utilizzare il Unregister-PSSessionConfiguration cmdlet per eliminare le configurazioni di sessione modificate, quindi utilizzare il Enable-PSRemoting cmdlet per ripristinarle.If you change the default session configurations and want to restore the original default session configurations, use the Unregister-PSSessionConfiguration cmdlet to delete the changed session configurations and then use the Enable-PSRemoting cmdlet to restore them. Enable-PSRemoting non modifica le configurazioni di sessione esistenti.Enable-PSRemoting does not change existing session configurations.

Nota

Quando Enable-PSRemoting Ripristina la configurazione di sessione predefinita, non crea descrittori di sicurezza espliciti per le configurazioni.When Enable-PSRemoting restores the default session configuration, it does not create explicit security descriptors for the configurations. Al contrario, le configurazioni ereditano il descrittore di sicurezza di RootSDDL, che è sicuro per impostazione predefinita.Instead, the configurations inherit the security descriptor of the RootSDDL, which is secure by default.

Per visualizzare il descrittore di sicurezza RootSDDL, digitare:To see the RootSDDL security descriptor, type:

Get-Item wsman:\localhost\Service\RootSDDL

Per modificare il RootSDDL, usare il Set-Item cmdlet nell'unità WSMan:.To change the RootSDDL, use the Set-Item cmdlet in the WSMan: drive. Per modificare il descrittore di sicurezza di una configurazione di sessione, usare il Set-PSSessionConfiguration cmdlet con i parametri SecurityDescriptorSDDL o ShowSecurityDescriptorUI .To change the security descriptor of a session configuration, use the Set-PSSessionConfiguration cmdlet with the SecurityDescriptorSDDL or ShowSecurityDescriptorUI parameters.

Per ulteriori informazioni sull'unità WSMan:, vedere l'argomento della Guida relativo al provider WSMan ("Get-Help wsman").For more information about the WSMan: drive, see the Help topic for the WSMan provider ("Get-Help wsman").

Come fornire le credenziali di amministratoreHow to provide administrator credentials

ERROR:  ACCESS IS DENIED

Per creare una sessione PSSession o eseguire comandi in un computer remoto, per impostazione predefinita, l'utente corrente deve essere un membro del gruppo Administrators nel computer remoto.To create a PSSession or run commands on a remote computer, by default, the current user must be a member of the Administrators group on the remote computer. Le credenziali sono talvolta necessarie anche quando l'utente corrente è connesso a un account membro del gruppo Administrators.Credentials are sometimes required even when the current user is logged on to an account that is a member of the Administrators group.

Se l'utente corrente è un membro del gruppo Administrators nel computer remoto oppure può fornire le credenziali di un membro del gruppo Administrators, utilizzare il parametro Credential del New-PSSession Enter-PSSession Invoke-Command cmdlet o per connettersi in modalità remota.If the current user is a member of the Administrators group on the remote computer, or can provide the credentials of a member of the Administrators group, use the Credential parameter of the New-PSSession, Enter-PSSession or Invoke-Command cmdlets to connect remotely.

Il comando seguente, ad esempio, fornisce le credenziali di un amministratore.For example, the following command provides the credentials of an Administrator.

Invoke-Command -ComputerName Server01 -Credential Domain01\Admin01

Per ulteriori informazioni sul parametro Credential , vedere New-PSSession, Enter-PSSession o Invoke-Command.For more information about the Credential parameter, see New-PSSession, Enter-PSSession or Invoke-Command.

Come abilitare la comunicazione remota per gli utenti non amministrativiHow to enable remoting for non-administrative users

ERROR:  ACCESS IS DENIED

Per stabilire una sessione PSSession o eseguire un comando in un computer remoto, l'utente deve disporre dell'autorizzazione per utilizzare le configurazioni di sessione nel computer remoto.To establish a PSSession or run a command on a remote computer, the user must have permission to use the session configurations on the remote computer.

Per impostazione predefinita, solo i membri del gruppo Administrators in un computer dispongono delle autorizzazioni per utilizzare le configurazioni di sessione predefinite.By default, only members of the Administrators group on a computer have permission to use the default session configurations. Pertanto, solo i membri del gruppo Administrators possono connettersi al computer in modalità remota.Therefore, only members of the Administrators group can connect to the computer remotely.

Per consentire ad altri utenti di connettersi al computer locale, concedere all'utente le autorizzazioni di esecuzione per le configurazioni di sessione predefinite nel computer locale.To allow other users to connect to the local computer, give the user Execute permissions to the default session configurations on the local computer.

Il comando che segue apre una finestra delle proprietà che consente di modificare il descrittore di sicurezza della configurazione di sessione Microsoft. PowerShell predefinita nel computer locale.The following command opens a property sheet that lets you change the security descriptor of the default Microsoft.PowerShell session configuration on the local computer.

Set-PSSessionConfiguration Microsoft.PowerShell -ShowSecurityDescriptorUI

Per ulteriori informazioni, vedere about_Session_Configurations.For more information, see about_Session_Configurations.

Come abilitare la comunicazione remota per gli amministratori in altri dominiHow to enable remoting for administrators in other domains

ERROR:  ACCESS IS DENIED

Quando un utente di un altro dominio è membro del gruppo Administrators nel computer locale, l'utente non può connettersi al computer locale in remoto con privilegi di amministratore.When a user in another domain is a member of the Administrators group on the local computer, the user cannot connect to the local computer remotely with Administrator privileges. Per impostazione predefinita, le connessioni remote da altri domini vengono eseguite con solo token di privilegi utente standard.By default, remote connections from other domains run with only standard user privilege tokens.

Tuttavia, è possibile usare la voce del registro di sistema LocalAccountTokenFilterPolicy per modificare il comportamento predefinito e consentire agli utenti remoti che sono membri del gruppo Administrators di eseguire con privilegi di amministratore.However, you can use the LocalAccountTokenFilterPolicy registry entry to change the default behavior and allow remote users who are members of the Administrators group to run with Administrator privileges.

Attenzione

La voce LocalAccountTokenFilterPolicy Disabilita le restrizioni remote del controllo dell'account utente (UAC) per tutti gli utenti di tutti i computer interessati.The LocalAccountTokenFilterPolicy entry disables user account control (UAC) remote restrictions for all users of all affected computers. Considerare con attenzione le implicazioni di questa impostazione prima di modificare i criteri.Consider the implications of this setting carefully before changing the policy.

Per modificare il criterio, utilizzare il comando seguente per impostare il valore della voce del registro di sistema LocalAccountTokenFilterPolicy su 1.To change the policy, use the following command to set the value of the LocalAccountTokenFilterPolicy registry entry to 1.

New-ItemProperty -Name LocalAccountTokenFilterPolicy `
  -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System `
  -PropertyType DWord -Value 1

Come usare un indirizzo IP in un comando remotoHow to use an ip address in a remote command

ERROR: The WinRM client cannot process the request. If the authentication
scheme is different from Kerberos, or if the client computer is not joined to a
domain, then HTTPS transport must be used or the destination machine must be
added to the TrustedHosts configuration setting.

Il parametro ComputerName dei New-PSSession Enter-PSSession Invoke-Command cmdlet e accetta un indirizzo IP come valore valido.The ComputerName parameter of the New-PSSession, Enter-PSSession and Invoke-Command cmdlets accepts an IP address as a valid value. Tuttavia, poiché l'autenticazione Kerberos non supporta gli indirizzi IP, l'autenticazione NTLM viene utilizzata per impostazione predefinita ogni volta che si specifica un indirizzo IP.However, because Kerberos authentication does not support IP addresses, NTLM authentication is used by default whenever you specify an IP address.

Quando si usa l'autenticazione NTLM, è necessaria la procedura seguente per la comunicazione remota.When using NTLM authentication, the following procedure is required for remoting.

  1. Configurare il computer per il trasporto HTTPS o aggiungere gli indirizzi IP dei computer remoti all'elenco TrustedHosts nel computer locale.Configure the computer for HTTPS transport or add the IP addresses of the remote computers to the TrustedHosts list on the local computer.

  2. Usare il parametro Credential in tutti i comandi remoti.Use the Credential parameter in all remote commands.

    Questa operazione è necessaria anche quando si inviano le credenziali dell'utente corrente.This is required even when you are submitting the credentials of the current user.

Come connettersi in remoto da un computer basato su un gruppo di lavoroHow to connect remotely from a workgroup-based computer

ERROR: The WinRM client cannot process the request. If the authentication
scheme is different from Kerberos, or if the client computer is not joined to a
domain, then HTTPS transport must be used or the destination machine must be
added to the TrustedHosts configuration setting.

Quando il computer locale non si trova in un dominio, è necessaria la procedura seguente per la comunicazione remota.When the local computer is not in a domain, the following procedure is required for remoting.

  1. Configurare il computer per il trasporto HTTPS o aggiungere i nomi dei computer remoti all'elenco TrustedHosts nel computer locale.Configure the computer for HTTPS transport or add the names of the remote computers to the TrustedHosts list on the local computer.

  2. Verificare che nel computer basato su gruppo di lavoro sia impostata una password.Verify that a password is set on the workgroup-based computer. Se una password non è impostata o il valore della password è vuoto, non è possibile eseguire comandi remoti.If a password is not set or the password value is empty, you cannot run remote commands.

    Per impostare la password per l'account utente, utilizzare gli account utente nel pannello di controllo.To set password for your user account, use User Accounts in Control Panel.

  3. Usare il parametro Credential in tutti i comandi remoti.Use the Credential parameter in all remote commands.

    Questa operazione è necessaria anche quando si inviano le credenziali dell'utente corrente.This is required even when you are submitting the credentials of the current user.

Come aggiungere un computer all'elenco di host attendibiliHow to add a computer to the trusted hosts list

L'elemento TrustedHosts può contenere un elenco delimitato da virgole di nomi di computer, indirizzi IP e nomi di dominio completi.The TrustedHosts item can contain a comma-separated list of computer names, IP addresses, and fully-qualified domain names. I caratteri jolly sono consentiti.Wildcards are permitted.

Per visualizzare o modificare l'elenco di host attendibili, usare l'unità WSMan:.To view or change the trusted host list, use the WSMan: drive. L'elemento TrustedHost si trova nel WSMan:\localhost\Client nodo.The TrustedHost item is in the WSMan:\localhost\Client node.

Solo i membri del gruppo Administrators nel computer dispongono delle autorizzazioni per modificare l'elenco di host attendibili nel computer.Only members of the Administrators group on the computer have permission to change the list of trusted hosts on the computer.

Attenzione: il valore impostato per l'elemento TrustedHosts influiscono su tutti gli utenti del computer.Caution: The value that you set for the TrustedHosts item affects all users of the computer.

Per visualizzare l'elenco di host attendibili, utilizzare il comando seguente:To view the list of trusted hosts, use the following command:

Get-Item wsman:\localhost\Client\TrustedHosts

È anche possibile usare il Set-Location cmdlet (alias = CD) per spostarsi nell'unità WSMan: nel percorso.You can also use the Set-Location cmdlet (alias = cd) to navigate though the WSMan: drive to the location. Ad esempio:For example:

cd WSMan:\localhost\Client; dir

Per aggiungere tutti i computer all'elenco di host attendibili, utilizzare il comando seguente, che inserisce il valore * (tutti) nel ComputerNameTo add all computers to the list of trusted hosts, use the following command, which places a value of * (all) in the ComputerName

Set-Item wsman:localhost\client\trustedhosts -Value *

È anche possibile usare un carattere jolly ( * ) per aggiungere tutti i computer di un dominio specifico all'elenco di host attendibili.You can also use a wildcard character (*) to add all computers in a particular domain to the list of trusted hosts. Ad esempio, il comando seguente aggiunge tutti i computer nel dominio Fabrikam all'elenco di host attendibili.For example, the following command adds all of the computers in the Fabrikam domain to the list of trusted hosts.

Set-Item wsman:localhost\client\trustedhosts *.fabrikam.com

Per aggiungere i nomi di determinati computer all'elenco di host attendibili, utilizzare il seguente formato di comando:To add the names of particular computers to the list of trusted hosts, use the following command format:

Set-Item wsman:\localhost\Client\TrustedHosts -Value <ComputerName>

dove ogni valore <ComputerName> deve avere il formato seguente:where each value <ComputerName> must have the following format:

<Computer>.<Domain>.<Company>.<top-level-domain>

Ad esempio:For example:

$server = 'Server01.Domain01.Fabrikam.com'
Set-Item wsman:\localhost\Client\TrustedHosts -Value $server

Per aggiungere un nome computer a un elenco esistente di host attendibili, salvare innanzitutto il valore corrente in una variabile, quindi impostare il valore su un elenco delimitato da virgole che include i valori correnti e quelli nuovi.To add a computer name to an existing list of trusted hosts, first save the current value in a variable, and then set the value to a comma-separated list that includes the current and new values.

Ad esempio, per aggiungere il computer Server01 a un elenco esistente di host attendibili, utilizzare il comando seguente.For example, to add the Server01 computer to an existing list of trusted hosts, use the following command

$curValue = (Get-Item wsman:\localhost\Client\TrustedHosts).value

Set-Item wsman:\localhost\Client\TrustedHosts -Value `
  "$curValue, Server01.Domain01.Fabrikam.com"

Per aggiungere gli indirizzi IP di determinati computer all'elenco di host attendibili, utilizzare il seguente formato di comando:To add the IP addresses of particular computers to the list of trusted hosts, use the following command format:

Set-Item wsman:\localhost\Client\TrustedHosts -Value <IP Address>

Ad esempio:For example:

Set-Item wsman:\localhost\Client\TrustedHosts -Value 172.16.0.0

Per aggiungere un computer all'elenco TrustedHosts di un computer remoto, usare il Connect-WSMan cmdlet per aggiungere un nodo per il computer remoto all'unità WSMan: nel computer locale.To add a computer to the TrustedHosts list of a remote computer, use the Connect-WSMan cmdlet to add a node for the remote computer to the WSMan: drive on the local computer. Usare quindi un Set-Item comando per aggiungere il computer.Then use a Set-Item command to add the computer.

Per ulteriori informazioni sul Connect-WSMan cmdlet, vedere Connect-WSMan.For more information about the Connect-WSMan cmdlet, see Connect-WSMan.

Risoluzione dei problemi di configurazione del computerTroubleshooting computer configuration issues

In questa sezione vengono illustrati i problemi di comunicazione remota correlati a configurazioni specifiche di un computer, di un dominio o di un'azienda.This section discusses remoting problems that are related to particular configurations of a computer, domain, or enterprise.

Come configurare la comunicazione remota su porte alternativeHow to configure remoting on alternate ports

ERROR: The connection to the specified remote host was refused. Verify that the
WS-Management service is running on the remote host and configured to listen
for requests on the correct port and HTTP URL.

Per impostazione predefinita, la comunicazione remota di PowerShell usa la porta 80 per il trasporto HTTP.PowerShell remoting uses port 80 for HTTP transport by default. La porta predefinita viene usata ogni volta che l'utente non specifica i parametri ConnectionURI o Port in un comando remoto.The default port is used whenever the user does not specify the ConnectionURI or Port parameters in a remote command.

Per modificare la porta predefinita utilizzata da PowerShell, utilizzare Set-Item il cmdlet nell'unità WSMan: per modificare il valore della porta nel nodo foglia del listener.To change the default port that PowerShell uses, use Set-Item cmdlet in the WSMan: drive to change the Port value in the listener leaf node.

Ad esempio, il comando seguente imposta la porta predefinita su 8080.For example, the following command changes the default port to 8080.

Set-Item wsman:\localhost\listener\listener*\port -Value 8080

Come configurare la comunicazione remota con un server proxyHow to configure remoting with a proxy server

ERROR: The client cannot connect to the destination specified in the request.
Verify that the service on the destination is running and is accepting
requests.

Poiché la comunicazione remota di PowerShell usa il protocollo HTTP, è interessata dalle impostazioni del proxy HTTP.Because PowerShell remoting uses the HTTP protocol, it is affected by HTTP proxy settings. Nelle aziende che dispongono di server proxy, gli utenti non possono accedere direttamente a un computer remoto PowerShell.In enterprises that have proxy servers, users cannot access a PowerShell remote computer directly.

Per risolvere il problema, usare le opzioni di impostazione del proxy nel comando remoto.To resolve this problem, use proxy setting options in your remote command. Sono disponibili le impostazioni seguenti:The following settings are available:

  • ProxyAccessTypeProxyAccessType
  • ProxyAuthenticationProxyAuthentication
  • ProxyCredentialProxyCredential

Per impostare queste opzioni per un particolare comando, attenersi alla procedura seguente:To set these options for a particular command, use the following procedure:

  1. Usare i parametri ProxyAccessType , ProxyAuthentication e ProxyCredential del New-PSSessionOption cmdlet per creare un oggetto opzione di sessione con le impostazioni proxy per l'azienda.Use the ProxyAccessType , ProxyAuthentication , and ProxyCredential parameters of the New-PSSessionOption cmdlet to create a session option object with the proxy settings for your enterprise. Salva l'oggetto Option è una variabile.Save the option object is a variable.

  2. Utilizzare la variabile che contiene l'oggetto Option come valore del parametro SessionOption di un New-PSSession Enter-PSSession comando, o Invoke-Command .Use the variable that contains the option object as the value of the SessionOption parameter of a New-PSSession, Enter-PSSession, or Invoke-Command command.

Ad esempio, il comando seguente crea un oggetto opzione di sessione con le opzioni della sessione proxy e quindi usa l'oggetto per creare una sessione remota.For example, the following command creates a session option object with proxy session options and then uses the object to create a remote session.

$SessionOption = New-PSSessionOption -ProxyAccessType IEConfig `
-ProxyAuthentication Negotiate -ProxyCredential Domain01\User01

New-PSSession -ConnectionURI https://www.fabrikam.com

Per ulteriori informazioni sul New-PSSessionOption cmdlet, vedere New-PSSessionOption.For more information about the New-PSSessionOption cmdlet, see New-PSSessionOption.

Per impostare queste opzioni per tutti i comandi remoti della sessione corrente, usare l'oggetto Option New-PSSessionOption creato nel valore della variabile di $PSSessionOption preferenza.To set these options for all remote commands in the current session, use the option object that New-PSSessionOption creates in the value of the $PSSessionOption preference variable. Per ulteriori informazioni, vedere about_Preference_Variables.For more information, see about_Preference_Variables.

Per impostare queste opzioni per tutti i comandi remoti in tutte le sessioni di PowerShell nel computer locale, aggiungere la $PSSessionOption variabile di preferenza al profilo di PowerShell.To set these options for all remote commands all PowerShell sessions on the local computer, add the $PSSessionOption preference variable to your PowerShell profile. Per ulteriori informazioni sui profili di PowerShell, vedere about_Profiles.For more information about PowerShell profiles, see about_Profiles.

Come rilevare una sessione a 32 bit in un computer a 64 bitHow to detect a 32-bit session on a 64-bit computer

ERROR: The term "<tool-Name>" is not recognized as the name of a cmdlet,
function, script file, or operable program. Check the spelling of the name, or
if a path was included, verify that the path is correct and try again.

Se il computer remoto esegue una versione a 64 bit di Windows e il comando remoto utilizza una configurazione di sessione a 32 bit, ad esempio Microsoft. PowerShell32, Gestione remota Windows (WinRM) carica un processo WOW64 e Windows reindirizza automaticamente tutti i riferimenti alla $env:Windir\System32 directory alla directory $env:Windir\SysWOW64 .If the remote computer is running a 64-bit version of Windows, and the remote command is using a 32-bit session configuration, such as Microsoft.PowerShell32, Windows Remote Management (WinRM) loads a WOW64 process and Windows automatically redirects all references to the $env:Windir\System32 directory to the $env:Windir\SysWOW64 directory.

Di conseguenza, se si tenta di utilizzare gli strumenti nella directory system32 che non dispongono di controparti nella directory SysWow64, ad esempio Defrag.exe , non è possibile trovare gli strumenti nella directory.As a result, if you try to use tools in the System32 directory that do not have counterparts in the SysWow64 directory, such as Defrag.exe, the tools cannot be found in the directory.

Per trovare l'architettura del processore usata nella sessione, usare il valore della variabile di ambiente PROCESSOR_ARCHITECTURE .To find the processor architecture that is being used in the session, use the value of the PROCESSOR_ARCHITECTURE environment variable. Il comando seguente consente di trovare l'architettura del processore della sessione nella $s variabile.The following command finds the processor architecture of the session in the $s variable.

$s = New-PSSession -ComputerName Server01 -ConfigurationName CustomShell
Invoke-Command -Session $s {$env:PROCESSOR_ARCHITECTURE}
x86

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

Risoluzione dei problemi relativi a criteri e preferenzeTroubleshooting policy and preference issues

In questa sezione vengono illustrati i problemi di comunicazione remota correlati a criteri e preferenze impostati nei computer locali e remoti.This section discusses remoting problems that are related to policies and preferences set on the local and remote computers.

Come modificare i criteri di esecuzione per Import-PSSession e Import-ModuleHow to change the execution policy for Import-PSSession and Import-Module

ERROR: Import-Module: File <filename> cannot be loaded because the
execution of scripts is disabled on this system.

I Import-PSSession Export-PSSession cmdlet e creano moduli che contengono file di script e file di formattazione non firmati.The Import-PSSession and Export-PSSession cmdlets create modules that contains unsigned script files and formatting files.

Per importare i moduli creati da questi cmdlet, usando Import-PSSession o Import-Module , i criteri di esecuzione nella sessione corrente non possono essere limitati o AllSigned.To import the modules that are created by these cmdlets, either by using Import-PSSession or Import-Module, the execution policy in the current session cannot be Restricted or AllSigned. Per informazioni sui criteri di esecuzione di PowerShell, vedere about_Execution_Policies.For information about PowerShell execution policies, see about_Execution_Policies.

Per importare i moduli senza modificare i criteri di esecuzione per il computer locale impostato nel registro di sistema, usare il parametro scope di Set-ExecutionPolicy per impostare un criterio di esecuzione meno restrittivo per un singolo processo.To import the modules without changing the execution policy for the local computer that is set in the registry, use the Scope parameter of Set-ExecutionPolicy to set a less restrictive execution policy for a single process.

Ad esempio, il comando seguente avvia un processo con i RemoteSigned criteri di esecuzione.For example, the following command starts a process with the RemoteSigned execution policy. La modifica dei criteri di esecuzione influiscono solo sul processo corrente e non modifica l'impostazione del registro di sistema di PowerShell ExecutionPolicy .The execution policy change affects only the current process and does not change the PowerShell ExecutionPolicy registry setting.

Set-ExecutionPolicy -Scope process -ExecutionPolicy RemoteSigned

È anche possibile usare il parametro ExecutionPolicy di PowerShell.exe per avviare una singola sessione con un criterio di esecuzione meno restrittivo.You can also use the ExecutionPolicy parameter of PowerShell.exe to start a single session with a less restrictive execution policy.

PowerShell.exe -ExecutionPolicy RemoteSigned

Per ulteriori informazioni sui criteri di esecuzione, vedere about_Execution_Policies.For more information about execution policies, see about_Execution_Policies. Per ulteriori informazioni, digitare PowerShell.exe -?.For more information, type PowerShell.exe -?.

Come impostare e modificare le quoteHow to set and change quotas

ERROR: The total data received from the remote client exceeded allowed
maximum.

È possibile utilizzare le quote per proteggere il computer locale e il computer remoto da un utilizzo eccessivo delle risorse, sia accidentale che dannose.You can use quotas to protect the local computer and the remote computer from excessive resource use, both accidental and malicious.

Le seguenti quote sono disponibili nella configurazione di base.The following quotas are available in the basic configuration.

  • Il provider WSMan (WSMan:) in sono disponibili diverse impostazioni di quota, ad esempio le impostazioni MaxEnvelopeSizekb e MaxProviderRequests nel WSMan:<ComputerName> nodo e le impostazioni MaxConcurrentOperations , Proprietà MaxConcurrentOperationsPerUser e MaxConnections nel WSMan:<ComputerName>\Service nodo.The WSMan provider (WSMan:) provides several quota settings, such as the MaxEnvelopeSizeKB and MaxProviderRequests settings in the WSMan:<ComputerName> node and the MaxConcurrentOperations , MaxConcurrentOperationsPerUser , and MaxConnections settings in the WSMan:<ComputerName>\Service node.

  • È possibile proteggere il computer locale usando i parametri MaximumReceivedDataSizePerCommand e MaximumReceivedObjectSize del New-PSSessionOption cmdlet e la variabile di $PSSessionOption preferenza.You can protect the local computer by using the MaximumReceivedDataSizePerCommand and MaximumReceivedObjectSize parameters of the New-PSSessionOption cmdlet and the $PSSessionOption preference variable.

  • È possibile proteggere il computer remoto aggiungendo restrizioni alle configurazioni di sessione, ad esempio usando i parametri MaximumReceivedDataSizePerCommandMB e MaximumReceivedObjectSizeMB del Register-PSSessionConfiguration cmdlet.You can protect the remote computer by adding restrictions to the session configurations, such as by using the MaximumReceivedDataSizePerCommandMB and MaximumReceivedObjectSizeMB parameters of the Register-PSSessionConfiguration cmdlet.

Quando le quote sono in conflitto con un comando, PowerShell genera un errore.When quotas conflict with a command, PowerShell generates an error.

Per risolvere l'errore, modificare il comando remoto in modo che sia conforme alla quota.To resolve the error, change the remote command to comply with the quota. In alternativa, determinare l'origine della quota e quindi aumentare la quota per consentire il completamento del comando.Or, determine the source of the quota, and then increase the quota to allow the command to complete.

Ad esempio, il comando seguente aumenta la quota delle dimensioni dell'oggetto nella configurazione di sessione Microsoft. PowerShell nel computer remoto da 10 MB (valore predefinito) a 11 MB.For example, the following command increases the object size quota in the Microsoft.PowerShell session configuration on the remote computer from 10 MB (the default value) to 11 MB.

Set-PSSessionConfiguration -Name microsoft.PowerShell `
  -MaximumReceivedObjectSizeMB 11 -Force

Per ulteriori informazioni sul New-PSSessionOption cmdlet, vedere New-PSSessionOption .For more information about the New-PSSessionOption cmdlet, see New-PSSessionOption.

Per ulteriori informazioni sulle quote di WS-Management, vedere about_WSMan_Provider.For more information about the WS-Management quotas, see about_WSMan_Provider.

Come risolvere gli errori di timeoutHow to resolve timeout errors

ERROR: The WS-Management service cannot complete the operation within
the time specified in OperationTimeout.

È possibile utilizzare i timeout per proteggere il computer locale e il computer remoto da un utilizzo eccessivo delle risorse, sia accidentale che dannose.You can use timeouts to protect the local computer and the remote computer from excessive resource use, both accidental and malicious. Quando i timeout sono impostati sia nel computer locale che in quello remoto, PowerShell usa le impostazioni di timeout più brevi.When timeouts are set on both the local and remote computer, PowerShell uses the shortest timeout settings.

I timeout seguenti sono disponibili nella configurazione di base.The following timeouts are available in the basic configuration.

  • Il provider WSMan (WSMan:) in sono disponibili diverse impostazioni di timeout lato client e lato servizio, ad esempio l'impostazione MaxTimeoutms nel WSMan:<ComputerName> nodo e le impostazioni EnumerationTimeoutms e MaxPacketRetrievalTimeSeconds nel WSMan:<ComputerName>\Service nodo.The WSMan provider (WSMan:) provides several client-side and service-side timeout settings, such as the MaxTimeoutms setting in the WSMan:<ComputerName> node and the EnumerationTimeoutms and MaxPacketRetrievalTimeSeconds settings in the WSMan:<ComputerName>\Service node.

  • È possibile proteggere il computer locale usando i parametri CancelTimeout , IdleTimeout , OpenTimeout e OperationTimeout del New-PSSessionOption cmdlet e la $PSSessionOption variabile di preferenza.You can protect the local computer by using the CancelTimeout , IdleTimeout , OpenTimeout , and OperationTimeout parameters of the New-PSSessionOption cmdlet and the $PSSessionOption preference variable.

  • È anche possibile proteggere il computer remoto impostando i valori di timeout a livello di codice nella configurazione di sessione per la sessione.You can also protect the remote computer by setting timeout values programmatically in the session configuration for the session.

Quando un valore di timeout non consente il completamento di un'operazione, PowerShell interrompe l'operazione e genera un errore.When a timeout value does not permit a operation to complete, PowerShell terminates the operation and generates an error.

Per risolvere l'errore, modificare il comando in modo che venga completato entro l'intervallo di timeout oppure determinare l'origine del limite di timeout e aumentare l'intervallo di timeout per consentire il completamento del comando.To resolve the error, change the command to complete within the timeout interval or determine the source of the timeout limit and increase the timeout interval to allow the command to complete.

Ad esempio, i comandi seguenti usano il New-PSSessionOption cmdlet per creare un oggetto opzione di sessione con un valore OperationTimeout di 4 minuti (in MS) e quindi usare l'oggetto opzione di sessione per creare una sessione remota.For example, the following commands use the New-PSSessionOption cmdlet to create a session option object with an OperationTimeout value of 4 minutes (in MS) and then use the session option object to create a remote session.

$pso = New-PSSessionoption -OperationTimeout 240000

New-PSSession -ComputerName Server01 -sessionOption $pso

Per ulteriori informazioni sui timeout WS-Management, vedere l'argomento della Guida per il provider WSMan (tipo Get-Help WSMan ).For more information about the WS-Management timeouts, see the Help topic for the WSMan provider (type Get-Help WSMan).

Per ulteriori informazioni sul New-PSSessionOption cmdlet, vedere New-PSSessionOption.For more information about the New-PSSessionOption cmdlet, see New-PSSessionOption.

Risoluzione dei problemi relativi al comportamento che non rispondeTroubleshooting unresponsive behavior

In questa sezione vengono illustrati i problemi di comunicazione remota che impediscono a un comando di completare e impedire o ritardare il ritorno del prompt di PowerShell.This section discusses remoting problems that prevent a command from completing and prevent or delay the return of the PowerShell prompt.

Come interrompere un comandoHow to interrupt a command

Alcuni programmi Windows nativi, ad esempio programmi con un'interfaccia utente, applicazioni console che richiedono l'input e applicazioni console che usano l'API della console Win32, non funzionano correttamente nell'host remoto di PowerShell.Some native Windows programs, such as programs with a user interface, console applications that prompt for input, and console applications that use the Win32 console API, do not work correctly in the PowerShell remote host.

Quando si usano questi programmi, potrebbe essere visualizzato un comportamento imprevisto, ad esempio nessun output, output parziale o un comando remoto che non viene completato.When you use these programs, you might see unexpected behavior, such as no output, partial output, or a remote command that does not complete.

Per terminare un programma che non risponde, digitare CTRL + C.To end an unresponsive program, type CTRL+C. Per visualizzare eventuali errori segnalati, digitare $error nell'host locale e nella sessione remota.To view any errors that might have been reported, type $error in the local host and the remote session.

Come eseguire il ripristino da un errore dell'operazioneHow to recover from an operation failure

ERROR: The I/O operation has been aborted because of either a thread exit
or an  application request.

Questo errore viene restituito quando un'operazione viene terminata prima del completamento.This error is returned when an operation is terminated before it completes. In genere, si verifica quando il servizio WinRM viene arrestato o riavviato mentre sono in corso altre operazioni di WinRM.Typically, it occurs when the WinRM service stops or restarts while other WinRM operations are in progress.

Per risolvere questo problema, verificare che il servizio gestione remota Windows sia in esecuzione e ripetere il comando.To resolve this issue, verify that the WinRM service is running and try the command again.

  1. Avviare PowerShell con l'opzione Esegui come amministratore .Start PowerShell with the Run as administrator option.

  2. Eseguire il comando seguente:Run the following command:

    Start-Service WinRM

  3. Eseguire di nuovo il comando che ha generato l'errore.Re-run the command that generated the error.

Limitazioni di Linux e macOSLinux and macOS limitations

AuthenticationAuthentication

Solo l'autenticazione di base funziona in macOS e il tentativo di usare altri schemi di autenticazione può comportare l'arresto anomalo del processo.Only basic authentication works on macOS and attempting to use other authentication schemes may result in the process crashing.

Vedere le istruzioni per l' autenticazione OMI .Please see the OMI authentication instructions.

VEDERE ANCHESEE ALSO

Import-PSSessionImport-PSSession

Export-PSSessionExport-PSSession

Import-ModuleImport-Module

about_Remoteabout_Remote

about_Remote_Requirementsabout_Remote_Requirements

about_Remote_Variablesabout_Remote_Variables