Telemetria v PowerShelle: premenné, súkromie a prenos údajov

Posledná aktualizácia: 17/12/2025
Autor: Isaac
  • PowerShell Odosiela anonymnú telemetriu pri spustení a počas relácie, ktorú je možné ovládať pomocou premennej prostredia POWERSHELL_TELEMETRY_OPTOUT.
  • Premenné prostredia špecifické pre PowerShell a systém vám umožňujú upraviť pravidlá ochrany osobných údajov, cesty k modulom, ukladanie do vyrovnávacej pamäte a vykonávanie, ktoré dedia podradené procesy.
  • Vlastnú telemetriu pre Azure Application Insights je možné testovať a diagnostikovať pomocou skriptov PowerShell alebo curl, overovaním siete, TLS a autentifikácie pomocou Microsoft Entra ID.
  • Správne používanie týchto mechanizmov uľahčuje pridávanie spoľahlivej telemetrie do skriptov PowerShellu a zároveň zachováva kontrolu nad zabezpečením a zdieľanými údajmi.

Telemetria v skriptoch PowerShellu

Ak pracujete s PowerShellom denne a začnete počuť o Telemetria v skriptoch a reláciáchJe normálne mať otázky: aké údaje sa odosielajú, kam idú, ako ich zakázať alebo dokonca ako túto telemetriu použiť na ladenie alebo monitorovanie vlastných skriptov. Toto všetko je ešte dôležitejšie, keď pracujete s firemným prostredím alebo citlivými informáciami.

V nasledujúcich riadkoch uvidíte, veľmi podrobne a čo najjednoduchším spôsobom, Ako funguje telemetria prepojená s PowerShellom?Akú úlohu hrajú premenné prostredia, ako sa môžete odhlásiť, ako manuálne odosielať telemetriu (napríklad do Application Insights) pomocou PowerShellu alebo Curlu a aké typické problémy so sieťou, TLS alebo overovaním môžu spôsobiť, že na vašich dashboardoch nebudú údaje.

Akú telemetriu PowerShell natívne odosiela?

PowerShell vo svojich moderných verziách obsahuje vlastný mechanizmus pre odosielať základné údaje o používaní spoločnosti Microsoft prostredníctvom Application Insights. Nehovoríme o kóde, ktorý píšete, ale o samotnom engine PowerShell pri spustení binárneho súboru. pwsh.

Táto telemetria pomáha spoločnosti Microsoft lepšie pochopiť, ako používať PowerShell (verzie, platformy, moduly atď.) a uprednostniť nové funkcie alebo opravy chýb. Pred odoslaním sú informácie anonymizuje a pridáva aby používateľ nebol priamo identifikovaný.

Existujú dva kľúčové momenty, kedy sa zhromažďujú údaje: na začiatku zasadnutia y pravidelne počas vykonávaniaJe dôležité pochopiť toto správanie, ak chcete mať maximálnu kontrolu nad tým, čo sa zdieľa z vášho prostredia.

Okrem toho motor odosiela túto telemetriu iba vtedy, keď spustíte pwsh štandard; ak je PowerShell vložený ako engine v inej hostiteľskej aplikáciiTáto počiatočná telemetria sa negeneruje.

Dáta odoslané pri spustení pwsh

Keď sa relácia začína s pwshMotor zhromažďuje malý, ale veľmi špecifický súbor informácií o prostredí, ktoré sa odosielajú iba raz za topánkaOkrem iného sú zaznamenané: operačný systém a podrobnosti o inštalácii z PowerShell.

Táto počiatočná fáza zahŕňa údaje, ako napríklad výrobca, názov a verzia operačného systému platformy, ako aj konkrétnu verziu PowerShellu, ktorú momentálne používate, čo pomáha pochopiť kombináciu systémov, na ktorých sa používa.

Ďalšou kľúčovou informáciou, ktorá sa odosiela, je hodnota premenná prostredia POWERSHELL_DISTRIBUTION_CHANNELToto označuje kanál, cez ktorý bol PowerShell nainštalovaný (napr. oficiálny balík, repozitár atď.). Túto hodnotu nastavujú inštalátori a používateľom sa odporúča, aby ju nemenili, aby sa predišlo skresleniu metrík.

Súčasťou je aj Verzia súpravy SDK pre aplikácie Insights používaný samotným PowerShellom, približná geografická oblasť hostiteľa na základe IP adresy, parametre odovzdané pwsh bez ich hodnôt (t. j. názvy parametrov, ale nie obsah) a efektívnu politiku vykonávania počiatočnej relácie.

