Felsöka med diagnostikverktyget för skyddad infrastruktur
I den här artikeln beskrivs användningen av diagnostikverktyget för skyddad infrastruktur för infrastrukturresurser för att identifiera och åtgärda vanliga fel i distributionen, konfigurationen och den pågående driften av en skyddad infrastruktur för infrastrukturresurser. Detta inkluderar Värdskyddstjänsten (HGS), alla skyddade värdar och stödtjänster som DNS och Active Directory.
Gäller för: Windows Server 2022, Windows Server 2019, Windows Server 2016
Diagnostikverktyget kan användas för att utföra ett första pass vid sortering av en felskyddad infrastrukturresurs, vilket ger administratörer en startpunkt för att lösa avbrott och identifiera felkonfigurerade tillgångar. Verktyget är inte en ersättning för ett bra grepp om att använda en skyddad infrastrukturresurs och fungerar bara för att snabbt verifiera de vanligaste problemen som uppstår under den dagliga driften.
Fullständig dokumentation om de cmdletar som används i den här artikeln finns i modulreferensen för HgsDiagnostics.
Kommentar
När du kör diagnostikverktyget För skyddad infrastruktur (Get-HgsTrace -RunDiagnostics) kan felaktig status returneras och hävda att HTTPS-konfigurationen är bruten när den i själva verket inte är bruten eller inte används. Det här felet kan returneras oavsett HGS attesteringsläge. De möjliga rotorsakerna är följande:
- HTTPS är verkligen felaktigt konfigurerat/brutet
- Du använder administratörsbetrott attestering och förtroenderelationen är bruten. Detta gäller oavsett om HTTPS har konfigurerats korrekt, felaktigt eller inte alls. Observera att diagnostiken endast returnerar den här felaktiga statusen när du riktar in dig på en Hyper-V-värd. Om diagnostiken riktar sig till tjänsten Värdskydd är statusen som returneras korrekt.
Snabbstart
Du kan diagnostisera antingen en skyddad värd eller en HGS-nod genom att anropa följande från en Windows PowerShell-session med lokal administratörsbehörighet:
Get-HgsTrace -RunDiagnostics -Detailed
Detta identifierar automatiskt den aktuella värdens roll och diagnostiserar eventuella relevanta problem som kan identifieras automatiskt. Alla resultat som genereras under den här processen visas på grund av att växeln -Detailed
finns.
Resten av det här avsnittet innehåller en detaljerad genomgång av den avancerade användningen av Get-HgsTrace
för att göra saker som att diagnostisera flera värdar samtidigt och identifiera komplex felkonfiguration mellan noder.
Diagnostiköversikt
Skyddad infrastrukturdiagnostik är tillgänglig på alla värdar med skärmade virtuella datorrelaterade verktyg och funktioner installerade, inklusive värdar som kör Server Core. För närvarande ingår diagnostik med följande funktioner/paket:
- Tjänstroll för värdskydd
- Hyper-V-stöd för värdskydd
- Verktyg för VM-avskärmning för infrastrukturhantering
- Verktyg för fjärrserveradministration (RSAT)
Det innebär att diagnostikverktyg kommer att vara tillgängliga på alla skyddade värdar, HGS-noder, vissa infrastrukturhanteringsservrar och alla Windows 10-arbetsstationer med RSAT installerat. Diagnostik kan anropas från någon av ovanstående datorer med avsikten att diagnostisera alla skyddade värdar eller HGS-noder i en skyddad infrastrukturresurs. med hjälp av fjärrspårningsmål kan diagnostik hitta och ansluta till andra värdar än den dator som kör diagnostik.
Varje värd som är mål för diagnostik kallas för ett "spårningsmål". Spårningsmål identifieras av deras värdnamn och roller. Roller beskriver funktionen som ett visst spårningsmål utför i en skyddad infrastrukturresurs. För närvarande är spårningsmålen stöd HostGuardianService
och GuardedHost
roller. Observera att det är möjligt för en värd att uppta flera roller samtidigt och detta stöds också av diagnostik, men detta bör inte göras i produktionsmiljöer. HGS- och Hyper-V-värdarna bör alltid hållas åtskilda och distinkta.
Administratörer kan påbörja eventuella diagnostikuppgifter genom att köra Get-HgsTrace
. Den här cmdleten utför två distinkta funktioner baserat på de växlar som tillhandahålls vid körning: spårningsinsamling och diagnos. Dessa två kombinerade utgör hela det skyddade infrastrukturresursernas diagnostikverktyg. Även om den inte uttryckligen krävs kräver de flesta användbara diagnostik spårningar som bara kan samlas in med administratörsautentiseringsuppgifter på spårningsmålet. Om otillräcklig behörighet innehas av användaren som kör spårningssamlingen misslyckas spårningar som kräver utökade privilegier medan alla andra godkänns. Detta möjliggör partiell diagnos i händelse av att en underprivilegierad operator utför triage.
Spårningssamling
Som standard Get-HgsTrace
samlar du bara in spårningar och sparar dem i en tillfällig mapp. Spårningar har formen av en mapp, uppkallad efter målvärden, fylld med särskilt formaterade filer som beskriver hur värden är konfigurerad. Spårningarna innehåller också metadata som beskriver hur diagnostiken anropades för att samla in spårningarna. Dessa data används av diagnostik för att extrahera information om värden när du utför manuell diagnos.
Om det behövs kan spårningar granskas manuellt. Alla format är antingen läsbara för människor (XML) eller kan lätt inspekteras med hjälp av standardverktyg (till exempel X509-certifikat och Windows Crypto Shell-tillägg). Observera dock att spårningar inte är utformade för manuell diagnos och att det alltid är effektivare att bearbeta spårningarna med diagnosmöjligheterna Get-HgsTrace
för .
Resultatet av att köra spårningsinsamling ger ingen indikation på hälsotillståndet för en viss värd. De anger helt enkelt att spårningar har samlats in. Det är nödvändigt att använda diagnosmöjligheterna Get-HgsTrace
för för att avgöra om spårningarna indikerar en misslyckad miljö.
Med hjälp av parametern -Diagnostic
kan du begränsa spårningsinsamlingen till endast de spårningar som krävs för att köra den angivna diagnostiken. Detta minskar mängden data som samlas in samt de behörigheter som krävs för att anropa diagnostik.
Diagnos
Insamlade spårningar kan diagnostiseras genom att ange Get-HgsTrace
platsen för spårningarna via parametern -Path
och ange växeln -RunDiagnostics
. Dessutom Get-HgsTrace
kan utföra insamling och diagnos i ett enda pass genom att tillhandahålla växeln -RunDiagnostics
och en lista över spårningsmål. Om inga spårningsmål anges används den aktuella datorn som ett implicit mål, där dess roll härleds genom att inspektera de installerade Windows PowerShell-modulerna.
Diagnos ger resultat i ett hierarkiskt format som visar vilka spårningsmål, diagnostikuppsättningar och enskild diagnostik som är ansvariga för ett visst fel. Fel omfattar reparations- och lösningsrekommendationer om det går att fastställa vilka åtgärder som ska vidtas härnäst. Som standard döljs överföring och irrelevanta resultat. Om du vill se allt som testats med diagnostik anger du växeln -Detailed
. Detta gör att alla resultat visas oavsett status.
Det är möjligt att begränsa den uppsättning diagnostik som körs med hjälp av parametern -Diagnostic
. På så sätt kan du ange vilka diagnostikklasser som ska köras mot spårningsmålen och utelämna alla andra. Exempel på tillgängliga diagnostikklasser är nätverk, metodtips och klientmaskinvara. I cmdlet-dokumentationen hittar du en uppdaterad lista över tillgängliga diagnostiker.
Varning
Diagnostik ersätter inte en stark pipeline för övervakning och incidenthantering. Det finns ett System Center Operations Manager-paket tillgängligt för övervakning av skyddade infrastrukturresurser samt olika händelseloggkanaler som kan övervakas för att identifiera problem tidigt. Diagnostik kan sedan användas för att snabbt sortera dessa fel och upprätta en åtgärd.
Måldiagnostik
Get-HgsTrace
mot spårningsmål. Ett spårningsmål är ett objekt som motsvarar en HGS-nod eller en skyddad värd i en skyddad infrastrukturresurs. Det kan ses som ett tillägg till en PSSession
, som endast innehåller information som krävs av diagnostik, till exempel värdens roll i infrastrukturresurserna. Mål kan genereras implicit (till exempel lokal eller manuell diagnos) eller explicit med cmdleten New-HgsTraceTarget
.
Lokal diagnos
Som standard Get-HgsTrace
kommer att riktas mot localhost (dvs. där cmdleten anropas). Detta kallas det implicita lokala målet. Det implicita lokala målet används bara när inga mål anges i parametern -Target
och inga befintliga spårningar hittas i -Path
.
Det implicita lokala målet använder rollinferens för att avgöra vilken roll den aktuella värden spelar i den skyddade infrastrukturresursen. Detta baseras på de installerade Windows PowerShell-modulerna, som ungefär motsvarar vilka funktioner som har installerats på systemet. Förekomsten av modulen HgsServer
gör att spårningsmålet tar rollen HostGuardianService
och förekomsten av modulen HgsClient
gör att spårningsmålet tar rollen GuardedHost
. Det är möjligt för en viss värd att ha båda modulerna närvarande i vilket fall den behandlas som både en HostGuardianService
och en GuardedHost
.
Därför är standardanropet av diagnostik för insamling av spårningar lokalt:
Get-HgsTrace
Det motsvarar följande:
New-HgsTraceTarget -Local | Get-HgsTrace
Dricks
Get-HgsTrace
kan acceptera mål via pipelinen eller direkt via parametern -Target
. Det finns ingen skillnad mellan de två i drift.
Fjärrdiagnos med spårningsmål
Det går att fjärrdiagnostisera en värd genom att generera spårningsmål med fjärranslutningsinformation. Allt som krävs är värdnamnet och en uppsättning autentiseringsuppgifter som kan ansluta med hjälp av Windows PowerShell-fjärrkommunikation.
$server = New-HgsTraceTarget -HostName "hgs-01.secure.contoso.com" -Role HostGuardianService -Credential (Enter-Credential)
Get-HgsTrace -RunDiagnostics -Target $server
Det här exemplet genererar en uppmaning om att samla in fjärranvändarens autentiseringsuppgifter och sedan körs diagnostiken med fjärrvärden vid hgs-01.secure.contoso.com
för att slutföra spårningssamlingen. De resulterande spårningarna laddas ned till localhost och diagnostiseras sedan. Resultatet av diagnosen presenteras på samma sätt som när du utför lokal diagnos. På samma sätt är det inte nödvändigt att ange en roll eftersom den kan härledas baserat på De Windows PowerShell-moduler som är installerade på fjärrsystemet.
Fjärrdiagnos använder Windows PowerShell-fjärrkommunikation för alla åtkomster till fjärrvärden. Därför är det en förutsättning att spårningsmålet har Windows PowerShell-fjärrkommunikation aktiverat (se Aktivera PSRemoting) och att localhost är korrekt konfigurerat för att starta anslutningar till målet.
Kommentar
I de flesta fall är det bara nödvändigt att localhost är en del av samma Active Directory-skog och att ett giltigt DNS-värdnamn används. Om din miljö använder en mer komplicerad federationsmodell eller om du vill använda direkta IP-adresser för anslutning kan du behöva utföra ytterligare konfiguration, till exempel att ställa in de betrodda WinRM-värdarna.
Du kan kontrollera att ett spårningsmål är korrekt instansierat och konfigurerat för att acceptera anslutningar med hjälp av cmdleten Test-HgsTraceTarget
:
$server = New-HgsTraceTarget -HostName "hgs-01.secure.contoso.com" -Role HostGuardianService -Credential (Enter-Credential)
$server | Test-HgsTraceTarget
Den här cmdleten returnerar $True
om och endast om Get-HgsTrace
skulle kunna upprätta en fjärrdiagnostiksession med spårningsmålet. Vid fel returnerar den här cmdleten relevant statusinformation för ytterligare felsökning av Windows PowerShell-fjärrkommunikationsanslutningen.
Implicita autentiseringsuppgifter
När du utför fjärrdiagnos från en användare med tillräcklig behörighet för att fjärransluta till spårningsmålet är det inte nödvändigt att ange autentiseringsuppgifter till New-HgsTraceTarget
. Cmdleten Get-HgsTrace
återanvänder automatiskt autentiseringsuppgifterna för den användare som anropade cmdleten när en anslutning öppnades.
Varning
Vissa begränsningar gäller för återanvändning av autentiseringsuppgifter, särskilt när du utför det som kallas "second hop". Detta inträffar när du försöker återanvända autentiseringsuppgifter inifrån en fjärrsession till en annan dator. Det är nödvändigt att konfigurera CredSSP för att stödja det här scenariot, men detta ligger utanför omfånget för skyddad infrastrukturhantering och felsökning.
Använda Windows PowerShell precis tillräckligt med administration (JEA) och diagnostik
Fjärrdiagnos stöder användning av JEA-begränsade Windows PowerShell-slutpunkter. Som standard ansluter fjärrspårningsmål med standardslutpunkten microsoft.powershell
. Om spårningsmålet har HostGuardianService
rollen försöker det också använda microsoft.windows.hgs
slutpunkten, som konfigureras när HGS installeras.
Om du vill använda en anpassad slutpunkt måste du ange sessionskonfigurationsnamnet när du skapar spårningsmålet med hjälp av parametern -PSSessionConfigurationName
, till exempel nedan:
New-HgsTraceTarget -HostName "hgs-01.secure.contoso.com" -Role HostGuardianService -Credential (Enter-Credential) -PSSessionConfigurationName "microsoft.windows.hgs"
Diagnostisera flera värdar
Du kan skicka flera spårningsmål till Get-HgsTrace
samtidigt. Detta inkluderar en blandning av lokala och fjärranslutna mål. Varje mål spåras i tur och ordning och sedan diagnostiseras spårningar från varje mål samtidigt. Diagnostikverktyget kan använda den ökade kunskapen om distributionen för att identifiera komplexa felkonfigurationer mellan noder som annars inte skulle kunna identifieras. Om du använder den här funktionen krävs endast att du tillhandahåller spårningar från flera värdar samtidigt (vid manuell diagnos) eller genom att rikta in sig på flera värdar vid anrop Get-HgsTrace
(vid fjärrdiagnos).
Här är ett exempel på hur du använder fjärrdiagnostik för att sortera en infrastrukturresurs som består av två HGS-noder och två skyddade värdar, där en av de skyddade värdarna används för att starta Get-HgsTrace
.
$hgs01 = New-HgsTraceTarget -HostName "hgs-01.secure.contoso.com" -Credential (Enter-Credential)
$hgs02 = New-HgsTraceTarget -HostName "hgs-02.secure.contoso.com" -Credential (Enter-Credential)
$gh01 = New-HgsTraceTarget -Local
$gh02 = New-HgsTraceTarget -HostName "guardedhost-02.contoso.com"
Get-HgsTrace -Target $hgs01,$hgs02,$gh01,$gh02 -RunDiagnostics
Kommentar
Du behöver inte diagnostisera hela den skyddade infrastrukturen när du diagnostiserar flera noder. I många fall räcker det att inkludera alla noder som kan vara inblandade i ett givet feltillstånd. Det här är vanligtvis en delmängd av de skyddade värdarna och ett antal noder från HGS-klustret.
Manuell diagnos med hjälp av sparade spårningar
Ibland kanske du vill köra diagnostiken igen utan att samla in spårningar igen, eller så kanske du inte har de autentiseringsuppgifter som krävs för att fjärrdiagnostisera alla värdar i infrastrukturresurserna samtidigt. Manuell diagnos är en mekanism med vilken du fortfarande kan utföra en fullständig prioritering med hjälp av Get-HgsTrace
, men utan att använda fjärrspårningsinsamling.
Innan du utför manuell diagnos måste du se till att administratörerna för varje värd i infrastrukturresurserna som ska sorteras är redo och villiga att köra kommandon för din räkning. Diagnostikspårningsutdata exponerar inte någon information som vanligtvis ses som känslig, men det åligger användaren att avgöra om det är säkert att exponera den här informationen för andra.
Kommentar
Spårningar anonymiseras inte och visar nätverkskonfiguration, PKI-inställningar och annan konfiguration som ibland betraktas som privat information. Därför bör spårningar endast överföras till betrodda entiteter i en organisation och aldrig publiceras offentligt.
Stegen för att utföra en manuell diagnos är följande:
Begär att varje värdadministratör kör
Get-HgsTrace
och anger en känd-Path
och en lista över diagnostik som du tänker köra mot de resulterande spårningarna. Till exempel:Get-HgsTrace -Path C:\Traces -Diagnostic Networking,BestPractices
Begär att varje värdadministratör paketerar den resulterande spårningsmappen och skickar den till dig. Den här processen kan köras via e-post, via filresurser eller någon annan mekanism baserat på de driftsprinciper och procedurer som har upprättats av din organisation.
Sammanfoga alla mottagna spårningar till en enda mapp, utan något annat innehåll eller mappar.
Anta till exempel att dina administratörer skickade spårningar som samlats in från fyra datorer med namnet HGS-01, HGS-02, RR1N2608-12 och RR1N2608-13. Varje administratör skulle ha skickat en mapp med samma namn. Du skulle sätta ihop en katalogstruktur som visas på följande sätt:
FabricTraces |- HGS-01 | |- TargetMetadata.xml | |- Metadata.xml | |- [any other trace files for this host] |- HGS-02 | |- [...] |- RR1N2608-12 | |- [...] |- RR1N2608-13 |- [..]
Kör diagnostik, ange sökvägen till den monterade spårningsmappen på parametern
-Path
och ange växeln-RunDiagnostics
samt diagnostiken som du bad administratörerna att samla in spårningar för. Diagnostiken förutsätter att den inte kan komma åt värdarna som finns i sökvägen och därför bara försöker använda de församlade spårningarna. Om några spårningar saknas eller skadas misslyckas diagnostiken endast de berörda testerna och fortsätter normalt. Till exempel:Get-HgsTrace -RunDiagnostics -Diagnostic Networking,BestPractices -Path ".\FabricTraces"
Blanda sparade spårningar med ytterligare mål
I vissa fall kan du ha en uppsättning församlade spårningar som du vill utöka med ytterligare värdspårningar. Det går att blanda församlade spårningar med ytterligare mål som ska spåras och diagnostiseras i ett enda diagnostikanrop.
Följ anvisningarna för att samla in och montera en spårningsmapp som anges ovan och anropa Get-HgsTrace
med ytterligare spårningsmål som inte hittades i den församlade spårningsmappen:
$hgs03 = New-HgsTraceTarget -HostName "hgs-03.secure.contoso.com" -Credential (Enter-Credential)
Get-HgsTrace -RunDiagnostics -Target $hgs03 -Path .\FabricTraces
Diagnostik-cmdleten identifierar alla församlade värdar och den ytterligare en värd som fortfarande behöver spåras och utför den nödvändiga spårningen. Summan av alla församlade och nysamlade spårningar diagnostiseras sedan. Den resulterande spårningsmappen innehåller både gamla och nya spårningar.
Kända problem
Den skyddade infrastrukturdiagnostikmodulen har kända begränsningar när den körs på Windows Server 2019 eller Windows 10, version 1809 och nyare os-versioner. Användning av följande funktioner kan orsaka felaktiga resultat:
- Värdnyckelattestering
- Attesteringsbaserad HGS-konfiguration (för SQL Server Always Encrypted-scenarier)
- Användning av v1-principartefakter på en HGS-server där attesteringsprincipens standardinställning är v2
Ett fel i Get-HgsTrace
när du använder dessa funktioner indikerar inte nödvändigtvis att HGS-servern eller den skyddade värden är felkonfigurerad.
Använd andra diagnostikverktyg som Get-HgsClientConfiguration
på en skyddad värd för att testa om en värd har klarat attesteringen.