Dejte uživatelům práva instalovat a můžete si být jistí
že PC se přestane hýbat.Na vině jsou programy po spuštění které prodlužují
start a navíc ubírají systémové prostředky.Takže jak tento balast dostat z PC. Můžeme obcházet
jednotlivé uživatele přihlásit se jako admin a pomocí MSCONFIGu udělat
čistku.
Jinak řečeno zdlouhavé a neefektivní.Pak můžeme použít VNC nebo třeba vzdálenou plochu což opět znamená přehlášení a
vyrušení uživatelů od práce.
Pokud chceme smazat nějaký program po spuštění aniž
bychom museli vyrušovat uživatele smažeme prostě klíč.
Ano program po spuštění není nic víc než hodnota v registru
tak proč nevyužit vzdálené registry.Uživatel nic nepozná a po restartu PC
je
vše hotovo.Ale co když máme 100 pc ze kterých potřebujeme dostat
jeden klíč?..... Napíšeme skript.
Tento skript ve svém základu ukáže programy po spuštění
na PC které si zvolíte(zapíšete do síťové cesty).Jednoduše zadáte PC a
powershell vám vypíše jaké programy startují spolu s windows.
Provede to tak že si vzdáleně sáhne do registru a načte
hodnoty.Daleko jednoduší je použít toto:
Get-WmiObject Win32_StartupCommand -computername kontrolovanePC
Jenže tento příkaz vám sice vrátí to co potřebujeme,ale pro
další práci se nehodí(nebo možná ano ale mě se spousta věcí nedařila)
Dole v skriptu jsou řádky které již registr modifikují.Jsou
zakomentované takže skript můžete klidně spustit nedělá nic jiného než že
čte.Pokud se rozhodnete mazat hodnoty nebo je přidávat musíte řádky odkomentovat.Momentálně
je cesta nastavena na programy po spuštění takže se vše odehrává tam.
Pokud by skript měl měnit či mazat registr na více PC stačí celý kod zabalit do funkce kdy jména strojů načteme z textového souboru a budeme je zasílat funkci ke zpracování viz skript nelegální obsah MP3.Samozřejmě nesmíme zapomenout změnit (kontrolovanéPC) na proměnnou která bude reprezentovat název právě kontrolovaného stroje.
PS:Tento
powershell skript je universální a dovoluje vzdáleně modifikovat nebo ovládat vše v registru
stačí jen změnit cesty.Prakticky je toto nástroj jak pomocí powershellu vzdáleně ovládat registry.
################################ Vytvoril:Petr Skrivan
####################################
<#
Zde uvadim adresare a jejich
ciselne ekvivalenty
HKEY_CLASSES_ROOT 2147483648
HKEY_CURRENT_USER 2147483649
HKEY_LOCAL_MACHINE 2147483650
HKEY_USERS 2147483651
HKEY_CURRENT_CONFIG 2147483653
HKEY_DYN_DATA 2147483654
#>
#kazdy adresar v registru je
nazván jménem ale má i svou číselnou hodnotu
#...zde pracujeme s číselnou
hodnotou kterou přidělíme proměnné napr.
$hkcu= 2147483649
$hklm= 2147483650
#vytvarime nove spojeni(objekt)
na konkretni stanici za urcitym ucelem
$wmi = [WMIClass]"\\kontrolovanéPC\root\default:stdRegProv"
#do promenne ulozime kompletni
cestu ke klici
$klic="software\microsoft\windows\currentversion\run"
#doslova:vypis hodnoty klice v
zadane ceste takze vypise programy po spusteni(jen jmena)
$wmi.enumvalues($hklm,$klic) | select -ExpandProperty snames
############# tyto radky odkomentujte pokud chcete vytvorit
novou hodnotu ############
#pokud vytvarime novou hodnotu tak toto
bude jeji jmeno
#$novahodnotajmeno="Neco po
spusteni"
#pokud vytvarime novou hodnotu s obsahem
tak toto je obsah
#$novahodnotaobsah="c:\atd"
#vytvor novou
hodnotu v zadane ceste se zadanym jmenem a udanymi hodnotami
#$wmi.SetStringValue($hklm, $klic,
$novahodnotajmeno, $novahodnotaobsah)
########### tyto radky odkomentujte pokud chcete mazat nějakou
hodnotu ################
#zde priradime konktretni vec kterou
budeme mazat
#$cosmazat="zde zapiste jmeno
programu po spusteni"
#smaz hodnotu v zadane ceste dle udaneho
jmena
#$wmi.deletevalue($hklm,$klic,$cosmazat)
Žádné komentáře:
Okomentovat