Nakoniec nástroj vygeneruje dva anonymné identifikátory: jeden Náhodné GUID na používateľa a ďalšie GUID na reláciuNejde o priame osobné údaje, ale o technické identifikátory na zoskupenie relácií a správania bez odhalenia skutočnej identity.

Telemetria odoslaná počas relácie

Keď je relácia spustená, PowerShell pravidelne odosiela agregované informácie o používaní, aby pochopil aké funkcie sa používajú a akoToto platí pre interaktívnu konzolu aj pre ostatných hostiteľov, na ktorých je spustený engine.

Medzi tieto údaje patria napríklad počet volaní API PowerShell.Create(), zoznam importovaných modulov spoločnosti Microsoft spolu s ich verziami alebo počet modulov, ktoré nesú označenie CrescendoBuiltčo pomáha identifikovať použitie určitých nástrojov.

Uvádza sa aj toto: názvy zapnutých a vypnutých experimentálnych funkciíToto je veľmi užitočné na zistenie, ktoré experimenty má komunita skutočne v produkcii; okrem toho sa odosiela aj hodnota preferencie. $PSNativeCommandUseErrorActionPreference (true, false alebo nenastavené) a počet otvorených vzdialených relácií.

Ďalšou zaujímavou časťou je katalóg registrované podsystémyPowerShell označuje názvy používané pre podsystémy automatického dopĺňania (.Completion) alebo všeobecné (general), ale ak meno nie je v tomto zozname, odošle sa ako anonymous zachovať súkromie.

Nakoniec sú zahrnuté aj počítadlá návrhy generované používateľom CommandNotFound a štatistiky používania PowerShellUnsafeAssemblyLoad (vrátane toho, či bolo načítanie úspešne dokončené alebo nie), kľúčové aspekty pre zlepšenie diagnostiky a bezpečnosti.

Ako zakázať natívnu telemetriu PowerShellu

Ak má vaša organizácia prísne zásady ochrany osobných údajov, môžete určiť, že nechcete odosielať túto telemetriu. PowerShell to robí zverejnením premennej prostredia. POWERSHELL_TELEMETRY_OPTOUT, ktoré musíte nastaviť pred začatím akejkoľvek relácie.

Rozpoznaná hodnota pre vypnutie telemetrie môže byť true, yes o 1Ktorýkoľvek z týchto variantov povie enginu, aby neposielal údaje o používaní spoločnosti Microsoft z daného procesu alebo z podradených procesov, ktoré dedia prostredie.

Je dôležité pochopiť, že táto konfigurácia je založená na Premenné prostrediaPreto, ak chcete, aby bol trvalý, musíte ho definovať v príslušnom rozsahu (používateľ, počítač alebo spúšťacie skripty) pred spustením PowerShellu, nie po ňom.

Ak máte akékoľvek otázky týkajúce sa správy týchto premenných, pozrite si samotnú dokumentáciu na o_premenných_prostredia a sprievodca premennými prostredia PowerShell vám pomôže vybrať správny prístup v závislosti od operačného systému.

Nezabudnite tiež, že inštalačné balíky, ktoré distribuujú PowerShell, automaticky konfigurujú POWERSHELL_DISTRIBUTION_CHANNEL aby sa rozlíšil inštalačný kanál. Táto premenná je tiež zahrnutá v telemetrii, takže by sa nemala manuálne upravovať.

  Úplné riešenie: Chyba 0x80131500 v systéme Windows 10

Kľúčové premenné prostredia, ktoré ovplyvňujú PowerShell

PowerShell zaobchádza s premennými prostredia ako so špeciálnym dátovým typom, vždy vo forme dediteľné textové reťazce podradenými procesmiVďaka tomu sú ideálne na ovládanie globálnych možností, ako sú súkromie, aktualizácie alebo cesty k modulom.

Samotný engine definuje sériu špecifických premenných, medzi ktorými vynikajú nasledujúce: POWERSHELL_TELEMETRY_OPTOUT, POWERSHELL_DISTRIBUTION_CHANNEL, POWERSHELL_UPDATECHECK, PSExecutionPolicyPreference, PSModulePath, PSModuleAnalysisCachePath y PSDisableModuleAnalysisCacheCleanup.

