about_Remote_Troubleshooting

Krátký popis

Popisuje, jak řešit potíže se vzdálenými operacemi v PowerShellu.

Dlouhý popis

Než začnete používat vzdálené komunikace PowerShellu, přečtěte si about_Remote a about_Remote_Requirements, kde najdete pokyny ke konfiguraci a základnímu použití.

Abyste mohli zobrazit nebo změnit nastavení místního počítače na WSMan: jednotce, musíte mít oprávnění správce. To zahrnuje změny konfigurace relace, důvěryhodných hostitelů, portů nebo naslouchacích procesů.

Musíte spustit PowerShell s možností Spustit jako správce .

Jak spustit jako správce

Chyba:

CHYBA: Přístup byl odepřen. Tuto rutinu musíte spustit z procesu se zvýšenými oprávněními.

Pokud chcete spustit Windows PowerShell s možností Spustit jako správce , klikněte pravým tlačítkem myši na ikonu PowerShellu v nabídce Start a vyberte Spustit jako správce.

Povolení vzdálené komunikace

Chyby:

  • CHYBA: PŘÍSTUP BYL ODEPŘEN.
  • CHYBA: Připojení ke vzdálenému hostiteli bylo odmítnuto. Ověřte, že služba WS-Management běží na vzdáleném hostiteli a je nakonfigurovaná tak, aby naslouchala požadavkům na správném portu a adrese URL PROTOKOLU HTTP.

Pokud chcete přijímat vzdálené příkazy, musí být v počítači povolená vzdálená komunikace PowerShellu. Vzdálenou komunikace Windows PowerShellu je ve výchozím nastavení povolená ve Windows Serveru 2012 a novějších verzích Windows Serveru. Pokud byla zakázaná, můžete ji spustit Enable-PSRemoting a znovu povolit vzdálené komunikace. Další informace naleznete v tématu Enable-PSRemoting.

Povolení vzdálené komunikace v podniku

Chyby:

  • CHYBA: PŘÍSTUP BYL ODEPŘEN.
  • CHYBA: Připojení ke vzdálenému hostiteli bylo odmítnuto. Ověřte, že služba WS-Management běží na vzdáleném hostiteli a je nakonfigurovaná tak, aby naslouchala požadavkům na správném portu a adrese URL PROTOKOLU HTTP.

Pokud chcete povolit, aby jeden počítač přijímal vzdálené příkazy PowerShellu a přijímal připojení, použijte tuto rutinu Enable-PSRemoting .

Pokud chcete povolit vzdálené komunikace pro více počítačů v podniku, můžete použít následující škálované možnosti.

  • Povolení automatické konfigurace zásad skupiny naslouchacích procesů ke konfiguraci naslouchacích procesů pro vzdálené komunikace
  • Nakonfigurujte a povolte bránu Windows Firewall: Povolit zásady skupiny výjimek místních portů.
  • Nastavte typ spuštění služby WinRM na Automatic a spusťte službu.

Povolení naslouchacích procesů pomocí zásad skupiny

Chyby:

  • CHYBA: PŘÍSTUP BYL ODEPŘEN.
  • CHYBA: Připojení ke vzdálenému hostiteli bylo odmítnuto. Ověřte, že služba WS-Management běží na vzdáleném hostiteli a je nakonfigurovaná tak, aby naslouchala požadavkům na správném portu a adrese URL PROTOKOLU HTTP.

Povolte zásadu Povolit automatickou konfiguraci naslouchacích procesů a nakonfigurujte naslouchací procesy pro všechny počítače v doméně.

Tato zásada se nachází v následující cestě zásad skupiny:

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

Povolte zásadu a zadejte filtry IPv4 a IPv6. Jsou povoleny zástupné cardy (*).

Povolení vzdálené komunikace ve veřejných sítích

Enable-PSRemoting vrátí tuto chybu, pokud je místní síť veřejná a parametr SkipNetworkProfileCheck se v příkazu nepoužívá.

