Fórum Root.cz
		Hlavní témata => Windows a jiné systémy => Téma založeno: neregistrovany  18. 09. 2024, 00:25:19
		
			
			- 
				Potřebuju scriptem číst zda se aktuálně indexují jen názvy souborů či také jejich obsah. V GUI se to kliká v okně Indexing Options -> Advanced -> File Types -> 'Indexing Properties Only' nebo 'Indexing Properties and File Content'. Potřebuju shell scriptem zjistit, která z těch dvou voleb je aktivní. V registrech to ZABOHA nemůžu najít.... Netuší někdo?
			
- 
				ChatGPT říká, že to powershellem nejde. Že jen jestli je na složce indexování zapnuto, ale jestli je jen na názvy souborů nebo i na obsah říká, že z PS nezjistíš.
 
 O informaci v registru říká toto (jestli to čtu správně, tak je to jen filtr podle typu, resp přípony):
 
 Ano, informace o indexování složek a nastavení indexování můžeš najít v registru Windows. Konkrétně nastavení indexování souborů a složek je uloženo v následujícím klíči:
 
 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search
 
 Tady je několik zajímavých klíčů týkajících se indexování:
 
 FileChangeClientConfigs – Tento klíč obsahuje informace o tom, jaké složky jsou indexovány a jaké ne.
 Gather – Zde můžeš najít základní nastavení služby indexování.
 SetupCompletedSuccessfully – Informace o tom, zda byl systém indexování úspěšně nakonfigurován.
 Dále, detailní nastavení, jestli se indexují pouze názvy souborů nebo jejich obsah, najdeš podle typu souborů v sekci:
 
 HKEY_CLASSES_ROOT
 
 Zde se nachází jednotlivé typy souborů a jejich asociace. Každý typ souboru může obsahovat podklíč, který určuje, zda je daný typ souboru indexován, nebo zda se indexuje pouze název, nebo i obsah.
 
 Například pro soubory .txt můžeš najít relevantní nastavení zde:
 
 HKEY_CLASSES_ROOT.txt
 
 V rámci této větve může být klíč PersistentHandler, který určuje, jak je soubor zpracováván pro indexaci.
 
 Zjištění, zda je obsah indexován:
 Pro každý typ souboru je nastaven Indexing Filter, který rozhoduje, zda se indexuje pouze název nebo i obsah. Zde je příklad:
 
 Pouze názvy souborů – Pokud v registru není uveden filtr pro daný typ souboru, systém indexuje pouze názvy souborů.
 
 Indexování obsahu – Pokud je uveden filtr (např. Plain Text Filter pro textové soubory), indexuje se i obsah.
 
 Indexovací filtry jsou uloženy v tomto klíči registru:
 
 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\KindMap
 
 Zde můžeš najít mapování mezi příponami souborů a jejich druhy pro účely indexace.
 
 Jak to zjistit pomocí PowerShellu?
 Pokud chceš zkusit zjištění přímo přes PowerShell, tady je příklad, jak bys mohl načíst hodnotu z registru pro přípony souborů a jejich asociace:
 
 powershell
 Zkopírovat kód
 # Příklad pro .txt soubory
 $regPath = "HKCR\.txt"
 $indexFilter = Get-ItemProperty -Path Registry::$regPath | Select-Object -ExpandProperty "(Default)"
 
 # Zobrazí, jaký filtr je použit pro indexaci
 $indexFilter
 Tento skript vrátí asociaci pro daný typ souboru a pokud je přidán filtr pro indexování obsahu, bude zde viditelný.
 
 Můžeš si tímto způsobem procházet jednotlivé přípony a jejich nastavení.
 
- 
				Díky za snahu. Jen pro upřesnění, nepotřebuju to číst powershellem, ale jen shellem (cmd.exe - tedy příkaz "reg query").
 
 Jinak v "HKCR\.txt" nic zajímavého není, a chvilku s GPT chatem už jsem měl taky ;-)
 
 nicméně myšlenka že se to nastavuje pro jednotlivé typy souborů je zajímavá, protože na mém obstarožním PC po změně té volby a potvrzení vyběhne peak CPU aktivity a PC  na dvě či tři vteřiny skoro "zamrzne", to by nasvědčovalo tomu, že se tam někde provádí dávková změna nad mrtě daty, ale nepodařilo se mi zjistit kde. A to jsem zkoušel už i odchytávat aktivitu v registrech procmonem :-/
- 
				Ehm ...
 
 V registrech nic takovyho neni, ani byt nemuze je to atribut souboru
 
 https://learn.microsoft.com/en-us/windows/win32/fileio/file-attribute-constants
 
 FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
 
 A samo to funguje uplne stejne jako kdyz budes na foder/disk nastavovat nejaky opravneni = pobezi to klidne par hodin, protoze to bude prochazet a setovat kazdy jeden soubor.
 
- 
				zkusil jsem ten atribut přečíst na náhodném souboru pomocí příkazu
 
 powershell.exe "(Get-Item 'soubor.txt').Attributes -band [System.IO.FileAttributes]::NotContentIndexed"
 
 dostal jsem 0
 
 zkusil jsem volbu v GUI přepnout, počkal jsem až to dojede indexing a zkusil znovu, zase 0. Přepnutí v GUI zpátky, dojetý indexing, zase 0.
 
 Buď něco dělám blbě, nebo to není ono...