En WindowsTieto premenné môžu existovať v rozsah stroja (systému), používateľa alebo procesuAktuálny proces automaticky kombinuje definície počítača a používateľa a akékoľvek zmeny, ktoré vykonáte v relácii, ovplyvnia iba daný proces, pokiaľ ich iným spôsobom nenastavíte ako trvalé.

Ak chcete upraviť hodnoty na úrovni počítača alebo používateľa z prostredia PowerShell, budete musieť použiť Trieda .NET System.Environment, ktorý sprístupňuje metódy na čítanie a zápis premenných v týchto rozsahoch, za predpokladu, že na to máte dostatočné oprávnenia.

Majte na pamäti, že keďže sú to reťazce, premenné prostredia môžu zreťaziť, vyprázdniť alebo odstrániť pomerne jednoducho, čo je veľmi užitočné pre zložité konfiguračné skripty alebo automatizáciu nasadenia.

Spôsoby prístupu a úpravy premenných prostredia v PowerShelle

PowerShell ponúka niekoľko spôsobov, ako dotazovať a upravovať premenné prostrediaV závislosti od toho, čo robíš (scenár (rýchly, komplexný modul, administratívna úloha) budete mať záujem o použitie jedného alebo druhého.

Najpriamejší spôsob je syntax premennej s predponou $Env:čo vám umožňuje prečítať hodnotu premennej alebo jej priradiť novú hodnotu, ako keby to bola napríklad akákoľvek iná premenná PowerShellu $Env:windir o $Env:Foo = "Algo".

Okrem toho môžete použiť poskytovateľ prostredia (Env:) so štandardnými cmdletmi prvkov (Get-Item, New-Item, Set-Item, Remove-Itematď.), čo poskytuje veľmi konzistentný prístup k spracovaniu jednotiek súborového systému.

V scenároch, kde chcete pracovať na úrovni počítača alebo používateľa, alebo integrovať s kódom .NET, máte k dispozícii metódy [Environment]::GetEnvironmentVariable() y [Environment]::SetEnvironmentVariable()Tieto metódy vám umožňujú explicitne zvoliť rozsah (Process, User o Machine) v systémoch Windows.

Od verzie PowerShell 7.5 existuje aj špecifické správanie: môžete nastaviť premennú na prázdny reťazec alebo na $null vyprázdniť alebo odstrániť ho z relácie pomocou syntaxe $Env: ako cez Set-Item alebo metódy System.Environment.

Premenné prostredia PowerShell súvisiace s telemetriou a správaním

Niekoľko interných funkcií PowerShellu závisí od premenných prostredia, ktoré fungujú ako dedičné preferenčné príznakyTo vám umožňuje upraviť správanie shellu alebo telemetrie bez nutnosti meniť kód v každom skripte.

Najzrejmejším je POWERSHELL_TELEMETRY_OPTOUTčo, ako sme už videli, slúži na deaktiváciu natívnej telemetrie enginu, keď je nastavená na true, yes o 1Aby sa to prejavilo, musí existovať pred spustením procesu PowerShell.

Ďalším veľmi dôležitým je POWERSHELL_DISTRIBUTION_CHANNELToto pole, ktoré inštalátori automaticky vypĺňajú od verzie PowerShell 7.2, aby označili spôsob inštalácie produktu, je zahrnuté v telemetrických údajoch, takže manuálna úprava sa neodporúča.

premenlivý POWERSHELL_UPDATECHECK Ovláda, ako a kedy sa zobrazujú upozornenia na aktualizácie. Akceptuje hodnoty ako napríklad Off Ak chcete funkciu deaktivovať, Default pre štandardné správanie alebo LTS dostávať upozornenia iba pre verzie s rozšírenou podporou.

Okrem toho, PSExecutionPolicyPreference odráža aktívnu politiku vykonávania v aktuálnej relácii, keď je nakonfigurovaná pomocou parametra -ExecutionPolicy, cmdlet Set-ExecutionPolicy s rozsahom Processalebo priamou úpravou premennej. Toto nastavenie ovplyvňuje najmä stiahnuté alebo nepodpísané skripty v systéme Windows.

A samozrejme, cesta vyhľadávania modulov je riadená pomocou PSModulePath, ktorý ukladá zoznam oddelený bodkočiarkou vo Windowse alebo zoznam oddelený dvojbodkami na platformách *nix, pričom externí inštalátori pridávajú systémové aj používateľské umiestnenia a dokonca aj cesty.

Analýza vyrovnávacej pamäte a modulov: jemné doladenie

PowerShell udržiava vyrovnávacia pamäť analýzy modulov na zrýchlenie vyhľadávania príkazy a vyhnúť sa neustálej kontrole všetkých dostupných modulov pri každom spustení alebo vyhľadávaní.

Premenná prostredia PSModuleAnalysisCachePath Definujte, kde sa má uložiť súbor vyrovnávacej pamäte. Predvolene odkazuje na cesty pod $Env:LOCALAPPDATA na Windows alebo ~/.cache/powershell V systémoch iných ako Windows s iným názvom súboru pre každú inštaláciu.

Ak chcete zmeniť toto umiestnenie, musíte nastaviť túto premennú pred spustením PowerShelluukazujúci na úplnú cestu (vrátane názvu súboru), kde má proces oprávnenia na zápis. Zmeny sa prejavia iba v procesoch, ktoré sa spustia po zmene.

Ak je vaším cieľom úplne zakázať ukladanie modulov do vyrovnávacej pamäte, môžete cestu smerovať do nezapisovateľného cieľa, napríklad NUL na Windows alebo /dev/null en LinuxPowerShell sa pokúsi zapísať do vyrovnávacej pamäte, nebude to úspešné, ale zároveň nevygeneruje žiadne viditeľné chyby v relácii.

Doplnkom je premenná PSDisableModuleAnalysisCacheCleanupAk to nastavíte na 1Zakáže automatické čistenie, ktoré odstráni položky modulov, ktoré už neexistujú, čo je užitočné v špecifických scenároch, kde sa nechcete dotknúť tejto vyrovnávacej pamäte.

Ďalšie premenné prostredia užitočné pre skripty a telemetriu

Okrem premenných špecifických pre PowerShell existuje sada premenných systémového prostredia, ktoré priamo ovplyvňujú ako sa skripty vykonávajú a ako sa systém správa terminálnajmä v multiplatformových prostrediach.

premenlivý PATH Toto určuje, v ktorých adresároch sa majú vyhľadávať spustiteľné súbory, čo je dôležité, ak chcete spúšťať externé binárne súbory zo skriptov PowerShell. V systéme Windows sú adresáre oddelené... ;zatiaľ čo v systéme Linux alebo macOS sa používa :.

Existujú aj Windowsy PATHEXTToto zobrazuje zoznam rozšírení, ktoré sa považujú za priamo spustiteľné. Ak chcete, aby sa v tej istej konzole spúšťal skriptovací jazyk (napríklad skriptovacie súbory), môžete použiť príslušný príkaz. .py), budete musieť sem zahrnúť rozšírenie a zaregistrovať ho v systéme pomocou nástrojov, ako napríklad assoc y ftype z CMD.