CHYBA: Nejde zkontrolovat stav brány firewall

Na serverových verzích Windows proběhne Enable-PSRemoting úspěšně ve všech síťových profilech. Vytvoří pravidla brány firewall, která umožňují vzdálený přístup k privátním sítím a sítím ("Domů" a "Práce"). Pro veřejné sítě vytvoří pravidla brány firewall, která umožňují vzdálený přístup ze stejné místní podsítě.

V klientských verzích Windows Enable-PSRemoting proběhne úspěšně v privátních a doménových sítích. Ve výchozím nastavení selže ve veřejných sítích, ale pokud použijete parametr SkipNetworkProfileCheck , Enable-PSRemoting úspěšně se vytvoří pravidlo brány firewall, které povoluje provoz ze stejné místní podsítě.

Poznámka:

V prostředí Windows PowerShell 2.0 vytvoří na počítačích se serverovou verzí systému Windows pravidla brány firewall, Enable-PSRemoting která umožňují vzdálený přístup v privátních, doménách a veřejných sítích. Na počítačích s klientskými verzemi systému Windows vytvoří pravidla brány firewall, Enable-PSRemoting která umožňují vzdálený přístup pouze v privátních a doménových sítích.

Pokud chcete odebrat omezení místní podsítě ve veřejných sítích a povolit vzdálený přístup z libovolného umístění, spusťte následující příkaz:

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

Rutina Set-NetFirewallRule je exportována modulem NetSecurity .

Poznámka:

Název pravidla brány firewall se může lišit pro různé verze Windows. Umožňuje Get-NetFirewallRule zobrazit seznam pravidel. Před povolením pravidla brány firewall zkontrolujte nastavení zabezpečení v pravidle a ověřte, že je konfigurace vhodná pro vaše prostředí.

Povolení výjimky brány firewall pomocí zásad skupiny

Chyby:

  • CHYBA: PŘÍSTUP BYL ODEPŘEN.
  • CHYBA: Připojení ke vzdálenému hostiteli bylo odmítnuto. Ověřte, že služba WS-Management běží na vzdáleném hostiteli a je nakonfigurovaná tak, aby naslouchala požadavkům na správném portu a adrese URL PROTOKOLU HTTP.

Použijte bránu Windows Firewall: Povolení zásad výjimek místních portů pro povolení výjimky brány firewall pro všechny počítače v doméně.

Zásada se nachází v následující cestě zásad skupiny:

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

Tato zásada umožňuje členům skupiny Administrators vytvořit výjimku brány firewall pro službu Vzdálená správa systému Windows (WinRM).

Pokud je konfigurace zásad nesprávná, může se zobrazit následující chyba:

Klient se nemůže připojit k cíli zadanému v požadavku. Ověřte, že je služba v cíli spuštěná a přijímá požadavky.

Chyba konfigurace v zásadě má za následek prázdnou hodnotu pro vlastnost ListeningOn . Pomocí následujícího příkazu zkontrolujte hodnotu.

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           : {}

Nastavení typu spuštění služby WinRM

Chyba:

CHYBA: PŘÍSTUP BYL ODEPŘEN.

Vzdálená komunikace PowerShellu závisí na službě Vzdálená správa systému Windows (WinRM). Aby služba podporovala vzdálené příkazy, musí být spuštěná.

Ve verzích serveru systému Windows je Automatictyp spuštění služby WinRM . Ve verzích klienta systému Windows je však služba WinRM ve výchozím nastavení zakázaná.

Pomocí následujícího příkladu nastavte typ spuštění služby WinRM na Automatic a spusťte službu. Parametr ComputerName přijímá více hodnot.

$invokeCimMethodSplat = @{
    ComputerName = 'Server01', 'Server02'
    Query = 'Select * From Win32_Service Where Name = "WinRM"'
    MethodName = 'ChangeStartMode'
    Arguments = @{StartMode  = 'Automatic'}
}
Invoke-CimMethod @invokeCimMethodSplat