- 
				Mně to v zásadě funguje.
 Příklad:
 C:\Users\User\pokus>copy con soubor1.txt
 ^Z
 1 file(s) copied.
 
 C:\Users\User\pokus>copy con soubor2.txt
 ^Z
 1 file(s) copied.
 
 C:\Users\User\pokus>dir /A:I
 Volume in drive C has no label.
 Volume Serial Number is 1C3B-52A4
 
 Directory of C:\Users\User\pokus
 
 File Not Found
 
 C:\Users\User\pokus>dir /A:-I
 Volume in drive C has no label.
 Volume Serial Number is 1C3B-52A4
 
 Directory of C:\Users\User\pokus
 
 19.09.2024  00:01    <DIR>          .
 19.09.2024  00:01    <DIR>          ..
 19.09.2024  00:01                 0 soubor1.txt
 19.09.2024  00:01                 0 soubor2.txt
 2 File(s)              0 bytes
 2 Dir(s)  340 135 120 896 bytes free
 
 C:\Users\User\pokus>attrib +I soubor1.txt
 
 C:\Users\User\pokus>dir /A:-I
 Volume in drive C has no label.
 Volume Serial Number is 1C3B-52A4
 
 Directory of C:\Users\User\pokus
 
 19.09.2024  00:01    <DIR>          .
 19.09.2024  00:01    <DIR>          ..
 19.09.2024  00:01                 0 soubor2.txt
 1 File(s)              0 bytes
 2 Dir(s)  340 134 998 016 bytes free
 
 C:\Users\User\pokus>dir /A:I
 Volume in drive C has no label.
 Volume Serial Number is 1C3B-52A4
 
 Directory of C:\Users\User\pokus
 
 19.09.2024  00:01                 0 soubor1.txt
 1 File(s)              0 bytes
 0 Dir(s)  340 134 998 016 bytes free
 
 C:\Users\User\pokus>powershell.exe "(Get-Item 'soubor1.txt').Attributes -band [System.IO.FileAttributes]::NotContentIndexed"
 NotContentIndexed
 
 C:\Users\User\pokus>powershell.exe "(Get-Item 'soubor2.txt').Attributes -band [System.IO.FileAttributes]::NotContentIndexed"
 0
Je třeba si jen uvědomit, že ten atribut se jmenuje „Not content indexed files“ - tedy soubor, který ten atribut má nastavený, se NEindexuje. A default je ten atribut NEnastavený, tedy soubor (jeho obsah) se indexuje.
 
 Jinak v GUI se to nastavuje v Atributy - Upřesnit.
- 
				jenže ono jde o něco jiného: jak v commandlajně detekovat toto nastavení https://imgpaste.net/image/SD920N
			
- 
				jenže ono jde o něco jiného: jak v commandlajně detekovat toto nastavení https://imgpaste.net/image/SD920N
 
 
 Mno vsechny chujoviny kolem jsou tuhle ProgramData\Microsoft\Search takze si uzij dekodovani tech binarnich sragor. A navic ti to bude uiplne knicemu, protoze z toho stejne nijak nezjistis, jestli ten ci onen soubor je nebo neni aktualne indexovanej.
- 
				Díky za snahu. Jen pro upřesnění, nepotřebuju to číst powershellem, ale jen shellem (cmd.exe - tedy příkaz "reg query").
 
 Jinak v "HKCR\.txt" nic zajímavého není, a chvilku s GPT chatem už jsem měl taky ;-)
 
 nicméně myšlenka že se to nastavuje pro jednotlivé typy souborů je zajímavá, protože na mém obstarožním PC po změně té volby a potvrzení vyběhne peak CPU aktivity a PC  na dvě či tři vteřiny skoro "zamrzne", to by nasvědčovalo tomu, že se tam někde provádí dávková změna nad mrtě daty, ale nepodařilo se mi zjistit kde. A to jsem zkoušel už i odchytávat aktivitu v registrech procmonem :-/
 
 
 Říkal jsem si, že přes PS by se s tím pracovalo pohodlněji.
 
 Při vlepení jsem to nekontroloval, zprasila to schránka, Ve výpisu v prohlížeči je to dobře, tady několik řádků úplně chybí.
 
 Ten filtr na přípony mě překvapil taky, protože z nastavení v GUI plyne, že by se to mělo týkat obsahu konkrétní složky, ať je v ní cokoli.
- 
				jenže ono jde o něco jiného: jak v commandlajně detekovat toto nastavení https://imgpaste.net/image/SD920N
 
 
 Mno vsechny chujoviny kolem jsou tuhle ProgramData\Microsoft\Search takze si uzij dekodovani tech binarnich sragor. A navic ti to bude uiplne knicemu, protoze z toho stejne nijak nezjistis, jestli ten ci onen soubor je nebo neni aktualne indexovanej.
 
 
 cesta %ProgramData%\Microsoft\Search obsahuje pouze (prázdný) adresář 'data' (win10, 64bit)
- 
				Ne to rozhodne neobsahuje "prazdny adresar", to jen ty neumis ten folder as admin otevrit.
 
 tree c:\ProgramData\Microsoft\Search\Data
 
 C:\PROGRAMDATA\MICROSOFT\SEARCH\DATA
 ├───Applications
 │   └───Windows
 │       ├───Config
 │       ├───GatherLogs
 │       │   └───SystemIndex
 │       └───Projects
 │           └───SystemIndex
 │               ├───PropMap
 │               └───SecStore
 └───Temp
 └───usgthrsvc
 
- 
				Máte pravdu. Bylo třeba dělat listing jako admin
 
 jdu to zkoumat...