Na platformách iných ako Windows sa PowerShell prispôsobuje konvencii XDG pomocou premenných XDG_CONFIG_HOME, XDG_DATA_HOME y XDG_CACHE_HOME pre konfiguračné cesty, dáta a vyrovnávaciu pamäť, čo uľahčuje integráciu so zvyškom systému.

Pre funkcie farebného výstupu a ovládanie terminálu rešpektujte PowerShell 7.2 a novšie verzie. TERM y NO_COLORPodľa hodnoty TERM ANSI sekvencie sú zakázané alebo upravené a ak existuje NO_COLORVýstupný štýl je vynútený na obyčajný text bez farby.

  Razer Synapse sa stále sám spúšťa: Vypnite ho a vyhnite sa problémom v systéme Windows

Záznamy a výstup vašich skriptov Ovplyvňujú vzhľad protokolov a výstupov skriptov, čo ovplyvňuje zážitok z konzoly aj čitateľnosť zachytenej telemetrie pri presmerovaní výstupu do súborov.

Praktický príklad: Sophia Script a nastavenia súkromia a telemetrie

Jedným z najznámejších príkladov v komunite na úpravu systému Windows 10 pomocou PowerShellu je Skript Sophia pre Windows 10, sada funkcií zameraných na automatizáciu konfigurácie, ochrany súkromia a odinštalovania nepotrebných komponentov.

Medzi jeho možnosti patrí aj možnosť úprava súkromia systému a telemetrie, zakázať plánované diagnostické úlohy, odinštalovať OneDrive, zmeniť cestu k %TEMP% alebo premiestniť používateľské priečinky, ako napríklad Plocha, Dokumenty, Súbory na stiahnutieHudba, obrázky alebo videá prostredníctvom interaktívnych ponúk.