Jak znovu vytvořit výchozí konfigurace relací

Chyba:

CHYBA: PŘÍSTUP BYL ODEPŘEN.

Když použijete Enable-PSRemoting, vytvoří výchozí konfigurace relace v místním počítači. Vzdálení uživatelé používají tyto konfigurace relací vždy, když vzdálený příkaz neobsahuje parametr ConfigurationName .

Pokud jsou výchozí konfigurace v počítači zrušeny nebo odstraněny, použijte k jejich opětovnému vytvoření rutinu Enable-PSRemoting . Tuto rutinu můžete použít opakovaně. Pokud už je funkce nakonfigurovaná, negeneruje chyby.

Pokud změníte výchozí konfigurace relace a chcete obnovit původní konfigurace relace, můžete konfigurace odstranit a znovu vytvořit.

Pomocí rutiny Unregister-PSSessionConfiguration odstraňte změněné konfigurace relací. Slouží Enable-PSRemoting k obnovení původní konfigurace relace. Enable-PSRemoting nemění stávající konfigurace relací.

Poznámka:

Při Enable-PSRemoting obnovení výchozí konfigurace relace nevytvoří explicitní popisovače zabezpečení pro konfigurace. Místo toho konfigurace dědí popisovač zabezpečení RootSDDL, což je ve výchozím nastavení zabezpečené.

Pokud chcete zobrazit popisovač zabezpečení RootSDDL , zadejte:

Get-Item wsman:\localhost\Service\RootSDDL

Pokud chcete změnit RootSDDL, použijte rutinu Set-Item na jednotce WSMan: . Pokud chcete změnit popisovač zabezpečení konfigurace relace, použijte rutinu Set-PSSessionConfiguration s parametry SecurityDescriptorSDDL nebo ShowSecurityDescriptorUI .

Další informace o jednotce WSMan: najdete v tématu about_WSMan_Provider.

Jak zadat přihlašovací údaje správce

Chyba:

CHYBA: PŘÍSTUP BYL ODEPŘEN.

Musíte být členem skupiny Administrators, která se připojuje k výchozím koncovým bodům vzdálené relace. K připojení ke vzdáleným koncovým bodům pomocí alternativních přihlašovacích údajů můžete použít parametr Credential (New-PSSessionEnter-PSSessionPřihlašovací údaje) nebo Invoke-Command rutiny.

Následující příklad ukazuje, jak zadat přihlašovací údaje pro uživatele správce.

Invoke-Command -ComputerName Server01 -Credential Domain01\Admin01

Další informace o parametru Credential naleznete v nápovědě pro New-PSSession, Enter-PSSession nebo Invoke-Command.

Povolení vzdálené komunikace pro uživatele, kteří nejsou správci

Chyba:

CHYBA: PŘÍSTUP BYL ODEPŘEN.

Ve výchozím nastavení mají oprávnění používat výchozí konfigurace relací jenom členové skupiny Administrators na počítači. Proto se ke vzdálenému počítači můžou připojit jenom členové skupiny Administrators.

Pokud chcete ostatním uživatelům povolit připojení k místnímu počítači, udělte uživateli oprávnění Spustit výchozí konfigurace relací na místním počítači.

Následující příklad otevře seznam vlastností, který umožňuje změnit popisovač zabezpečení výchozí Microsoft.PowerShell konfigurace relace na místním počítači.

Set-PSSessionConfiguration Microsoft.PowerShell -ShowSecurityDescriptorUI

Další informace najdete v tématu about_Session_Configurations.

Povolení vzdálené komunikace pro správce v jiných doménách

Chyba:

CHYBA: PŘÍSTUP BYL ODEPŘEN.

Pokud je uživatel v jiné doméně členem skupiny Administrators v místním počítači, nemůže se uživatel vzdáleně připojit k místnímu počítači s oprávněními správce. Ve výchozím nastavení se vzdálená připojení z jiných domén spouští pouze se standardními tokeny oprávnění uživatele.

