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 Automatic
typ 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-PSSession
Enter-PSSession
Př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-PSSession
Enter-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-PSSession
neboInvoke-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 vWSMan:<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 vWSMan:<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.
Spusťte PowerShell s možností Spustit jako správce .
Spusťte následující příkaz:
Start-Service WinRM
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.