Ponúka tiež funkcie pre odinštalovať aplikácie UWP pre všetky účty rešpektujúce zoznam vylúčení konfigurovateľných prostredníctvom formulárov WPF, ako aj zakázanie funkcií systému Windows alebo odstránenie systémových možností pomocou vizuálnych sprievodcov.

Ďalšou zaujímavou časťou je, že to môže vytvárať úlohy v Plánovači úloh na pravidelné čistenie, úpravu ponuky Štart (pripnutie alebo odopnutie položiek), manipuláciu s možnosťami zabezpečenia v programe Microsoft Defender, ako je napríklad riadený prístup k priečinkom alebo vylúčenia, a obnovovanie ikon, premenných prostredia a panela úloh bez reštartovania Prieskumníka.

Stručne povedané, tento typ skriptu demonštruje, ako je možné kombináciou PowerShellu s konfiguráciami telemetrie, premennými prostredia a automatizáciou plne modelovať správanie systému Windows prispôsobiť ho politikám organizácie alebo osobným preferenciám.

Odosielanie telemetrie z PowerShellu do Application Insights

Okrem natívnej telemetrie PowerShellu mnoho aplikácií odosiela vlastné monitorovacie údaje do Prehľady aplikácií Azure MonitorNiekedy sa však po otvorení portálu Azure zobrazia grafy prázdne alebo chýbajú kľúčové záznamy.

Typickými príčinami sú zvyčajne chyby konfigurácie SDK alebo agenta Application Insights, sieťové bloky miesto požitia, obmedzenie alebo vylúčenie telemetrie v kanáli, konkrétne incidenty služby Log Analytics alebo problémy s dotazovaním rozhrania API api.applicationinsights.io.

Veľmi praktický prístup k izolácii zdroja problému spočíva v manuálne odoslať jeden testovací telemetrický protokol z PowerShellu alebo Curl. Ak sa tento záznam úspešne dostane do tabuľky protokolov zdroja Application Insights, viete, že veľká časť kanála funguje.

Keď testujete z toho istého počítača alebo prostredia, kde beží vaša aplikácia (napríklad virtuálny počítač alebo služba aplikácií), overujete tiež, že DNS, firewall, TLS a povolenia neblokujú cestu k požitiu.

V scenároch, kde je bod príjmu chránený pomocou Microsoft Entra ID (predtým Azure AD), musíte zabezpečiť, aby sa aplikácia alebo skript správne overoval pomocou Entra ID; inak bude telemetria zamietnutá, aj keď sa zvyšok inštrumentácie javí ako správny.

Skript PowerShellu na testovanie telemetrie dostupnosti

Ak chcete overiť, či celý obvod z vášho počítača do služby Application Insights funguje, môžete použiť Skript PowerShellu, ktorý odosiela výsledok testu dostupnostiTento typ telemetrie je ideálny, pretože nepodlieha mechanizmom odberu vzoriek pri príjme.

Myšlienka je jednoduchá: poskytnete pripojovací reťazec alebo prístrojový kľúčSkript ho rozdelí, aby extrahoval bod príjmu a InstrumentationKey, generuje JSON s AvailabilityData ako príklad a posiela ho s Invoke-WebRequest k zodpovedajúcemu koncovému bodu REST.

Ak zadáte iba kľúč inštrumentácie, skript vytvorí reťazec pripojenia s globálny koncový bod https://dc.services.visualstudio.com/Ak zadáte celý reťazec pripojenia, použije sa regionálny bod príjmu definovaný v ňom, a ak zadáte oba, bude mať prednosť bod definovaný v reťazci pripojenia.

Počas vykonávania, a Časová pečiatka vo formáte UTC ISO 8601Telo JSON sa naplní testovacími údajmi (trvanie, umiestnenie, správa, ďalšie vlastnosti) a odošle sa požiadavka POST. Odpoveď HTTP 200 s itemsReceived rovná sa itemsAccepted označuje, že miesto príjmu záznam prijalo a akceptovalo.

Potom jednoducho prejdite na kartu Denníky v zdroji Application Insights na portáli Azure, spustite dotaz pre príslušný typ a skontrolujte, či sa zobrazuje vzorový denník. Ak sa zobrazuje, viete, že problém je s najväčšou pravdepodobnosťou v SDK alebo agent, ktorý vaša skutočná aplikácia používa.