Položku registru LocalAccountTokenFilterPolicy můžete použít ke změně výchozího chování a povolení spuštění vzdálených uživatelů, kteří jsou členy skupiny Administrators s oprávněními správce.

Upozornění

Položka LocalAccountTokenFilterPolicy zakáže vzdálená omezení řízení uživatelských účtů (UAC) pro všechny uživatele všech ovlivněných počítačů. Před změnou zásad pečlivě zvažte důsledky tohoto nastavení.

Pomocí následujícího příkazu nastavte hodnotu registru LocalAccountTokenFilterPolicy na hodnotu 1.

$newItemPropertySplat = @{
  Name = 'LocalAccountTokenFilterPolicy'
  Path = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System'
  PropertyType = 'DWord'
  Value = 1
}
New-ItemProperty @newItemPropertySplat

Použití IP adresy ve vzdáleném příkazu

Chyba:

CHYBA: Klient WinRM nemůže požadavek zpracovat. Pokud se schéma ověřování liší od protokolu Kerberos nebo pokud klientský počítač není připojený k doméně, je potřeba použít přenos HTTPS nebo přidat cílový počítač do nastavení konfigurace důvěryhodných hostitelů.

Parametr ComputerName parametru New-PSSessionEnter-PSSession a Invoke-Command rutiny přijímá IP adresu jako platnou hodnotu. Vzhledem k tomu, že ověřování protokolem Kerberos nepodporuje IP adresy. Když zadáte IP adresu, použije se ověřování NTLM.

Pokud chcete podporovat ověřování NTLM, musíte splňovat následující požadavky:

  • Nakonfigurujte počítač pro přenos HTTPS nebo přidejte IP adresy vzdálených počítačů do seznamu TrustedHosts na místním počítači.
  • Ve všech vzdálených příkazech použijte parametr Credential. To se vyžaduje i v případě, že se připojujete jako aktuální uživatel.

Jak se vzdáleně připojit z počítače založeného na pracovní skupině

V případě chyby

CHYBA: Klient WinRM nemůže požadavek zpracovat. Pokud se schéma ověřování liší od protokolu Kerberos nebo pokud klientský počítač není připojený k doméně, je potřeba použít přenos HTTPS nebo přidat cílový počítač do nastavení konfigurace důvěryhodných hostitelů.

Pokud místní počítač není v doméně, musíte splňovat následující požadavky:

  • Nakonfigurujte počítač pro přenos HTTPS nebo přidejte IP adresy vzdálených počítačů do seznamu TrustedHosts na místním počítači.
  • Ověřte, že je v počítači založeném na pracovní skupině nastavené heslo. Pokud heslo není nastavené nebo je hodnota hesla prázdná, nemůžete spustit vzdálené příkazy.
  • Ve všech vzdálených příkazech použijte parametr Credential. To se vyžaduje i v případě, že se připojujete jako aktuální uživatel.

Postup přidání počítače do seznamu důvěryhodných hostitelů

Položka TrustedHosts může obsahovat čárkami oddělený seznam názvů počítačů, IP adres a plně kvalifikovaných názvů domén. Jsou povoleny zástupné cardy.

Pokud chcete zobrazit nebo změnit seznam důvěryhodných hostitelů, použijte jednotku WSMan: . Položka TrustedHost je v WSMan:\localhost\Client uzlu. Oprávnění ke změně seznamu důvěryhodných hostitelů v počítači mají pouze členové skupiny Administrators na počítači.

Upozornění

Hodnota, kterou jste nastavili pro položku TrustedHosts , má vliv na všechny uživatele počítače.

Pokud chcete zobrazit seznam důvěryhodných hostitelů, použijte následující příkaz:

Get-Item wsman:\localhost\Client\TrustedHosts

Následující příklad používá zástupný znak (*) k přidání všech počítačů do seznamu důvěryhodných hostitelů.

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

