Tento príkaz PowerShell zoznamuje všetky spúšťacie aplikácie, ktoré vám Windows nezobrazuje


Ak ste niekedy otvorili Správcu úloh, aby ste skontrolovali spúšťacie aplikácie ako zodpovedný používateľ Windows, mám pre vás novinku - zoznam spúšťacích aplikácií v Správcovi úloh Windows vám klame. Nemôžete optimalizovať svoj počítač na rýchlejšie spúšťanie tým, že vypnete spúšťacie aplikácie, ak nevidíte všetky spúšťacie procesy.

To, čo vám Windows ukazuje v Správcovi úloh, je upravený zoznam štartovacích aplikácií z programov a služieb, ktoré ste nainštalovali, nie celá situácia. Skutočný zoznam programov, ktoré sa načítavajú pri spustení Windows, je oveľa dlhší a Windows nemá v úmysle vám ho ukázať, pokiaľ nepoznáte tento PowerShell príkaz.

Príkaz PowerShell pre všetky vaše potreby pri spustení

Jeden riadok, ktorý vyhľadáva všade, kde Windows skrýva veci

Otvorte PowerShell, ideálne ako správca, pretože niektoré z týchto položiek vyžadujú zvýšené oprávnenia na zobrazenie, a spustite nasledujúci príkaz:

Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location, User | Format-List

A to je všetko. Tento jediný príkaz vám ukáže spúšťacie položky, na ktoré Správca úloh ani len nenaznačil. Ak uprednostňujete interaktívnejší zoznam, nahraďte prepínač Format-List prepínačom Out-GridView, aby ste získali vyhľadávateľnú a triediteľnú tabuľku v samostatnom okne. To vám umožní filtrovať položky a skutočne pochopiť údaje, ktoré vidíte.

Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location, User | Out-GridView

A nakoniec, ak chcete tento zoznam uložiť na neskoršie porovnania, napríklad na audit systému v priebehu času, môžete výsledky tiež presmerovať do textového súboru:

Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location, User | Format-List > C:\startup_audit.txt

Je to relatívne jednoduchý príkaz na použitie, keď raz pochopíte syntax, a v závislosti od toho, ako dôkladne sledujete výkon svojho PC, sa môže veľmi rýchlo stať obľúbeným. Je to tiež jeden z tých Windows príkazov, ktoré sa ľahko naučia, ale majú veľký význam.

Hĺbi oveľa viac, než si myslíš

Spúšťacie priečinky, kľúče databázy Registry a všetko medzi tým






Hlavným hnacím faktorom tohto príkazu je trieda WMI (Windows Management Instrumentation) nazývaná Win32_StartupCommand, ktorú spoločnosť Microsoft oficiálne definuje ako „príkaz, ktorý sa spustí automaticky, keď sa používateľ prihlási do počítačového systému.“ Bola navrhnutá pre lokálne použitie aj vzdialenú správu, čo znamená, že IT administrátori ju môžu spustiť na sieťových počítačoch bez toho, aby ich fyzicky dotkli.

Trieda poskytuje osem vlastností pre každý štartovací záznam, ktorý nájde: Caption, Command, Description, Location, Name, SettingID, User a UserID. Všetky sú užitočné, ale dve, ktoré potrebujete najviac, sú Location a User, pretože vám presne povedia, kde sa záznam nachádza v registri alebo súborovom systéme a ku ktorému účtu patrí.

Windows má pomerne veľa miest, kde sa programy môžu zaregistrovať, aby sa spustili pri štarte. Problém je v tom, že Správca úloh sleduje len ich podmnožinu. Tento príkaz PowerShell zobrazuje položky z nasledujúcich ciest Registru:

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run: Platí pre všetkých používateľov na počítači. Používa ho väčšina bežných spúšťacích položiek.
  • HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run: Spúšťa sa na báze konkrétneho používateľa, keď sa prihlási konkrétny používateľ.
  • HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run: Ukladá spúšťacie položky pre 32-bitové programy spustené na 64-bitovej verzii Windows.