Testovanie telemetrie pomocou Curl v systéme Linux alebo Windows

Ak chcete testovať z prostredia Linuxu alebo macOS, alebo ak uprednostňujete použitie štandardných nástrojov namiesto PowerShellu, môžete rovnaký test vykonať pomocou curl odosiela POST požiadavku s obsahom JSON do koncového bodu Application Insights.

V týchto prípadoch vytvoríte podobné telo JSON s baseType rovná sa AvailabilityDataIdentifikátor vykonania, názov testu, trvanie, indikátor úspešnosti, umiestnenie, správa a voliteľné vlastnosti. Nezabudnite vždy upraviť polia time k nedávnej značkepretože Application Insights prijíma údaje staršie ako 48 hodín.

V systéme Linux alebo macOS príkaz zvyčajne obsahuje hlava Content-Type: application/json, metóda POST, vložený JSON a URL adresa bodu príjmu (napríklad https://dc.applicationinsights.azure.com/v2.1/track). Vo Windowse sa syntax mierne mení, pretože pri odovzdávaní JSON ako argumentu musíte úvodzovky vložiť do úvodzoviek.

Keď to urobíte, znova skontrolujete odpoveď HTTP a ak je správna, prejdete do denníkov Application Insights, aby ste overili, či je vaša testovacia telemetria teraz uložená a či je možné ju dotazovať, rovnako ako v prípade skriptu PowerShell.

Tento prístup vám umožňuje na prvý pohľad vylúčiť problémy s konfiguráciou SDK so zameraním na sieťové, DNS, TLS, overovanie koncových bodov alebo pravidlá vzorkovania na základe príznakov, ktoré vidíte v reakcii.

  Ako ovládať obrazovku systému Android pomocou SCRCPY vo Windowse

Skript PowerShellu na testovanie telemetrie požiadaviek

Okrem testov dostupnosti vás často zaujíma aj kontrola Telemetria HTTP požiadavieknajmä ak sú vaše dashboardy založené na metrikách prichádzajúcich požiadaviek z rozhrania API alebo webovej aplikácie.

Na to môžete použiť iný skript PowerShellu, veľmi podobný skriptu o dostupnosti, ale tentoraz generuje JSON s baseType rovná sa RequestDataZvyčajne sú zahrnuté polia ako napríklad identifikátor požiadavky a názov operácie. GET /ruta/prueba/), čas začiatku, trvanie, URL, kód odpovede a metóda HTTP.

Skript sa riadi rovnakými mechanizmami: rozdelí reťazec pripojenia alebo kľúč inštrumentácie, zostaví URL adresu pre príjem (v2/track), vypočíta aktuálny čas v UTC, zostaví JSON a vykoná Invoke-WebRequest pomocou metódy POSTAk sa v odpovedi zobrazí kód 200 a očakávaný obsah, časť na príjem funguje.

Tu je dôležitý bod: aplikácie môžu byť skutočne ovplyvnené mechanizmy odberu vzoriek Na strane servera. Ak ste nakonfigurovali vzorkovanie na zníženie objemu údajov, nemusíte vidieť všetky požiadavky na testovanie, pokiaľ ho dočasne nezakážete alebo neupravíte percentá.

Keď sa váš testovací protokol zobrazí v Application Insights, ďalším krokom je zamerať sa na to, ako je váš kód inštrumentovaný (SDK, filtre, vzorkovanie, vylúčenia atď.), aby ste zistili, prečo sa skutočné požiadavky nezaznamenávajú tak ľahko ako manuálne testy.

Bežné problémy s protokolom SSL/TLS pri odosielaní telemetrie

Nie je nezvyčajné stretnúť sa s chybami súvisiacimi so spúšťaním týchto testovacích skriptov. SSL alebo TLS počas handshakenajmä v obmedzených prostrediach alebo keď firemné proxy kontrolujú prevádzku.

Mnohé služby Azure vrátane Application Insights vyžadujú aspoň TLS 1.2 a špecifické šifrovacie sady na akceptovanie pripojení. Ak systém alebo aplikácia naďalej štandardne používa TLS 1.0 alebo 1.1, pripojenie môže zlyhať ešte predtým, ako server spracuje JSON.