K přidání všech počítačů v konkrétní doméně do seznamu důvěryhodných hostitelů můžete také použít zástupný znak (*). Například následující příkaz přidá všechny počítače v doméně Fabrikam.

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

Následující příklad nastaví seznam důvěryhodných hostitelů na jeden počítač.

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

Pokud chcete přidat název počítače do existujícího seznamu důvěryhodných hostitelů, nejprve uložte aktuální hodnotu do proměnné. Potom nastavte hodnotu na řetězec obsahující čárkami oddělený seznam, který obsahuje aktuální a nové hodnoty.

Následující příklad přidejte Server01 do existujícího seznamu důvěryhodných hostitelů.

$newServer = 'Server01.Domain01.Fabrikam.com'
$curValue = (Get-Item wsman:\localhost\Client\TrustedHosts).Value
Set-Item wsman:\localhost\Client\TrustedHosts -Value "$curValue, $newServer"

Pokud chcete přidat IP adresy konkrétních počítačů do seznamu důvěryhodných hostitelů, použijte následující formát příkazu:

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

Příklad:

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

Chcete-li přidat počítač do seznamu TrustedHosts vzdáleného počítače, použijte Connect-WSMan k připojení ke WSMan: vzdálenému počítači, který používá Set-Item k přidání počítače.

Další informace o nástroji Connect-WSMan naleznete v nápovědě.

Konfigurace vzdálené komunikace na alternativních portech

Chyba:

CHYBA: Připojení k zadanému vzdálenému hostiteli bylo odmítnuto. Ověřte, že služba WS-Management běží na vzdáleném hostiteli a je nakonfigurovaná tak, aby naslouchala požadavkům na správném portu a adrese URL PROTOKOLU HTTP.

Vzdálené komunikace PowerShellu ve výchozím nastavení používá port 80 pro přenos HTTP. Výchozí port se používá vždy, když uživatel ve vzdáleném příkazu nezadá parametr ConnectionURI nebo Port .

Pomocí Set-Item rutiny můžete změnit hodnotu portu v uzlu naslouchacího procesu naslouchacího procesu.

Například následující příkaz změní výchozí port na 8080.

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

Konfigurace vzdálené komunikace s proxy serverem

Chyba:

CHYBA: Klient se nemůže připojit k cíli zadanému v požadavku. Ověřte, že je služba v cíli spuštěná a přijímá požadavky.

Vzhledem k tomu, že vzdálené komunikace PowerShellu používá protokol HTTP, má to vliv na nastavení proxy serveru HTTP. V podnicích, které mají proxy servery, nemají uživatelé přímý přístup ke vzdálenému počítači PowerShellu.

Chcete-li tento problém vyřešit, použijte ve vzdáleném příkazu možnosti nastavení proxy serveru.

  • Pomocí parametrů New-PSSessionOption ProxyAccessType, ProxyAuthentication a ProxyCredential rutiny vytvořte proměnnou obsahující objekt PSSessionOption s nastavením proxy serveru pro váš podnik.
  • Použijte proměnnou obsahující objekt PSSessionOption s parametrem SessionOption parametru New-PSSession, Enter-PSSessionnebo Invoke-Command příkazu.
$newPSSessionOptionSplat = @{
    ProxyAccessType = 'IEConfig'
    ProxyAuthentication = 'Negotiate'
    ProxyCredential = 'Domain01\User01'
}
$SessionOption = New-PSSessionOption @newPSSessionOptionSplat

$newPSSessionSplat = @{
    ConnectionUri = 'https://www.fabrikam.com'
    SessionOption = $SessionOption
}
New-PSSession @newPSSessionSplat

Další informace o rutině New-PSSessionOption naleznete v tématu New-PSSessionOption.

Chcete-li nastavit tyto možnosti pro všechny vzdálené příkazy v aktuální relaci, nastavte $PSSessionOption proměnnou předvolby na PSSessionOption objekt, který jste vytvořili. Další informace najdete v tématu about_Preference_Variables.