Okrem týchto hlavných ciest existujú RunOnce varianty prvých dvoch kľúčov, ktoré by sa mali spustiť raz a potom sa samé vymazať. Tento mechanizmus používajú inštalátory a aktualizačné služby, ale nie vždy sa správne vyčistí. Pri tretej ceste Windows automaticky spracúva presmerovanie registrov, ale Správca úloh môže prehliadnuť položky v tomto uzle, čo spôsobuje, že registrácie spúšťania 32-bitových programov sú na 64-bitových systémoch prakticky neviditeľné, kým ich nezačnete hľadať.

A potom sú tu spúšťacie priečinky. Rovnako ako kľúče registra, aj tieto sú rozdelené na jednotlivých používateľov a celosystémové nasledovne:

  • C:\Users[Username]\AppData\Roaming\Microsoft\Windows\Štartovník\Programy\Štart (pre používateľa)
  • C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup (pre celý systém)

Akékoľvek skratky programov umiestnené v týchto priečinkoch sa spustia pri štarte Windows. Ako pravdepodobne tušíte, tieto priečinky sa zobrazujú aj cez príkaz Win32_StartupCommand.

A áno, stále mu chýbajú niektoré štartovacie časy

Kde sa veci stále môžu schovať

Ak ste si mysleli, že ste odhalili všetky tajomstvá spúšťania Windows len jedným príkazom, nemýlite sa. Win32_StartupCommand je vylepšenie oproti Správcovi úloh, ale nezobrazuje nasledujúce:

  • Naplánované úlohy nastavené na spustenie pri prihlásení
  • Služby Windows nastavené na automatické spustenie
  • Body rozšíriteľnosti pri automatickom spustení (ASEP)

Najlepšou možnosťou tu je použiť vlastný nástroj spoločnosti Microsoft Sysinternals Autoruns. Pokrýva viac ako 200 miest automatického spustenia, vrátane rozšírení prehliadača, rozšírení shellu, Winlogon notifikácií a ďalšie.

To povedané, Autoruns je samostatné sťahovanie, vyžaduje inštaláciu a je oveľa ohromujúcejší než jednoduchý príkaz PowerShell. Okrem toho, nie všetko, čo vám Autoruns ukáže, má zmysel vypnúť. Niektoré z nich sú služby Windows alebo programov, ktoré potrebujete, aby systém správne fungoval.

WIn32_StartupCommand trafí do čierneho pomedzi prístupnosť a detail pre väčšinu používateľov, ktorí si len chcú realisticky predstaviť, čo sa načítava pri štarte. To znamená, ak nechcete vedieť každý jednotlivý proces, ktorý Windows spúšťa pri zavádzaní.

Spustite to raz — uvidíte, prečo je to dôležité

Najrýchlejší spôsob, ako vyčistiť čas spúšťania

Zrejmým dôvodom na spustenie tohto príkazu je čas spustenia a výkon. Ak sa váš počítač zdá byť pomalý pri štarte, položky, ktoré vám Správca úloh nezobrazí, môžu byť práve tým riešením. Kontrolóry aktualizácií, agenti cloudovej synchronizácie, telemetrické démony a OEM bloatware sú všetci vinníci, ktorí sa skrývajú mimo pohľadu Správcu úloh a spomaľujú váš systém.

Existuje aj bezpečnostný aspekt, ktorý stojí za zmienku. Kľúče Registry Run sú jedným z najčastejšie zneužívaných mechanizmov pretrvania škodlivého softvéru. Pravidelné spúšťanie tohto príkazu PowerShell, ukladanie výstupu do súboru a porovnávanie s známym, čistým základom, je rýchly spôsob, ako odhaliť neoprávnené pridania skôr, než sa z nich stane väčší problém. Preto je tento príkaz jedným z mojich najčastejšie používaných príkazov vo Windows PowerShell.

Cieľom nie je vymazávať všetko, čo nepoznáte — to je skvelý spôsob, ako poškodiť váš operačný systém. Cieľom je skutočne vedieť, čo beží na pozadí vo vašom počítači. Správca úloh nebol navrhnutý na to, aby vám poskytol tento prístup; terminál bol.

Súvisiace články