PowerShell umožňuje vynútiť podporované protokoly nastavením [System.Net.ServicePointManager]::SecurityProtocol pred vykonaním Invoke-WebRequestMôžete vyskúšať SSL3, TLS, TLS 1.1, TLS 1.2 alebo TLS 1.3, aby ste zistili, čo funguje vo vašom prostredí, hoci v produkčnom prostredí sa odporúča dodržiavať bezpečnostné pokyny.

Ak máte aj proxy servery alebo firewally, ktoré vykonávajú kontrolu SSL, overenie certifikátu môže zlyhať. Existuje možnosť zakázať overovanie certifikátu vytvorenie vlastnej politiky, ktorá vždy vracia hodnotu true, ale toto by ste mali používať iba diagnosticky a nikdy nie ako trvalé riešenie.

Ak potrebujete zmeniť predvolené verzie TLS používané aplikáciami .NET v systéme Windows, správny postup je nasledovať tieto kroky: Oficiálne odporúčania pre konfiguráciu TLS v registri a v samotnom frameworku, namiesto zavádzania roztrúsených hackov v skriptoch.

Chyby overovania v službe Microsoft. Zadajte ID v aplikácii Application Insights.

Ak je váš zdroj Application Insights nakonfigurovaný na prijímanie iba Autentifikácia pomocou Microsoft Enter ID (predtým Azure AD), telemetria odoslaná s inštrumentačným kľúčom bez platných prihlasovacích údajov bude zamietnutá s jasnými chybami HTTP.

Kód HTTP 400 so správou, že klasické overovanie nie je podporované To zvyčajne znamená, že zdroj je označený iba ako Entra ID, ale SDK alebo skript volá staré API. V takom prípade je potrebné skontrolovať konfiguráciu SDK a použitý pripojovací reťazec.

Chyba HTTP 401 „Vyžaduje sa autorizácia“ To naznačuje, že SDK sa pokúša použiť Entra ID, ale nemôže získať platný token; môže to byť spôsobené tým, že spravovaná identita nie je povolená, chýbajú poverenia alebo sú potrebné problémy s Azure Identity na klientovi.

Kód HTTP 403 „Neoprávnené“ Toto znamená, že bol získaný token, ale použitá identita nemá dostatočné povolenia pre zdroj Application Insights alebo predplatné. V tomto prípade by ste mali skontrolovať riadenie prístupu a uistiť sa, že identita má minimálne rolu Vydavateľ monitorovacích metrík.

V závislosti od jazyka (Node.js, Pytónatď.), je vhodné aktivovať interné protokoly SDK alebo protokoly služby Azure Identity, aby ste presne zistili, ktorá fáza overovania zlyháva a s akou správou sa spúšťa.

Telemetria, skripty a osvedčené postupy v reálnych prostrediach

Všetko vyššie uvedené znamená, že keď chcete Pridanie telemetrie do skriptov v PowerShelleMáte na správu dve úrovne: na jednej strane automatickú telemetriu samotného enginu a na druhej strane explicitnú telemetriu, ktorú odosielate do systémov, ako sú Application Insights alebo iné ciele.

Na natívnej úrovni je kľúčové vedieť, ako to funguje POWERSHELL_TELEMETRY_OPTOUT, aké údaje sa zhromažďujú na začiatku a počas relácie a ako sa premenné, ako napríklad POWERSHELL_DISTRIBUTION_CHANNEL o POWERSHELL_UPDATECHECK kontrolovať globálne správanie.

Pokiaľ ide o vaše skripty, môžete využiť premenné prostredia, poskytovateľa Env:, metódy System.Environment a nástroje ako Sophia Script pre Úprava politík ochrany osobných údajov, trás, vyrovnávacej pamäte a vykonávania, zatiaľ čo implementujete procesy na odosielanie metrík a protokolov do externých služieb.

Kombináciou manuálneho telemetrického testovania s PowerShellom a Curlom, monitorovaním TLS protokolov a správnou konfiguráciou autentifikácie pomocou Microsoft Entra ID je možné dosiahnuť robustný a spoľahlivý telemetrický kanál aj vo vysoko kontrolovanom korporátnom prostredí.

Keď pochopíte, ako je celá táto telemetrická vrstva organizovaná, od environmentálnych premenných až po cloudové spracovanie, rozhodnutie je oveľa jednoduchšie. ktoré páky stlačiť Ak sa jedného dňa vaše grafy alebo protokoly Azure záhadne prestanú aktualizovať.