Pokud chcete nastavit tyto možnosti pro všechny vzdálené příkazy ve všech relacích PowerShellu na místním počítači, přidejte do profilu PowerShellu $PSSessionOption proměnnou předvoleb. Další informace o profilech PowerShellu najdete v tématu about_Profiles.

Zjištění 32bitové relace na 64bitovém počítači

Chyba:

CHYBA: Název <výrazu tool-name> není rozpoznán jako název rutiny, funkce, souboru skriptu nebo operovatelného programu. Zkontrolujte překlepy v názvu nebo jestli byla zahrnuta cesta, ověřte, jestli je cesta správná, a zkuste to znovu.

Pokud vzdálený počítač používá 64bitovou verzi Windows a vzdálený příkaz používá 32bitovou konfiguraci relace, například Microsoft.PowerShell32, winRM načte proces WOW64. Systém Windows automaticky přesměruje všechny odkazy na $env:Windir\System32 $env:Windir\SysWOW64 adresář.

V důsledku toho nelze najít spuštěné nástroje v System32 adresáři, které nemají protějšky v SysWow64 adresáři.

Pokud chcete najít architekturu procesoru používanou v relaci, použijte hodnotu proměnné prostředí PROCESSOR_ARCHITECTURE .

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

Další informace najdete v tématu about_Session_Configurations.

Řešení potíží se zásadami a předvolbou

Tato část popisuje problémy se vzdálenou komunikacemi, které souvisejí se zásadami a předvolbami nastavenými na místních a vzdálených počítačích.

Změna zásad spouštění pro Import-PSSession a Import-Module

Chyba:

CHYBA: Import-Module: Název souboru <> nelze načíst, protože spuštění skriptů je v tomto systému zakázáno.

Export-PSSession Rutiny Import-PSSession vytvářejí moduly, které obsahují nepodepsané soubory skriptů a formátovací soubory.

Chcete-li importovat moduly vytvořené těmito rutinami, zásady spuštění v aktuální relaci nemohou být Restricted nebo AllSigned. Další informace najdete v tématu about_Execution_Policies.

Pokud chcete importovat moduly beze změny zásad provádění pro místní počítač, použijte parametr Set-ExecutionPolicy Scope pro nastavení méně omezující zásady provádění pro jeden proces.

Například následující příklad nastaví zásadu RemoteSigned spuštění pro aktuální proces. Změna má vliv jenom na aktuální proces.

Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned

Parametr ExecutionPolicy PowerShell.exe můžete použít také ke spuštění jedné relace s méně omezující zásadou spuštění.

pwsh.exe -ExecutionPolicy RemoteSigned

Jak nastavit a změnit kvóty

Kvóty můžete použít k ochraně místního počítače a vzdáleného počítače před nadměrným použitím prostředků, a to jak náhodným, tak škodlivým. Pokud jsou kvóty v konfliktu s příkazem, PowerShell vygeneruje následující chybu.

CHYBA: Celková data přijatá ze vzdáleného klienta překročila povolené maximum.

Zprostředkovatel WSMan má následující nastavení kvóty:

  • Nastavení MaxEnvelopeSizeKB a MaxProviderRequests v WSMan:<ComputerName> uzlu a nastavení MaxConcurrentOperations, MaxConcurrentOperationsPerUser a MaxConnections v WSMan:<ComputerName>\Service uzlu.
  • K ochraně místního počítače můžete použít parametry New-PSSessionOption MaximumReceivedDataSizePerCommand a MaximumReceivedObjectSize rutiny a $PSSessionOption proměnné předvoleb.
  • Chcete-li chránit vzdálený počítač, přidejte omezení konfigurace relace pomocí Parametrů MaximumReceivedDataSizePerCommandMB a MaximumReceivedObjectSizeMB rutiny Register-PSSessionConfiguration .

Pokud chcete tuto chybu vyřešit, změňte vzdálený příkaz tak, aby odpovídal kvótě, nebo zvyšte kvótu, aby se příkaz dokončil.

Například následující příkaz zvýší kvótu velikosti objektu v konfiguraci relace Microsoft.PowerShellu na vzdáleném počítači z 10 MB (výchozí hodnota) na 11 MB.

$setPSSessionConfigurationSplat = @{
    Name = 'Microsoft.PowerShell'
    MaximumReceivedObjectSizeMB = 11
    Force = $true
}
Set-PSSessionConfiguration @setPSSessionConfigurationSplat

Další informace o kvótách služby WS-Management najdete v tématu about_WSMan_Provider.

Řešení chyb časového limitu

Časové limity můžete použít k ochraně místního počítače a vzdáleného počítače před nadměrným použitím prostředků, a to jak náhodným, tak škodlivým. Pokud jsou na místním i vzdáleném počítači nastavené časové limity, PowerShell používá nejkratší nastavení časového limitu.

Pokud hodnota časového limitu nepovolí dokončení operace, PowerShell operaci ukončí a vygeneruje následující chybu.

CHYBA: Služba WS-Management nemůže dokončit operaci v době zadané v operationTimeout.

Zprostředkovatel WSMan má následující nastavení časových limitů.

  • Nastavení MaxTimeoutMs v WSMan:<ComputerName> uzlu a nastavení EnumerationTimeoutMs a MaxPacketRetrievalTimeSeconds v WSMan:<ComputerName>\Service uzlu.
  • Místní počítač můžete chránit pomocí parametrů CancelTimeout, IdleTimeout, OpenTimeout a OperationTimeout rutiny New-PSSessionOption a $PSSessionOption proměnné předvoleb.
  • Vzdálený počítač můžete také chránit nastavením hodnot časového limitu programově v konfiguraci relace pro relaci.

Pokud chcete chybu vyřešit, změňte příkaz tak, aby se dokončil v intervalu časového limitu, nebo zvyšte interval časového limitu, aby se příkaz dokončil.

Následující příklad vytvoří možnost relace s hodnotou OperationTimeout 4 minuty (v MS), pak pomocí možnosti relace vytvoří vzdálenou relaci.

$pso = New-PSSessionOption -OperationTimeout 240000
New-PSSession -ComputerName Server01 -SessionOption $pso

Další informace o časových limitech služby WS-Management najdete v tématu about_WSMan_Provider.

Přerušení příkazu, který nereaguje

Některé nativní programy, jako jsou programy s uživatelským rozhraním, konzolové aplikace, které vyzvou k zadání vstupu, a konzolové aplikace, které používají rozhraní API konzoly Win32, nefungují ve vzdáleném hostiteli PowerShellu správně.

Při použití těchto programů se může zobrazit neočekávané chování, například žádný výstup, částečný výstup nebo vzdálený příkaz, který se nedokončí.

Pokud chcete ukončit nereagující program, zadejte ctrl+c. Použijte Get-Error v místním hostiteli a vzdálené relaci k zobrazení všech chyb, které mohly být hlášeny.

Jak se zotavit z selhání operace

Po dokončení operace se vrátí následující chyba.

CHYBA: Vstupně-výstupní operace byla přerušena z důvodu ukončení vlákna nebo požadavku aplikace.

K tomu obvykle dochází, když se služba WinRM zastaví nebo restartuje, zatímco probíhá jiné operace WinRM.

Pokud chcete tento problém vyřešit, ověřte, že je spuštěná služba WinRM, a zkuste příkaz zopakovat.

  1. Spusťte PowerShell s možností Spustit jako správce .

  2. Spusťte následující příkaz:

    Start-Service WinRM

  3. Znovu spusťte příkaz, který chybu vygeneroval.

Omezení pro Linux a macOS

Vzdálené komunikace PowerShellu je Linux a macOS s využitím vzdálené komunikace přes SSH. Další informace najdete v tématu Vzdálené komunikace PowerShellu přes SSH.

Viz také