abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 07:00 | Komunita

Projekty Elasticsearch a Kibana změní s verzí 7.11 licenci. Už se nebude jednat o open source software. Důvodem změny licence byl spor se společností AWS (Amazon Web Services). AWS na změnu licence odpovídá vlastním forkem. Vycházet bude z verze 7.10 a zůstane pod open source licencí Apache.

Ladislav Hagara | Komentářů: 0
včera 23:33 | Komunita

Lidé ze společnosti Corellium se včera na Twitteru pochlubili screenshotem Ubuntu na Apple Siliconu aneb zprovoznili Ubuntu na počítači Apple s novým ARM procesorem M1. CTO jej už používá k vývoji ve svém herním křesle s 49 palcovým monitorem. Dnes byly na blogu Corellium publikovány detaily a pro případné zájemce i návod a obraz ke stažení. Upravili obraz Ubuntu pro Raspberry Pi.

Ladislav Hagara | Komentářů: 4
včera 13:22 | IT novinky

Rodina počítačů Raspberry Pi se rozšířila o jednočipový počítač Raspberry Pi Pico v ceně 4 dolary s vlastním procesorem RP2040. Představení na YouTube.

Ladislav Hagara | Komentářů: 10
20.1. 22:33 | Komunita

Společnost Red Hat na svém blogu oznámila, že Red Hat Enterprise Linux (RHEL) bude možné provozovat zdarma na 16 serverech.

Ladislav Hagara | Komentářů: 25
20.1. 14:55 | Bezpečnostní upozornění

Pod společným názvem DNSpooq byly zveřejněny informace o 7 bezpečnostních chybách v DNS caching a DHCP serveru dnsmasq. Jedná se o cache poisoning (CVE-2020-25686, CVE-2020-25684, CVE-2020-25685) a buffer overflow (CVE-2020-25687, CVE-2020-25683, CVE-2020-25682, CVE-2020-25681). Jejich kombinací lze dosáhnout závažnosti CVSS 9.8. Chyby jsou opraveny v dnsmasq 2.83.

Ladislav Hagara | Komentářů: 2
20.1. 13:33 | Nová verze

Byla vydána nová stabilní verze 19.07.6 (Changelog) linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Řešena je také řada bezpečnostních chyb. Především v dnsmasq (DNSpooq).

Ladislav Hagara | Komentářů: 0
20.1. 08:00 | Nová verze

Google Chrome 88 byl prohlášen za stabilní (YouTube). Nejnovější stabilní verze 88.0.4324.96 přináší řadu oprav a vylepšení. Vylepšeny byly také nástroje pro vývojáře (YouTube). Opraveno bylo 36 bezpečnostních chyb. Nálezci nejvážnější z nich (CVE-2021-21117) bylo vyplaceno 30 000 dolarů.

Ladislav Hagara | Komentářů: 12
20.1. 07:00 | Nová verze

Byla vydána nová verze 4.4.2 svobodného programu pro skicování, malování a úpravu obrázků Krita (Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
19.1. 14:33 | Komunita

Vedle Hectora "marcan" Martina a Asahi Linuxu portují Linux na Apple Silicon aneb na počítače Apple s novým ARM procesorem M1 také lidé ze společnosti Corellium. V sobotu se na Twitteru pochlubili bootováním Linuxu na M1. Dnes zveřejnili zdrojové kódy (Preloader-M1 a Linux-M1).

Ladislav Hagara | Komentářů: 56
19.1. 11:33 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje na kritické zranitelnosti v Orbit Fox pluginu pro WordPress. Správci CMS WordPress, kteří mají nainstalované rozšíření Orbit Fox, by měli provést co nejdříve upgrade rozšíření na poslední verzi 2.10.3. Dvě nedávno nalezené zranitelnosti, stored XSS a možnost eskalace oprávnění, umožňují útočníkovi kompletní ovládnutí webové stránky.

Ladislav Hagara | Komentářů: 0
Jestliže používáte distribuci CentOS, kterou náhradu plánujete vzhledem k oznámenému ukončení vydávání?
 (28%)
 (3%)
 (2%)
 (23%)
 (0%)
 (2%)
 (42%)
Celkem 181 hlasů
 Komentářů: 3, poslední 10.1. 13:01
Rozcestník

SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...

21.2.2012 21:35 | Přečteno: 4266× | windows | poslední úprava: 22.2.2012 07:29

Jako správný slepovač kódu jsem se své role ujal v nemalém množství a to, co z toho vypadlo, zapřičiní infarkty nemálo lidem :-/

Inu, všechno začalo tak, že jsem nastoupil do práce. V síti byl novell netware 5.1 a všichni se na něj připojovali. Začal jsem si tedy pohrávat s runscripty netware. Dá se přes ně nastavit dosti věcí, ale ve finále je to stále jen okrajové. Oči mi zazářily, když jsem spatřil v dokumentaci k netware, že umí spouštět i exe soubory :). Začal jsem tedy přemýšlet, jak nato. Nejsem žádný programátor, ani mne programování nebaví, tak jsem si řekl, že se vydám cestou registrů :).


Ve firmě máme zakoupeno pár licencí na Visual Studio 2005/2008/2010, ale EE verze pro slepovače postačuje :). Po chvilce googlení jsem se dohrabal k ukázkovým zdrojákům pro práci s registry. Po delší době jsem nakonec vzorové příklady tak nějak pochopil, podařilo se mi rozběhat a donutit VS2005EE, aby můj projekt kompiloval staticky. V průběhu času jsem si s pomocí dalších příkladů a dokumentace dopsal funkce pro další práci s registry, jelikož můj prvotní funkční projekt uměl jen zapisovat řetězové hodnoty a hodnoty DWORD.


Ve zdrojáku mám přes 90 procent klíčů popsaných (mám totiž problémy si zapamatovat, co který klíč v registrech dělá, kdo by také neměl, v takovém množství). Takže ve finále tento projekt také beru jako dokumentaci zajímavých klíčů a hodnot registrů. V projektu jsem samozřejmě použil jen ty klíče, které zde potřebujeme, nebo se prostě hodí, ostatní blbinky jsem zbytečně nepřidával, nebo jsem je zanesl jako komentáře. Také zůstalo v projektu pár dalších starých klíčů, které už třeba nefungují (také je tam nepoužívám), nechal jsem je jen jako zakomentované info :).


Nu a jakožto neprogramátor jsem to napsal zřejmě asi dosti prasácky :-/. Úmyslně jsem třeba odstranil z projektu všechny výjimky, takže zápis a mazání probíhá stylem : "buď se to tam v těch registrech objeví, nebo ne :P". V otázce binárního zápisu do registrů jsem musel kontaktovat kamaráda, aby pomohl. Chtěl jsem totiž jednoduše vložit do zdrojáku HEX vyexportovaný z registrů do *.reg souboru a ten následně fouknout zpět pomocí projectz.


Pár featurek z projektu k nakousnutí (abychom věděli, co nás čeká):

a mnoho dalšího ...


Myslím si, že v dnešní době nejdu se skriptem (ano, je to psaný jak skript :), tak proto skript ) s křížkem po funuse a ještě se určitě dosti lidem hodí (když né kód, tak seznam klíčů). Na Win7 se chystám, tak uvidíme. Ovšem blíží se doba, kdy se místo Netware nasadí MS FS+AD, tak nebude už ani třeba.

Projectz, jak jsem ho nazval, se skládá ze dvou souborů a vypadá následovně (u některých komentářů z mého kolouščího mládí se asi dost zasmějete, ale nechám je tam, prostě mi to patří :) ):

projectz.cpp
/*
#########################################################################
######### author : Max Devaine                         ##################
######### contact : maxdevaine@volny.cz                ##################
######### consultant (WriteBinary) : Jiri Nemec        ##################
#########################################################################
######### license : Creative Commons  (by,sa)          ##################
#########################################################################
######### Sources :                                    ##################
##    http://www.radekchalupa.cz/clanky/default.aspx?kod=205&obsah=18  ##
##    http://msdn.microsoft.com/en-us/library                          ##
#########################################################################
*/

// TODO :
// - Implementovat nastavení práv pro některé klíče v registrech (kvůli umožnění uživatelům nastavení režimu spánků apod. věcem) - RegSetKeySecurity Function
// - Implementovat runas fci na msi instalační shity, na které běžně runas nejde


#include "registry_all.h"

int WINAPI _tWinMain(HINSTANCE hInstance,	HINSTANCE hPrevInstance,
	LPTSTR lpCmdLine, int nCmdShow)
{

/***** Soubory *****/
	CopyFile("\\\\192.168.0.1\\InstalaceKlienta\\bcgr\\background.bmp","C:\\windows\\background.bmp",FALSE);	//pozadí při spuštění PC na logovací obrazovce
	CopyFile("\\\\192.168.0.1\\InstalaceKlienta\\logo\\OEMINFO.INI","C:\\windows\\system32\\OEMINFO.INI",FALSE);	//nakopíruje (nastaví) informace o podpoře ve vlastnostech na "Tento Počítač" -> "Informace o odborné pomoci"
	CopyFile("\\\\192.168.0.1\\InstalaceKlienta\\logo\\OEMLOGO.BMP","C:\\windows\\system32\\OEMLOGO.BMP",FALSE);	//nakopíruje (nastaví) logo ve vlastnostech na "Tento Počítač"
    //c:\WINDOWS\system32\RunDll32 advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove			//tento příkaz odstraní rychle bez uživ. zásahu messenger, spouštím to v batáku (tady to je jen jako info)...
    //c:\WINDOWS\system32\RUNDLL32 ADVPACK.DLL,LaunchINFSection %windir%\INF\communic.inf,Hypertrm			//instalace Hyperterminalu
	//c:\WINDOWS\system32\RUNDLL32 ADVPACK.DLL,LaunchINFSection %windir%\INF\communic.inf,HypertrmUninstall		//odinstalace Hyperterminalu
	CopyFile("\\\\192.168.0.1\\InstalaceKlienta\\fonts\\PF_C128.ttf","C:\\windows\\Fonts\\PF_C128.ttf",FALSE);	//zkopíruje font pro generování čárových kodů
	CopyFile("\\\\192.168.0.1\\InstalaceKlienta\\fonts\\PF_C39.ttf","C:\\windows\\Fonts\\PF_C39.ttf",FALSE);	//zkopíruje font pro generování čárových kodů
	AddFontResource("C:\\windows\\Fonts\\PF_C128.ttf");								//nainstaluje font
	AddFontResource("C:\\windows\\Fonts\\PF_C39.ttf");								//nainstaluje font
	WriteRegistryFonts();												//instalace fontů pro generování čárového kodu UPDATE:možná to už nejni důležité vzhledem k funkci "AddFontResource"
    //SleepEx(10000,true);												//chvilku počká, položka je na zkoušku, aby bylo vidět, pod jakými právy se proces spouští(zda funguje externí skript na povyšování práv) a zda se vůbec spouští

/***** Prasarna ****/ 
	//WriteRegistryStartEAK();			//pěkná prasárnička kvůli vypnutí spouštění HPéčkovské utilitky na klávesové zkratky, je to pitomost, ale necham to tu, abych si pripominal, jaky jsem byl vul

/***** Tuning section ****/ 
	WriteRegistryLPT();				//nastaví LPT timeout na jedničku, čímž by se měl urychlit tisk na lpt port
	WriteRegistryMasterBrowser();			//vypne snahu win o získání statusu hlavního prohlížeče
	WriteRegistryNTFSoptimise();			//zapne zaznamenávání času na NTFS posledního přístupu k souboru, zapne podporu dlouhých názvů souborů na FAT, rezervuje větší místo v MFT pro soubory, povolí vytváření krátkých názvů souborů na NTFS kvůli kompatibilitě se starším SW (DOS atd.), vypne funkci pro krátké přípony souborů (kdy např. htm a html je brán jako jeden a ten samý soubor)
	WriteRegistryNumlock();				//zapne NumLock po naběhnutí win
	WriteRegistryAsocciations();			//nastaví seznam povolených souborů, u kterých nebude vyskakovat trapný okno, zda opravdu chceme spustit danou aplikaci
	WriteRegistryAutoTPrinters();			//vypne automatické procházení sítě, které mj. i automaticky nainstaluje různé síťové tiskárny a pak je v tom jenom bordel
	WriteRegistryStartMenu();			//maže klíč nabídky start a oblíbené(v IE) čímž se po novém startu PC docílí nového sestavení tohoto klíče a tím pádem se nabídky sestaví podle abecedy
	WriteRegistryStartMenuItems();			//nastavuje položky v menu (jako zobrazit sitova nastevni, tiskárny atd.)
	WriteRegistryBootOptimise();			//zapne optimilazaci spuštění systému
	WriteRegistryBSODAutorestart();			//vypne automatický restart pc při BSOD
	WriteRegistryNoFFconnection();			//No filefolder connection => zakáže automatické propojení síťových souborů a složek (sosneš si webovku, smázneš u ní soubor index.htm a smázne se ti i příslušný adresář, protože jsou propojený)
	WriteRegistryHiddenFilesPB();			//zakáže zobrazení skrytých a systémových souborů, zakáže obnovu oken, které byly spuštěny před vypnutím systému
	WriteRegistryHiddenFiles();			//zakáže/povolí zobrazení skrytých souborů na jiném místě (pak nelze změnit nastavení skrytých souborů a jsou natvrdo skryté)
	WriteRegistryHiddenUser();			//skryje uživatele v login obrazovce
	WriteRegistryCleanWiz();			//vypne dementního průvodce vyčištěním pracovní plochy
	//WriteRegistrySleepOFF();			//vypne šetřič obrazovky a zakáže vypnutí monitoru
	WriteRegistryPersistent();			//nastaví automatické ukládání nastavení připojených síťových jednotek
	WriteRegistryBkgr();				//nastaví barvu pozadí, když je barva pozadí tmavá, tak jsou popisky ikon bílé a když je pozadí světlé, tak jsou popisky černé. Toto automatické MS nastavování barvy je fakt skvělý :(. Zatím jsem nepřišel, jak ručně zvolit barvu popisku (ale myslím, že to jednoduše nepůjde, koukal jsem do registrů a barvu popisků to zřejmě bere z barvy onoho pozadí, které se skládá asi ze třech čísel (barev))
	WriteRegistryBkgrDef();				//nastaví defaultní barvu pozadí
	WriteRegistryDiskSpaceCheck();			//zapne kontrolu volného místa na disku (ve firmě, nebo u méně znalých uživatelů je to lepší)
	//WriteRegistryLinkIgnoreHKCU();		//zakáže vyhledávání síťových zástupců
	//WriteRegistryLinkIgnoreHKLM();		//zakáže vyhledávání síťových zástupců
	WriteRegistryPrefetch();			//vypne Prefetch
	WriteRegistryAutoChkdsk();			//nastaví timeout pro autochkdisk
	WriteRegistryAClearPGfile();			//nastaví, aby se při vypnutí PC nečistil stránkovací soubor (kvůli rychlosti, na přehnanou bezpečnost sere pes a uživatelé piskovaly kvůli pomalosti :-/)
	//WriteRegistryBgr();				//nastavení obrázku na pozadí na prac. ploše (raději nenastavovat, uživatelé by mne asi zabili :D )
	WriteRegistryBgrDef();				//nastavení obrázku na pozadí při přihlášení (Defualt pro new usera)
	WriteRegistryIEprint();				//nastaví 100procentní velikost v náhledu při tisku pomocí IE sráče
	WriteRegistryProxy();				//nastaví proxy v IE, resp. ve win včetne výjimek atd.
	WriteRegistryCmdHere();				//přidá do pravého tl. myši (když se tukne na diskovou jednotku, složku, nebo soubor,
	WriteRegistryCmdHere2();			//položku cmdhere, která otevře konzoli v daném umístění
	WriteRegistryCmdHereFolder();
	WriteRegistryCmdHereFolder2();
	//WriteRegistryCmdUNC();			//povoli unc cesty v prikazove radce cmd
	WriteRegistryDisableTour();			//vypne zobrazování průvodce po nainstalování windows
	WriteRegistryTaskmgr();				//nastavení správce úloh
    WriteRegistryCMD();					//nastaveni velikosti, barvy apod. cmd prikazovy radky
    WriteRegistryNTPClient();				//nastaveni synchronizace casu pomoci ntp clienta (na nas vlastni ntp server)
	WriteRegistryNTPClientSVC();			//samotné nastavení služby
	WriteRegistryNTPClientSRVLST();			//seznam ntp serveru pro synchronizaci casu na stanicich
    WriteRegistryDNSSuffix();				//nastavit dns suffix pro automaticke doplnovani nazvu domeny
	WriteRegistryTNS();				// Nastavit promenou prostredi pro cestu k oracle tnsnames.ora a sqlnet.ora


	/*** RISK ***/
	//WriteRegistrySpeedShutdown1();		//zapne volbu automatického ukončení úlohy, zkrátí čas automatického čekání aplikace na 100, zkrátí čekací dobu na killnutí aplikace na 1000
	//WriteRegistrySpeedShutdown2();		//zkrátí čekací čas na killnutí služby na 1000
	//WriteRegistryCacheOpt();			//vypne stránkování do souboru a nastaví default velikost pro praci s L2 cache na proc.
	//WriteRegistryForceDLL();			//zapne unloading dll, from memory  (zatím nefunkční)

	//WriteRegistryStartMenuTuning();
	//WriteRegistryIETuning();
	//WriteRegistryMRXSmb();
	//WriteRegistryIEscapi();
	//WriteRegistrySessionManager();
	//WriteRegistrySMBCR1();
	//WriteRegistrySMBCR2();
	//WriteRegistrySMBCR3();


/***** Security section ****/	
	WriteRegistryOle();				//Nastaví práva pro DCOM pozorně si to promyslete, tohle taky odpálí dost SW na vistách, na nich to rozhodně nepoužívat a na winxp bey s SP, nebo s SP1 take ne
	WriteRegistryRemoteAdminSettings();		//povolí vzdálené připojení přes firewall
	WriteRegistryForceGuest();			//nastaví ověřování uživatelů na sebe sama, tato hodnota je propojena s položkou : "Použít zjednodušené sdílení souborů (doporučeno)"

/***** WinXP firewall section ****/
	//WriteRegistryFWPolicy();			//zapnutí firewallu, povolení výjimek


/***** WSUS winxp section ****/
	WriteRegistryWSUS();				//nastaví WSUS server na náš předdefinovaný
	WriteRegistryWSUS_Enable();			//povolí stahování aktualizací z WSUS serveru a provede patřičná nastavení




/***** Services section *****/
	WriteRegistryJQS();				//vypnout službu JavaQuickStarter - je to pěkná sviňárna, ta služba je schopná za pár hodin přečíst 2GB dat, i více, což má dopad na výkon pomalejších PC
//	WriteRegistrystisvc();				//Načítání obrázků (WIA) => zakázat
	WriteRegistryCiSvc();				//Indexing Service	 => rucne
	WriteRegistryMessenger();			//Kurýrní služba => zakázat
	WriteRegistryClipSrv();				//Síťová schránka => zakázat
	WriteRegistryhelpsvc();				//Nápověda a odborná pomoc => automaticky
	WriteRegistryTlntSvr();				//Telnet => zakázat
	WriteRegistryRemoteRegistry();			//Vzdálený registr => automaticky
	WriteRegistryEventlog();			//Protokol událostí => automaticky
	WriteRegistryERSvc();				//Zasílání zpráv o chybách => automaticky
	WriteRegistrymnmsrvc();				//NetMeeting - Vzdálené sdílení plochy => zakázat
	WriteRegistrySENS();				//Oznamování systémových událostí => automaticky
	WriteRegistrywuauserv();			//Automatické aktualizace => automaticky
	WriteRegistryupnphost();			//Hostitel zařízení UPnP => zakázat
	WriteRegistryNla();				//Sledování umístění v síti (NLA) => ručně (default = ručně)
	WriteRegistryALG();				//Služba brány aplikačního rozhraní => ručně (default = ručně) 
	WriteRegistryNetDDE();				//Služba DDE v síti => zakázat (default = zakázáno)
	WriteRegistryNetDDEdsdm();			//Správce DSDM služby DDE v síti => zakázat (default = zakázáno)
	WriteRegistryRemoteAccess();			//Směrování a vzdálený přístup => zakázat (default = zakázáno)
	WriteRegistryRDSessMgr();			//Správce relací nápovědy ke vzdálené ploše => ručně (default = ručně)
    WriteRegistryBrowser();				//Prohledávání počítačů => automaticky (default = automaticky)
    WriteRegistryTermService();				//Terminálová služba => automaticky (default = ručně) //serou se bez hoto programy(např. StartEAK = "nastavení multimediální klávesnice" vyletí s CPU na 100%) od HP a scanery a možná ještě něco, musí zůstat ve stavu ručně

	/*
	WriteRegistryVSS();				//Stínová kopie svazku
	WriteRegistryAppMgmt();				//Správa aplikací
	WriteRegistryAudioSrv();			//Zvuk systému Windows
	WriteRegistryBITS();				//Služba inteligentního přenosu na pozadí
	WriteRegistryCOMSysApp();			//Systémové aplikace modelu COM+
	WriteRegistryCryptSvc();			//Šifrování
	WriteRegistryDcomLaunch();			//Spouštěč procesů serveru DCOM
	WriteRegistryDhcp();				//Klient DHCP
	WriteRegistrydmadmin();				//Služba správy pro Správce logických disků
	WriteRegistrydmserver();			//Správce logických disků
	WriteRegistryDnscache();			//Klient DNS
	WriteRegistryEventSystem();			//Systém událostí modelu COM+
	WriteRegistryFUSC();				//Kompatibilita pro rychlé přepínání uživatelů
	WriteRegistryHidServ();				//Přístup k zařízením standardu HID
	WriteRegistryHTTP();				//HTTP
	WriteRegistryHTTPFilter();			//HTTP SSL
	WriteRegistryImapiService();			//Služba modelu COM pro zápis na disk CD (IMAPI)
	WriteRegistryIp6Fw();				//Ovladač IPv6 brány firewall systému Windows
	WriteRegistrylanmanserver();			//Server
	WriteRegistrylanmanworkstation();		//Pracovní stanice
	WriteRegistryLmHosts();				//Podpora rozhraní NetBIOS nad protokolem TCP/IP
	WriteRegistryLPDSVC();				//Tiskový server TCP/IP
	WriteRegistryMRxDAV();				//Přesměrovač klienta WebDav
	WriteRegistryMSDTC();				//Koordinátor DTC
	WriteRegistryMSIServer();			//Windows Installer
	WriteRegistryNetBIOS();				//Rozhraní NetBIOS
	WriteRegistryNetBT();				//Rozhraní NetBios nad protokolem TCP/IP
	WriteRegistryNetlogon();			//Přihlašování k síti
	WriteRegistryNetman();				//Síťová připojení
	WriteRegistryNtLmSsp();				//Zprostředkovatel zabezpečení NT LM
	WriteRegistryNtmsSvc();				//Vyměnitelné úložiště
	WriteRegistryPlugPlay();			//Plug and Play
	WriteRegistryPolicyAgent();			//Služby IPSEC
	WriteRegistryProtectedStorage();		//Chráněné úložiště
	WriteRegistryPSched();				//Plánovač paketů technologie QoS
	WriteRegistryRpcLocator();			//Lokátor vzdáleného volání procedur (RPC)
	WriteRegistryRpcSs();				//Vzdálené volání procedur (RPC)
	WriteRegistryRSVP();				//QoS RSVP
	WriteRegistrySamSs();				//Správce zabezpečení účtů
	WriteRegistryseclogon();			//Sekundární přihlašování
	WriteRegistrySharedAccess();			//Brána Firewall / Sdílení připojení k Internetu (ICS)
	WriteRegistryShellHWDetection();		//Rozpoznávání hardwaru
	WriteRegistrySchedule();			//Plánovač úloh
	WriteRegistrySpooler();				//Zařazování tisku
	WriteRegistrysrservice();			//Služba obnovení systému
	WriteRegistrySysmonLog();			//Výstrahy a protokolování výkonu
	WriteRegistryTapiSrv();				//Telefonní subsystém
	WriteRegistryTcpip();				//Ovladač protokolu TCP/IP
	WriteRegistryTcpip6();				//Ovladač protokolu Microsoft IPv6
	WriteRegistryThemes();				//Motivy
	WriteRegistryTrkWks();				//Klient služby sledování distribuovaných propojení
	WriteRegistryW32Time();				//Systémový čas
	WriteRegistryWanarp();				//Ovladač Remote Access IP ARP
	WriteRegistryWebClient();			//Webový klient
	WriteRegistrywinmgmt();				//Služba WMI
	WriteRegistryWmi();				//Rozšíření ovladače WMI
	WriteRegistryWmiAcpi();				//Microsoft Windows Management Interface for ACPI
	WriteRegistryWmiApSrv();			//Adaptér výkonu služby WMI
	WriteRegistryWMPNetworkSvc();			//Služba Windows Media Player Network Sharing
	WriteRegistrywscsvc();				//Centrum zabezpečení
	WriteRegistryWSearch();				//Vyhledávání systému Windows
	WriteRegistryWZCSVC();				//Automatická konfigurace bezdrátových zařízení
	WriteRegistryxmlprov();				//Služba pro síťová ustanovení
*/

}
registry_all.h
/*
#########################################################################
######### author : Max Devaine                         ##################
######### contact : maxdevaine@volny.cz                ##################
######### consultant (WriteBinary) : Jiri Nemec        ##################
#########################################################################
######### license : Creative Commons  (by,sa)          ##################
#########################################################################
######### Sources :                                    ##################
##    http://www.radekchalupa.cz/clanky/default.aspx?kod=205&obsah=18  ##
##    http://msdn.microsoft.com/en-us/library                          ##
#########################################################################
*/

#include <windows.h>
#include <stdio.h>
#include <tchar.h>

HINSTANCE g_hInst;
HWND g_hWnd;

TCHAR chInfoText[150];

/****************************************************************************************/
/********************** Funkce pro práci s registry *************************************/
/****************************************************************************************/

//#define REGISTRY_NAME HKEY_LOCAL_MACHINE

/**HKEY_LOCAL_MACHINE**/
HKEY registry_OpenKeyHKLM(LPCTSTR lpKeyName, LPBOOL lpbCreated)
{
	DWORD dwDisp = 0;
	HKEY hkResult = NULL;
	if ( RegCreateKeyEx(HKEY_LOCAL_MACHINE, lpKeyName, 0, NULL, REG_OPTION_NON_VOLATILE,
		KEY_ALL_ACCESS, NULL, &hkResult, &dwDisp) != ERROR_SUCCESS )
		return NULL;
	if ( lpbCreated )
		*lpbCreated = ( dwDisp & REG_CREATED_NEW_KEY );
	return hkResult;
}

/**HKEY_CURRENT_USER**/
HKEY registry_OpenKeyHKCU(LPCTSTR lpKeyName, LPBOOL lpbCreated)
{
	DWORD dwDisp = 0;
	HKEY hkResult = NULL;
	if ( RegCreateKeyEx(HKEY_CURRENT_USER, lpKeyName, 0, NULL, REG_OPTION_NON_VOLATILE,
		KEY_ALL_ACCESS, NULL, &hkResult, &dwDisp) != ERROR_SUCCESS )
		return NULL;
	if ( lpbCreated )
		*lpbCreated = ( dwDisp & REG_CREATED_NEW_KEY );
	return hkResult;
}

/**HKEY_USER**/
HKEY registry_OpenKeyHKU(LPCTSTR lpKeyName, LPBOOL lpbCreated)
{
	DWORD dwDisp = 0;
	HKEY hkResult = NULL;
	if ( RegCreateKeyEx(HKEY_USERS, lpKeyName, 0, NULL, REG_OPTION_NON_VOLATILE,
		KEY_ALL_ACCESS, NULL, &hkResult, &dwDisp) != ERROR_SUCCESS )
		return NULL;
	if ( lpbCreated )
		*lpbCreated = ( dwDisp & REG_CREATED_NEW_KEY );
	return hkResult;
}


/**HKEY_CLASSES_ROOT**/
HKEY registry_OpenKeyHKCR(LPCTSTR lpKeyName, LPBOOL lpbCreated)
{
	DWORD dwDisp = 0;
	HKEY hkResult = NULL;
	if ( RegCreateKeyEx(HKEY_CLASSES_ROOT, lpKeyName, 0, NULL, REG_OPTION_NON_VOLATILE,
		KEY_ALL_ACCESS, NULL, &hkResult, &dwDisp) != ERROR_SUCCESS )
		return NULL;
	if ( lpbCreated )
		*lpbCreated = ( dwDisp & REG_CREATED_NEW_KEY );
	return hkResult;
}


BOOL registry_CloseKey(HKEY hKey)
{
	return ( RegCloseKey(hKey) == ERROR_SUCCESS);
}

BOOL registry_WriteDWORD(HKEY hKey, LPCTSTR lpValueName, DWORD dwValue)
{
	return  ( RegSetValueEx(hKey, lpValueName, 0, REG_DWORD,
		(CONST BYTE*)&dwValue, sizeof(DWORD)) == ERROR_SUCCESS );
}


BOOL registry_WriteString(HKEY hKey, LPCTSTR lpValueName, LPCTSTR lpText)
{
	return ( RegSetValueEx(hKey, lpValueName, 0, REG_SZ, (CONST BYTE*)lpText,
		(lstrlen(lpText)+1)*sizeof(TCHAR)) ==	ERROR_SUCCESS );
}


BOOL registry_DeleteValue(HKEY hKey, LPCTSTR lpValueName)
{
return ( RegDeleteValue(hKey, lpValueName ) ==	ERROR_SUCCESS );
}


DWORD registry_DeleteKey(HKEY hStartKey , LPTSTR pKeyName )
   {
      DWORD   dwRtn, dwSubKeyLength;
      LPTSTR  pSubKey = NULL;
      TCHAR   szSubKey[256]; // (256) this should be dynamic.
      HKEY    hKey;

      // Do not allow NULL or empty key name
      if ( pKeyName &&  lstrlen(pKeyName))
      {
         if( (dwRtn=RegOpenKeyEx(hStartKey,pKeyName,
            0, KEY_ENUMERATE_SUB_KEYS | DELETE, &hKey )) == ERROR_SUCCESS)
         {
            while (dwRtn == ERROR_SUCCESS )
            {
               dwSubKeyLength = 256;
               dwRtn=RegEnumKeyEx(
                              hKey,
                              0,       // always index zero
                              szSubKey,
                              &dwSubKeyLength,
                              NULL,
                              NULL,
                              NULL,
                              NULL
                            );

               if(dwRtn == ERROR_NO_MORE_ITEMS)
               {
                  dwRtn = RegDeleteKey(hStartKey, pKeyName);
                  break;
               }
               else if(dwRtn == ERROR_SUCCESS)
                  dwRtn=registry_DeleteKey(hKey, szSubKey);
            }
            RegCloseKey(hKey);
            // Do not save return code because error
            // has already occurred
         }
      }
      else
         dwRtn = ERROR_BADKEY;

      return dwRtn;
   }


/****  Binarni zapis do registru :  *****/

BOOL registry_WriteBinary(HKEY hKey, LPCTSTR lpValueName, char * lpText, int delka)
{
 return RegSetValueEx(hKey, lpValueName, 0, REG_BINARY, (CONST BYTE*) lpText,delka);
}


/****  Nastavit práva na klíči a všech podklíčích :  *****/




/****************************************************************************************/
/*********************** Zápis do registrů **********************************************/
/****************************************************************************************/


/* Nastavit promenou prostredi pro cestu k oracle tnsnames.ora a sqlnet.ora*/
BOOL WriteRegistryTNS()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Environment", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("TNS_ADMIN"), "G:\\new_is\\TNS_ADMIN") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}




/* Nastavit dns suffix*/
/* Mame firemni web server : intranet.firma.local, ale chci, aby uzivatele zadali jen adresu "intranet" a nemuseli se pitvorit s nazvem domeny. 
   Od toho je dns suffix, ktery za adresu automaticky doplni nami zvolenou domenu. 
   Standardne doplnuje suffix jen v pripade, ze je PC zapojeno v domene, pokud v ni neni, tak si to musime takto obejit  */

BOOL WriteRegistryDNSSuffix()

{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Tcpip\\\\Parameters", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("Domain"), "devaine.local") )
		bRes = FALSE;
	if ( !registry_WriteString(hKey, TEXT("SearchList"), "devaine.local") )
		bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}




/* Nastavení NTP klienta ve windows na synchronizaci casu*/

BOOL WriteRegistryNTPClientSRVLST()

{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DateTime\\Servers", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("1"), "ntp.devaine.local") )
		bRes = FALSE;
	if ( !registry_WriteString(hKey, TEXT("2"), "ntp2.devaine.local") )
		bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryNTPClient()

{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\W32Time\\Parameters", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("NtpServer"), "ntp.devaine.local,0x1") )
		bRes = FALSE;
	if ( !registry_WriteString(hKey, TEXT("Type"), "NTP") )
		bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


BOOL WriteRegistryNTPClientSVC()

{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\W32Time\\TimeProviders\\NtpClient", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("AllowNonstandardModeCombinations"), 1) )
		bRes = FALSE;
    if ( !registry_WriteDWORD(hKey, TEXT("CrossSiteSyncFlags"), 2) )
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Enabled"), 1) )
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("SpecialPollInterval"), 900) )
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("EventLogFlags"), 0) )
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("InputProvider"), 1) )
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("ResolvePeerBackoffMaxTimes"), 7) )
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("ResolvePeerBackoffMinutes"), 15) )
		bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}



/* Nastaveni taskmanageru, sloupce, rozlozeni okna atd. */
BOOL WriteRegistryTaskmgr()
{
	// v poli jsou HEX znaky tak, jak se vyexportuji do *.reg souboru, pomoci pspadu je pak format HEX z 
	// *.reg souboru upraven do nasledujici podoby, kdy jsou odstraneny mezery, carky, lomitka, nove radky a 
	// pred vsechny HEX znaky je pridano "\x" znacici, ze jde o HEX :)
	char pole[] = "\x9c\x02\x00\x00\xe8\x03\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x0a\x00\x00\x00\x0a\x00\x00\x00\x5d\x03\x00\x00\x03\x03\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x00\x60\x00\x3c\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\
xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x16\x00\x00\x00\x17\x00\x00\x00\xff\xff\xff\xff\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x9e\x00\x00\x00\x32\x00\x00\x00\x6b\x00\x00\x00\x39\x00\x00\x00\x23\x00\x00\x00\x43\x00\x00\x00\x52\x00\x00\x00\x76\x00\x00\x00\x72\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\
x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00";

	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Software\\Microsoft\\Windows NT\\CurrentVersion\\TaskManager", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteBinary(hKey,"Preferences", pole, (sizeof(pole)-1)))
		bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

/* Nastaveni cmd shellu, barva pozadi, barva pisma, rozmery, historie atd. */

BOOL WriteRegistryCMD()

{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Console\\%SystemRoot%_system32_cmd.exe", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("QuickEdit"), 1) )		//zapne rezim rychlych uprav
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("ScreenBufferSize"), 196608100) )	//nastavi velikost historie (kolik radku si to bude pamatovat)
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("ScreenColors"), 113) )  //barva pisma a pozadi
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("WindowSize"), 3276900) )	//velikost okna
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

/*********************** Permission DCOM section ****************************************/


BOOL WriteRegistryOle()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Ole", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_DeleteValue(hKey, TEXT("MachineLaunchRestriction")) ) //zabijácká věc, jen na vlastní triko !!! / ok, u winxp SP2 je to ok, u SP1 to myslím dělá drobné problémy s právy a na vistách bych to opravdu nedělal :)
    bRes = FALSE;
	if ( !registry_DeleteValue(hKey, TEXT("MachineAccessRestriction")) ) //zabijácká věc, jen na vlastní triko !!! / ok, u winxp SP2 je to ok, u SP1 to myslím dělá drobné problémy s právy a na vistách bych to opravdu nedělal :)
    bRes = FALSE;
	if ( !registry_DeleteValue(hKey, TEXT("DefaultLaunchPermission")) ) //zabijácká věc, jen na vlastní triko !!! / ok, u winxp SP2 je to ok, u SP1 to myslím dělá drobné problémy s právy a na vistách bych to opravdu nedělal :)
    bRes = FALSE;
	if ( !registry_WriteString(hKey, TEXT("EnableDCOM"), "Y") )
		bRes = FALSE;
	if ( !registry_WriteString(hKey, TEXT("EnableRemoteConnect"), "Y") )
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("LegacyAuthenticationLevel"), 1) )
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("LegacyImpersonationLevel"), 2) )
		bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


BOOL WriteRegistryRemoteAdminSettings()

{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile\\RemoteAdminSettings", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("enabled"), 1) )		//povolí vzdálený přístup na PC
    bRes = FALSE;
	if ( !registry_WriteString(hKey, TEXT("RemoteAddresses"), "*") )	//povolí vzdálený přístup na PC ze "*" = všech sítí, "localsubnet" = jen z lokální sítě
		bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryForceGuest()

{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\Lsa", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("forceguest"), 0) )    //0=uživatelé se ověřují jako oni sami; 1= uživatelé jsou ověřování jako guest; tato hodnota je propojena s klikací položkou : "Použít zjednodušené sdílení souborů (doporučeno)", takže opravdu geniální propojení, chjo :(
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


/*********************** Win XP firewall section ****************************************/

BOOL WriteRegistryFWPolicy()

{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("EnableFirewall"), 1) )		//zapne win firewall v xp SP2
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("DisableNotifications"), 1) )	
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("DoNotAllowExceptions"), 0) )  //povolí výjimky ve firewallu
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


/*********************** Win XP WSUS section ****************************************/

BOOL WriteRegistryWSUS()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsUpdate", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("WUServer"), "http://wsusserver:8530") )
    bRes = FALSE;
	if ( !registry_WriteString(hKey, TEXT("WUStatusServer"), "http://wsusserver:8530") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryWSUS_Enable()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsUpdate\\AU", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("UseWUServer"), 1) )		// 1 = použít pro aktualizaci WSUS, 0 = použít pro aktualizaci windows update
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("NoAutoUpdate"), 0) )		// 0 = aktualizace jsou povoleny, 1 = zakazany
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("AUOptions"), 4) )			// 3= automaticky sosat a pak se zeptat na instalaci, 4 = automaticky stahnout a automaticky nainstalovat v naplanovany cas
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("ScheduledInstallDay"), 0) )	// 0 = denně, 1-7 se definuji jednotlive dny	
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("ScheduledInstallTime"), 12) )	  // ve 12 hod. dopoledne by se mela spustit instalace aktualizaci		
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("NoAutoRebootWithLoggedOnUsers"), 1) )			// 1 = zákaz automatických restartů	
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


/*********************** Proxy section (kvůli Exchange OWA) ****************************************/

BOOL WriteRegistryProxy()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", NULL);
	if ( !hKey )
		return FALSE;
	//if ( !registry_WriteDWORD(hKey, TEXT("ProxyEnable"), 1) )	  // povolit proxy
    //bRes = FALSE;
	if ( !registry_WriteString(hKey, TEXT("ProxyOverride"), "*devaine.local;http://exchange") )		//výjimky na proxyně (prostě adresy, které nemají jít přes proxy, třeba nějaké lokální atd.), oddělují se středníkem
    bRes = FALSE;
	//if ( !registry_WriteString(hKey, TEXT("ProxyServer"), "172.25.156.90:3128") )	//ip adresa proxyny včetně čísla portu
    //bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}






/*********************** Fuj section ****************************************/

BOOL WriteRegistryStartEAK()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_DeleteValue(hKey, TEXT("CPQEASYACC")) ) //Po mé tuningové úpravě ve službách se tento proces(mapování klávesnice od HP) zbláznil a žere 100% CPU (stejně je to na hovno SW :) ), UPDATE: tak jsem zjistil, že vyžaduje k životu službu terminal services
		bRes = FALSE;
	return bRes;
}




/*********************** Tuning section ****************************************/


BOOL WriteRegistryLPT()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\WOW", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("LPT_timeout"), "1") )		// číslo je v sekundách
		bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryStartMenuTuning()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", NULL);
	if ( !hKey )
		return FALSE;
    if ( !registry_WriteDWORD(hKey, TEXT("MemCheckBoxInRunDlg"), 1) )		// Přidat zaškrtávací políčko „Spouštět ve vyhrazeném paměťovém prostoru“ do dialogového okna Spustit Popis: Umožní spuštění 16bitových programů ve vyhrazeném procesu VDM (Virtual DOS Machine)
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("NoChangeStartMenu"), 0) )		// Zabrání uživateli měnit nabídku Start pomocí přetahování položek, UPDATE: je to nahovno, neumožní to vůbec kliknout pravým tl. na ikonky v nabídce start :(, takze vypinam tuto moznost
    bRes = FALSE;
	//if ( !registry_WriteDWORD(hKey, TEXT("NoInstrumentation"), 1) )		// Zabrání systému pamatovat si spuštěné programy, procházené cesty a použité dokumenty
    //bRes = FALSE;
	//if ( !registry_WriteDWORD(hKey, TEXT("NoSimpleStartMenu"), 1) )		// Vynutit klasickou nabídku Start
    //bRes = FALSE;
	//if ( !registry_WriteDWORD(hKey, TEXT("DisableMyPicturesDirChange"), 1) )		// Zabránit uživateli změnit cestu k uživatelským složkám
    //bRes = FALSE;
	//if ( !registry_WriteDWORD(hKey, TEXT("DisableMyMusicDirChange"), 1) )		// Zabránit uživateli změnit cestu k uživatelským složkám
    //bRes = FALSE;
	//if ( !registry_WriteDWORD(hKey, TEXT("DisableFavoritesDirChange"), 1) )		// Zabránit uživateli změnit cestu k uživatelským složkám
    //bRes = FALSE;
	//if ( !registry_WriteDWORD(hKey, TEXT("DisablePersonalDirChange"), 1) )		// Zabránit uživateli změnit cestu k uživatelským složkám
    //bRes = FALSE;
	//if ( !registry_WriteDWORD(hKey, TEXT("NoRecentDocsMenu"), 1) )		// Odebrat položku Poslední dokumenty z nabídky Start
    //bRes = FALSE;
	//if ( !registry_WriteDWORD(hKey, TEXT("ClearRecentDocsOnExit"), 1) )		// Při ukončení vymazat historii posledních otevřených dokumentů
    //bRes = FALSE;
	//if ( !registry_WriteDWORD(hKey, TEXT("MaxRecentDocs"), 20) )		// Maximální počet posledních dokumentů
    //bRes = FALSE;
	//if ( !registry_WriteDWORD(hKey, TEXT("NoResolveSearch"), 1) )		// Při určování cíle zástupců nepoužívat metody založené na vyhledávání
	//bRes = FALSE;
	//if ( !registry_WriteDWORD(hKey, TEXT("NoResolveTrack"), 1) )		// Při určování cíle zástupců prostředí nepoužívat metody založené na sledování (Zabrání systému v použití funkcí souborového systému NTFS při určování cíle zástupce)
    //bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryStartMenu()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\MenuOrder", NULL);
	if ( !hKey )
		return FALSE;
	//if ( !registry_DeleteKey(hKey, TEXT("Favorites")) )	//smazáním této položky(oblíbené v exploreru) se po spuštění automaticky znovu sestaví a tím pádem seřadí podle abecedy
    //bRes = FALSE;
	if ( !registry_DeleteKey(hKey, TEXT("Start Menu2")) )	//smaže nabídku start, po opětovném načtení se znovu sestaví a tím se i seřadí podle abecedy
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryStartMenuItems()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start_NotifyNewApps"), 0) )     //0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start_ScrollPrograms"), 0) )     //0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowControlPanel"), 1) )     //0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowHelp"), 1) )     //0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowMyComputer"), 1) )     //0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowMyDocs"), 1) )     //0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowMyMusic"), 1) )     //0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowMyPics"), 1) )     //0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowNetPlaces"), 1) )     //0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowPrinters"), 1) )     //0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowRecentDocs"), 1) )     //0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowRun"), 1) )     //0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowSearch"), 1) )     //0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start_ShowSetProgramAccessAndDefaults"), 1) )     //0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("TaskbarSizeMove"), 0) )     //odemknout hlavni panel 0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("TaskbarGlomming"), 1) )     //seskupovat podobná tlačítka hlavního panelu 0 = vypnuto ,1 = zapnuto
		bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


BOOL WriteRegistryDisableTour()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Tour", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("RunCount"), 0) )			// 0 - vypnuto (číslo udává počet zobrazení)
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


/*** Tuning pro sit a jeji prochazeni ***/
BOOL WriteRegistryMasterBrowser()
{
	BOOL bRes = TRUE;
	HKEY hKey = registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Browser\\Parameters", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("IsDomainMaster"), "FALSE") )		//není řadičem domény
		bRes = FALSE;
	if ( !registry_WriteString(hKey, TEXT("MaintainServerList"), "No") )	//neudržovat seznam strojů, další možnosti jsou "yes" a "auto"
		bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

/*** IE tuning ***/
BOOL WriteRegistryIETuning()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("UseDesktopIniCache"), 1) )		// vyřeší dlouhé procházení Document folder
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("NoRemoteRecursiveEvents"), 1) )		// windows may cause extra SMB notify change traffic
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("NoRemoteChangeNotify"), 1) )		// 
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("StartRunNoHOMEPATH"), 1) )		// je hledán domovský adresář dřív, než se spustí program, tohle by to mělo řešit
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("NoRecentDocsNetHood"), 1) )		// místa v síti nepřidají vzdálené sdílené složky
		bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("NoDetailsThumbnailOnNetwork"), 1) )		// 
		bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryIEprint()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_STF_Scale_Min", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("iexplore.exe"), 100) )		// nastaví v náhledu tisku u IE7 100% velikost, takže se nebude deformovat vytisknutý dokument
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryMRXSmb()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\MRXSmb\\Parameters", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("InfoCacheLevel"), 16) )		// 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


BOOL WriteRegistrySMBCR1()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCR("*\\shellex\\PropertySheetHandlers\\CryptoSignMenu", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("SuppressionPolicy"), 1048576) )		// 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrySMBCR2()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCR("*\\shellex\\PropertySheetHandlers\\{3EA48300-8CF6-101B-84FB-666CCB9BCD32}", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("SuppressionPolicy"), 1048576) )		// 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrySMBCR3()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCR("*\\shellex\\PropertySheetHandlers\\{883373C3-BF89-11D1-BE35-080036B11A03}", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("SuppressionPolicy"), 1048576) )		// 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryIEscapi()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\SCAPI", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Flags"), 1051650) )		// 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


BOOL WriteRegistrySessionManager()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\Session Manager", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("SafeDllSearchMode"), 1) )		// 
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("SafeProcessSearchMode"), 1) )		// 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryNoFFconnection()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("NoFileFolderConnection"), 1) )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryPersistent()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKU(".DEFAULT\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Network\\Persistent Connections", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("SaveConnections"), "yes") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryLinkIgnoreHKCU()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("LinkResolveIgnoreLinkInfo"), 1) )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryLinkIgnoreHKLM()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("LinkResolveIgnoreLinkInfo"), 1) )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

/*konec tuningu pro sit*/


/*Sekce Instalace fontů*/

BOOL WriteRegistryFonts()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("PF Barcode 128 (TrueType)"), "PF_C128.ttf") )
    bRes = FALSE;
	if ( !registry_WriteString(hKey, TEXT("PF Barcode 39 (TrueType)"), "PF_C39.ttf") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


/*Konec sekce Instalace fontů*/


BOOL WriteRegistryNTFSoptimise()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\FileSystem", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("NtfsDisableLastAccessUpdate"), 0) )	
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("NtfsMftZoneReservation"), 2) )		//rezervovat větší místo v MFT pro soubory
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Win95TruncatedExtensions"), 0) )		//vypne krátké přípony souborů
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Win31FileSystem"), 0) )				//1=zakázat/0=povolit podporu dlouhých názvů souborů na FAT kvůli kompatibilitě se starším SW (pokud se dá zakázat, tak to vyřadí dost installerů z provozu :D, fakt prdel, a to i když se instalí na NTFS :))
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("NtfsDisable8dot3NameCreation"), 0) )	//povolí vytváření krátkých názvů souborů (1= vypne a tím se i zvýší výkon, ale my potřebujem kompatibilitu)
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryNumlock()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKU(".DEFAULT\\Control Panel\\Keyboard", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("InitialKeyboardIndicators"), "2") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryAsocciations()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Associations", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("LowRiskFileTypes"), "is_blue.exe; M602cl32.exe; eric.exe; tiskf.exe; FAKT19XP.BAT; projectz.exe; raex.exe") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryAutoTPrinters()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("NoNetCrawling"), 1) )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryBootOptimise()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Dfrg\\BootOptimizeFunction", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("Enable"), "Y") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrySpeedShutdown1()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Control Panel\\Desktop", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("AutoEndTasks"), "1") )
    bRes = FALSE;
	if ( !registry_WriteString(hKey, TEXT("HungAppTimeout"), "100") )
    bRes = FALSE;
	if ( !registry_WriteString(hKey, TEXT("WaitToKillAppTimeout"), "1000") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrySpeedShutdown2()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("WaitToKillServiceTimeout"), "1000") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryBSODAutorestart()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\CrashControl", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("AutoReboot"), 0) )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryHiddenFilesPB()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Hidden"), 2) )     //1 = zobraz ,2 = skryj
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("SuperHidden"), 0) )
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("ShowSuperHidden"), 0) )  //0 = skrýt, 1 = zobrazit
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("HideFileExt"), 0) )	//vypnutí funkce : skrýt příponu známých typů souborů
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("PersistBrowsers"), 0) )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


BOOL WriteRegistryHiddenFiles()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\Folder\\Hidden\\SHOWALL", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("CheckedValue"), 1) )     //1 = zobraz , 0 = skryj
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


BOOL WriteRegistryHiddenUser()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\SpecialAccounts\\UserList", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("q"), 0) )     //1 = zobraz ,0 = skryj uživatele v login obrazovce
       bRes = FALSE;
	return bRes;
}


BOOL WriteRegistryCleanWiz()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\CleanupWiz", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("NoRun"), 1) )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrySleepOFF()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Control Panel\\Desktop", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("ScreenSaveActive"), "0") )
    bRes = FALSE;
	if ( !registry_WriteString(hKey, TEXT("PowerOffActive"), "0") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryBkgrDef()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKU(".DEFAULT\\Control Panel\\Colors", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("Background"), "58 110 165") ) // 128 128 128 => pěkná šedá :D (58 110 165 = modrá :-/ )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryBkgr()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Control Panel\\Colors", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("Background"), "58 110 165") ) // 128 128 128 => pěkná šedá :D (58 110 165 = modrá :-/ )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryDiskSpaceCheck()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("NoLowDiskSpaceChecks"), 1) )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryPrefetch()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\PrefetchParameters", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("EnablePrefetcher"), 0) )	//(0 = zakázat, 1 = ukládat soubory programů, 2 = ukládat data Windows, 3 = ukládat soubory programů a data Windows) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


BOOL WriteRegistryAutoChkdsk()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Memory Management", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("AutoChkTimeOut"), 2) )	//(čas v sekundách, 0 pro vypnutí; původní hodnota je 10) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryAClearPGfile()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Memory Management", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("ClearPageFileAtShutdown"), 0) )	//(0 = zakázat, 1 = vyčistit stránkovací soubor při vypnutí systému) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryCacheOpt()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Memory Management", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("DisablePagingExecutive"), 0) )	//(0 = původní, 1 = vypnout systémové stránkování) 
    bRes = FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("SecondLevelDataCache"), 0) )	//(0 = původní => win automaticky zjistí velikost L2ojky, jiné číslo by mělo být velikost L2 cache u procáků => manuální nastavení uživatele) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


BOOL WriteRegistryForceDLL()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\AlwaysUnloadDll", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("@"), "0") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}



BOOL WriteRegistryBgrDef()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKU(".DEFAULT\\Control Panel\\Desktop", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("Wallpaper"), "C:\\windows\\background.bmp") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryBgr()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Control Panel\\Desktop", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT("Wallpaper"), "C:\\windows\\background.bmp") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


/***** Start : CMD HERE ****/

BOOL WriteRegistryCmdHere()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCR("*\\shell\\cmdhere", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT(""), "Cmd&Here") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryCmdHere2()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCR("*\\shell\\cmdhere\\command", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT(""), "cmd.exe /k ""cd %L""") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryCmdHereFolder()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCR("Folder\\shell\\cmdhere", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT(""), "Cmd&Here") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryCmdHereFolder2()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCR("Folder\\shell\\cmdhere\\command", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteString(hKey, TEXT(""), "cmd.exe /k ""cd %L""") )
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

/***** End : CMD HERE ****/


BOOL WriteRegistryCmdUNC()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKCU("Software\\Microsoft\\Command Processor", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("DisableUNCCheck"), 1) )	//(0 = vypnuto, 1 = povolit UNC) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}




/*************************************************/
/******************* services ********************/
/*************************************************/


BOOL WriteRegistryJQS()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\JavaQuickStarterService", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}


BOOL WriteRegistryMessenger()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Messenger", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryALG()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\ALG", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryAppMgmt()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\AppMgmt", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryAudioSrv()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\AudioSrv", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryBITS()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\BITS", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryBrowser()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Browser", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryCiSvc()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\CiSvc", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryClipSrv()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\ClipSrv", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryCOMSysApp()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\COMSysApp", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryCryptSvc()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\CryptSvc", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryDcomLaunch()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\DcomLaunch", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryDhcp()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Dhcp", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrydmadmin()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\dmadmin", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrydmserver()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\dmserver", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryDnscache()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Dnscache", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryERSvc()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\ERSvc", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryEventlog()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Eventlog", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryEventSystem()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\EventSystem", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryFUSC()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\FastUserSwitchingCompatibility", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryhelpsvc()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\helpsvc", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryHidServ()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\HidServ", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryHTTP()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\HTTP", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryHTTPFilter()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\HTTPFilter", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryImapiService()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\ImapiService", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryIp6Fw()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Ip6Fw", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrylanmanserver()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\lanmanserver", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrylanmanworkstation()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\lanmanworkstation", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryLmHosts()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\LmHosts", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryLPDSVC()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\LPDSVC", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrymnmsrvc()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\mnmsrvc", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryMRxDAV()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\MRxDAV", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryMSDTC()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\MSDTC", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryMSIServer()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\MSIServer", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryNetBIOS()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\NetBIOS", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 1) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryNetBT()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\NetBT", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 1) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryNetDDE()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\NetDDE", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryNetDDEdsdm()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\NetDDEdsdm", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryNetlogon()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Netlogon", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryNetman()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Netman", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryNla()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Nla", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryNtLmSsp()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\NtLmSsp", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryNtmsSvc()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\NtmsSvc", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryPlugPlay()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\PlugPlay", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryPolicyAgent()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\PolicyAgent", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryProtectedStorage()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\ProtectedStorage", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryPSched()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\PSched", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryRDSessMgr()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\RDSessMgr", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryRemoteAccess()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\RemoteAccess", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryRemoteRegistry()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\RemoteRegistry", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryRpcLocator()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\RpcLocator", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryRpcSs()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\RpcSs", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryRSVP()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\RSVP", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrySamSs()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\SamSs", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryseclogon()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\seclogon", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrySENS()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\SENS", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrySharedAccess()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\SharedAccess", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryShellHWDetection()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\ShellHWDetection", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrySchedule()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Schedule", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrySpooler()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Spooler", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrysrservice()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\srservice", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrystisvc()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\stisvc", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrySysmonLog()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\SysmonLog", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryTapiSrv()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\TapiSrv", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}
BOOL WriteRegistryTcpip()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Tcpip", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 1) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryTcpip6()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Tcpip6", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 1) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}
BOOL WriteRegistryTermService()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\TermService", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryThemes()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Themes", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryTlntSvr()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\TlntSvr", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryTrkWks()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\TrkWks", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryupnphost()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\upnphost", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 4) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryVSS()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\VSS", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryW32Time()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\W32Time", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryWanarp()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Wanarp", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryWebClient()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\WebClient", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrywinmgmt()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\winmgmt", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryWmi()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\Wmi", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryWmiAcpi()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\WmiAcpi", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 1) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryWmiApSrv()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\WmiApSrv", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryWMPNetworkSvc()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\WMPNetworkSvc", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrywscsvc()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\wscsvc", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryWSearch()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\WSearch", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistrywuauserv()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\wuauserv", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 2) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryWZCSVC()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\WZCSVC", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

BOOL WriteRegistryxmlprov()
{
	BOOL bRes = TRUE;
	HKEY hKey =  registry_OpenKeyHKLM("SYSTEM\\CurrentControlSet\\Services\\xmlprov", NULL);
	if ( !hKey )
		return FALSE;
	if ( !registry_WriteDWORD(hKey, TEXT("Start"), 3) )	//(1= ?(možná defualt=automatic), 2 = automaticky, 3 = ručně, 4 = zakázat) 
    bRes = FALSE;
	if ( !registry_CloseKey(hKey) )
		bRes = FALSE;
	return bRes;
}

Do komentáře pro jistotu ještě vložím oba soubory. Původně jsem chtěl celý projekt včetně nastavení, ale má poněkud více, než jsem si myslel.

Jen ještě připomenu, že skript je funkční pro Windows XP Pro SP2 a SP3. V SP1 radikální promazy v registrech(sekce OLE - dcom) odpálí část wmi - klikací rozhraní nastavení síťovky.

Za funkčnost / nefunkčnost skriptu a případné poškození, či ztráty dat neručím. Lidi, každý sám za sebe ;-)
Není problém staticky zkompilovat pod VS2005EE/2008EE, verzi 2010 jsem nezkoušel.

Výsledný exáč spouštím na stanicích jak pod user právy, tak pod admin právy (pomocí runas wraperu, který jsem taktéž napsal a heslo v něm zakamufloval). Pokud již stanice mají nastaveny správné přístupy, lze pak k další distribuci použít wmi/vbs.


Závěr

Jestli ten exáč má nějakou výhodu, tak rychlost nastavení stanice, jeho úprava a kompilace taktéž nezabere moc času, takže jsou nová nastavení připravena relativně rychle. Je to C++, tedy netřeba nainstalovaný framework, javu apod. A samozřejmě to není úplně pěkné řešení :). Na druhou stranu, při psaní mi to dalo hodně, hodně jsem poznal klíče v registrech a mnoho dalších věcí, takže výborná věc na studování :).


Pro lidi, které jsem tímto kouskem opičího kódu nepobavil, přikládám jeden ze života :

Ona: "Prosímtě, potřebuji klientovi poslat jednu webovou stránku, přesně tak, jak jí vidím já. Jak nato?
Já: Nu, to je jednoduché, zmáčkni prtscr a..."
Ona: "Počkej!!!, mně nejdou zmáčknout všechny ty písmenka najednou ... :("


Zdar Max        

Hodnocení: 91 %

        špatnédobré        

Anketa

Tak jak?
 (44 %)
 (43 %)
 (50 %)
 (13 %)
Celkem 54 hlasů

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

Max avatar 21.2.2012 21:36 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Přílohy:
Zmíněné dva soubory, viz příloha.
Zdar Max
Měl jsem sen ... :(
21.2.2012 22:04 tomATOM
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Hezká písmenka, spousta řádků a tak vůbec. Jen za mák nerozumím tomu jak to funguje. Ale na druhou stranu my elektrikáři říkáme: "Čím víc drátů, tím víc to funguje". Tak proč by to nemohlo platit i v tomto případě.
+1
Dreit avatar 21.2.2012 22:16 Dreit | skóre: 15 | blog: Dreit a jeho dračí postřehy | Královehradecký kraj
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...

No nevim, u nás platí spíš "Čím míň toho tam je, tim míň se toho může pos*at" :-D

Nope
Heron avatar 21.2.2012 22:41 Heron | skóre: 52 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Dokonalé není to, kam není co přidat, ale to, odkud není co odebrat.
22.2.2012 09:34 JS
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Takze dokonala bomba je takova, kde nelze zadny kabel prestipnout, aby nevybuchla.
Josef Kufner avatar 22.2.2012 13:59 Josef Kufner | skóre: 69
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Ano, neboť přesně to se od bomby očekává. Ovšem pokud očekáváš, že boba půjde zneškodnit, tak by ideální bomba měla právě jeden kabel nabídnutý k přestřihnutí. Ideální filmová bomba pak má kabely dva, aby hlavní hrdina měl nad čím nervózně váhat a bylo to dostatečně napínavé.
Hello world ! Segmentation fault (core dumped)
22.2.2012 14:26 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
A samozřejmě digitronový sestupný čítač.
kotyz avatar 22.2.2012 14:46 kotyz | skóre: 25 | blog: kotyzblog | Radnice
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Ideálně ještě počítač nebo aspoň obrazovku kde si z tebe bude autor bomby dělat prdel, dávat různý hádanky a tak. A taky nezaškodí přidat nějaký lasery, rtuťovej spínač a bomby s nervovym plynem a celý to dát do letadla s teroristama, aby bylo dost materiálu na dvouhodinovej film o jedný bombě :-D Čim přeplácanější design tim líp a nejlepší sou bomby s umělou inteligencí (jako třeba ta filozofující v Dark Star, ale to se vidí málokdy).
Mul-ti-pass! | Hrdý člen KERNEL ULTRAS. | Furry/Brony/Otaku | Nemám čas ztrácet čas. | In 'pacman -Syu' we trust!
22.2.2012 15:01 Aleš Kapica | skóre: 50 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Zapoměl jsi ještě přidat sexbombu.. ;-)
gtz avatar 22.2.2012 20:08 gtz | skóre: 27 | blog: merlins | Brno - Venkov / Rosicko
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Nervový plyn ??
Někdy stačí po dnu v botech se jen zout :)
- nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
gtz avatar 22.2.2012 18:56 gtz | skóre: 27 | blog: merlins | Brno - Venkov / Rosicko
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
čím víc drátů, tím více čmoudíků :-)
- nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
22.2.2012 20:00 marek_hb
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
čím víc čmoudů, tím míň drátů :)
gtz avatar 22.2.2012 20:06 gtz | skóre: 27 | blog: merlins | Brno - Venkov / Rosicko
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
No byl jsem s kamarádem ohlídnout jednu chalupu, kterou koupil a chtěl po mně abych zkontroloval přímotop. Kontrola v pořádku vše jak mělo. Zapnula se šalina a pak bylo pěkně vidět jak dráty od zásuvky hoří ve zdi až k rozvaděči. :) nedivím se, tam byla instalace z 0.75 drátu s tím starým opletením a prostě to němělo šanci ustát. No aspoň bylo vidět kde se má sekat drážka.
- nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
22.2.2012 22:28 phr | skóre: 13 | blog: no_comment | Klatovy
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Měli jste chvíli vydržet a vyskákalo by to ze zdi samo...
"Umělá inteligence se nemůže rovnat přirozený blbosti"
gtz avatar 23.2.2012 20:02 gtz | skóre: 27 | blog: merlins | Brno - Venkov / Rosicko
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Však se nemuselo málem nic sekat ... byl to pěkný hučák ... jako šlo to celkem rychle.
- nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
21.2.2012 22:42 Mrkva | skóre: 22 | blog: urandom
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Pozor, chystáte se komentovat 1275 dní dní starou diskusi.
A ten kód... Ježišmarjáááá!
Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
Max avatar 21.2.2012 23:08 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Nojo, článek jsem měl dlouho připraven, ale nějak ho né a né vydat :D.
Zdar Max
PS:ano, jistě jsem v tvých očích klesnul na dno, ale nedá se svítit, já to musel ze sebe dostat ven :D
Měl jsem sen ... :(
21.2.2012 22:51 VSi | skóre: 28
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Dobré. Asi každý, kdo má na starost větší množství Win desktopů má něco podobného. A to i s AD, tam je potřeba také některé věci někdy doladit ručně.

Já jsem si tuhle část postavil na importu .reg souborů přes regedit /s a pár .bat souborech, co spouští systémové nebo externí nástroje na věci jako změny ve firewallu nebo zákaz některých služeb. Na speciality je tam ještě pár VBS skriptů (třeba konfigurace tiskáren). Přijde mi to přehlednější, rozdělené na jednoúčelové moduly, a snáz se dělají úpravy - něco na způsob unixových shell skriptů. Ten blog je dobrý minimálně jako dokumentace těch klíčů, plno jsem jich neznal. Ale přemýšlel jsi udělat to jak jsem psal? V C++ mi to přijde zbytečně nepřehledné.

Další level je automatická instalace a updaty všech aplikací. To je často ještě větší magie než konfigurace Windows. Ale pak je to pěkné, když se všechno zkonfiguruje a nainstaluje samo (podle konfigurace pro konkrétní stroj) bez sáhnutí během 10 minut po obnovení image úplně čistých Windows (to trvá tak 2 minuty).
Max avatar 21.2.2012 23:07 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Netware neumí spouštět baťáky, dokonce neumí myslím ani exe s parametrem :-/. Proto jsem se uchýlil k čistě exe aplikaci, ale stejně jsem nakonec udělal wraper na baťáky a občas nějaký spustím (něco, co jsem nebyl schopen udělat v C++).
Jinak automatická instalace není u nás moc jednoduchá :-/. Máme hafo různorodého softu :-/. Nicméně, instalák runtime našeho IS jsem vykuchal a udělal krásný instalák v innosetupu, který podporuje instalaci na pozadí. Mám hotové skripty na instalaci Oracle klienta na pozadí a další věci, ale dotažené to úplně není. Vesměs, všechno toto už je v image ke konkrétnímu typu stroje, takže tato otázka mně už moc netrápí (zatím :) ).
Zdar Max
Měl jsem sen ... :(
21.2.2012 23:25 VSi | skóre: 28
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Jasně. S různými programy "pochybné" kvality bývají problémy. Já jsem to postupně dával dohromady několik let, aplikačních balíků udržuju asi 40. Nakonec každá instalace se v nejhorším případě dá převést na diff obsahu disku a diff Registry - ale dělat to ručně je hrozná práce. Zrovna Novell na to ale myslím má dobré nástroje v rámci ZenWorks, to ale zase stojí dost peněz, no.

Ono už je dobré mít pod kontrolou aktualizace Firefoxu/Chrome, Javy, Adobe Readeru, Flash pluginu a podobných věcí. Velká část těch "interních" aktualizátorů blbne, když uživatel není admin. Pokud se používají cestovní profily, a na různých desktopech jsou různé verze SW, je to peklo. Mít aplikační software v image disku - to jsme taky používali. Ale potíž je, že image potom jak přichází nové verze sw zastarává, a je potřeba je občas předělávat. Přichází požadavky, že na všechny desktopy se má doplnit něco nového...

Když se dosáhne stavu, že úplně všechno se instaluje automaticky, ušetří to dost práce a starostí. Když nějaký počítač blbne nebo odejde, vím, že můžu pustit automatickou reinstalaci, a uživatel tam bude mít všechno co předtím. Image pro každý HW se udělá pro určitou verzi Windows jednou, a pak se na něj nikdy nemusí sahat. Na Win7 to ještě nemám, ale tam by měly odpadnout i ty image - měla by jít instalace přes síť na jakýkoliv HW. Otázka je, jak to bude rychlé a spolehlivé.
Max avatar 22.2.2012 07:28 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Do neviditelného updatu aplikací si zatím netroufám jít, ještě tu máme hodně šnekoidních PC a uživatelé by mně asi zabili, kdybych to něčím trochu zatížil (nehledě na reakce AVG, které jsou občas dosti zajímavé :-/ ).
Nicméně, zavedli jsme už kvůli AVG servisní noc, kdy lidé nevypínají PC a běží AV test, při kterém by se vše nezbytné mohlo dělat a také už něco máme v plánu.

Když je čas, tak dělám image + upravuju a zjišťuje neinteraktivní instalace, ale nemám vše komplet podchyceno. Zas tak velkou síť nemáme, abych si jednou za čas nemohl hodil obnovu image + aktualizaci pár programů. Zbytek SW je na sdíleném disku, takže tam je upgrade hračka.

Pokud jde o přehlednost ve skriptu, tak z toho důvodu mám projekt rozdělen na knihovnu + main, kde volám všechny fce. Main je jen seznam a popis fcí, takže si myslím, že přehlednost je ok (kvůli té přehlednosti jsem to tak udělal).
Zdar Max
Měl jsem sen ... :(
gtz avatar 22.2.2012 18:58 gtz | skóre: 27 | blog: merlins | Brno - Venkov / Rosicko
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Spousta lidí přešla z AVG na AVAST popř. na ten M$ free. Oba dva jsou rychlejší než ta pomalá škeble od AVG.
- nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
Max avatar 22.2.2012 22:35 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
My jsme plánovali přechod na Eset, nebo na Nortona, ale cenová politika AVG je, jak bych to řekl, poloviční. Do MS bych nešel (jedině ten Forefront Endpoint Protection, který má centrální správu a monitoring, ale ten moc výrazný není, takový zajíc v pytli) a ohledně Avastu, mno, je to o fous lepší, jak AVG, jen nevím, jak je to s centrální správou, kterou má třeba AVG docela zmáknutou.
Osobně považuji AVG za pomalého a náročného molocha, který chrlý jeden update za druhým a dost často vyžaduje reboot stroje :-/. Myslím si, že se ale přecijen trochu zlepšil a současná verze 2012 na tom není zas tak špatně, ale při spuštěném testu nám stejně zabije třetinu strojů v jobu (je jedno, jakou má nastavenou prioritu).
Otázkou také je, zda toto není i u jiných antivirů, doba jde dopředu, nároky antivirů brutálně stoupají atd.
Zdar Max
Měl jsem sen ... :(
22.2.2012 22:59 Lol Phirae | skóre: 23
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Pokud se ti jedná o centrální správu, jednoznačně doporučuju ESET. S centrální správou Avastu nemám zkušenost, ale co se týče HW nároků, tak oproti AVG to je nebe a dudy!

P.S. Symantec ani vidlema!!! Třeba už se tam znormalizovali, ale když jsme testovali jejich SEP v10, tak se tam zcela pomátli, místo normální MMC, kterou ti používalo do verze 9 včetně, to "multiplatformně" přepsali do Javy (samozřejmě na Linuxu to stejně nechodilo), běželo to na Tomcatu no a ta jejich genitální databáze, kam se celej ten chaos ukládal, na testovací síti o pěti strojích během měsíce nabobtnala na cca 3GiB a spuštění management konzole rovnalo se 100% vytížení 4jádrového serveru s 8GiB RAM asi tak na 15 minut. Běžná odezva na kliknutí tam kolem půl minuty. Mraky katastrofálních bugů, které nespravily to ani 3 service packy (tuším tomu říkají "rollup update" u Symantecu) no a "podpora" v té době spočívala v masivní cenzuře diskusního fóra a banování uživatelů, co si stěžovali na ten paskvil, za který zaplatili tisíce USD.
Max avatar 23.2.2012 07:24 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Hmm, díky za info. S konzolí od Esetu mám zkušenosti a musím říci, že je to zbytečně komplikovaná věc (pár let zpět), tohle je věc, která se mi u AVG líbí, rychlé, jednoduché, umí to vše potřebné.
S tím SEP jsi mně docela nemile překvapil :-/. Na druhou stranu, teď máme licenci na dva roky, takže nic.
Zdar Max
Měl jsem sen ... :(
gtz avatar 23.2.2012 20:05 gtz | skóre: 27 | blog: merlins | Brno - Venkov / Rosicko
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
buď ESET nebo AVAST. AVAST si bere půlku toho co chce AVG a nepotřebuje restartovat skoro nikdy (jen když se mění samotná binárka softu, ale to není povinost). Pokud jde o free alternativy pak Avast je tím lepším.
- nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
gtz avatar 23.2.2012 20:06 gtz | skóre: 27 | blog: merlins | Brno - Venkov / Rosicko
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
říkám zkuste Avast na nějakém desktopu a budete překvapen. Avast si bere půlku toho co ti ostatní je celkem rychlý. A aktualizace to je u Avastu něco jiného (tahá se jen strašně malá porce dat)
- nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
21.2.2012 23:28 Stevko
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Lepšie ako regedit je použiť reg (mal by byť súčasťou Windows). Ten je na komandlajnovú prácu s registrami určený. Hint: Ak vám správca zakáže púšťať regedit, reg pravdepodobne prejde.
21.2.2012 23:17 Lol Phirae | skóre: 23
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
To je ale fakt prasárna... :-D :-)

P.S. Ten Netware tam máte dobrovolně? :-)
Max avatar 22.2.2012 07:18 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Byl v jobu už několik let před mým nástupem. Kdysi se rozhodovalo, co se nasadí a šéf pravil, že do MS nechtěl jít a nelituje. Pravdou je, že to běží nějakých 7 let a moc se na to nesahalo, jen se rozšiřovalo pole.
Ovšem třeba s přístupem Vista/W7 byl docela problém s klientem. Novellu trvalo několik let, než vydal obstojnou verzi klienta, který funguje ok.
Mno a pokud jde o bezpečnost, tak bych si asi velké iluze nedělal :-/
Každopádně se to letos zlomí, koupí se new server (HP teď začne prodávat 8 generaci proliantů) a rozjede se FS na W2008R2 serveru.
Jinak netware nelituju, bylo to velmi příjemné seznamování, zase něco nového na učení a vím, proč se stal netware tak slavným, ve své době to musela být fakt bomba.
Zdar Max
Měl jsem sen ... :(
22.2.2012 08:38 Aleš Kapica | skóre: 50 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
..a rozjede se FS na W2008R2 serveru.
Ještě s láskou pak vzpomenete na Netware.
Max avatar 22.2.2012 09:22 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Asi takhle, je nás 8, z toho dva se staráme o klientské pc, servery a věci kolem. Zbytek jsou programátoři. Ovšem službu (noční - víkendová) na telefonu drží právě programátoři (většinou se řeší problémy s IS apod., jen minimálně hw věci, tak proto a dřív dělali ve firmě adminy, takže si poradí i s některými problémy kolem serverů / správy).
Mno a jediný linuxák jsem já. Sambu(parádně použitelná pro winxp/win7) tu již provozuji (mám tam instalační programy, ovladače a další věci), ale toto nemůže žádný windows admin spravovat natož řešit nějaký případný problém v době mé nepřítomnosti :-/. Rozjet tedy sambu pro všechny je jaksi z tohoto hlediska nemožné :-/.

Také jsem chvíli pokukoval po OpenAFS, ale to také padlo, jelikož správa by také nebyla pro windows adminy příliš jednoduchá :-/. Další problém by byl s kompatibilitou některých aplikací :-/ (občas se tu dějí děsné prasárny :-/). Výhodou by pak bylo použití failoveru a dalších věcí pro omezení výpadků a zvýšení dostupnosti. OpenAFS se mi jeví jako hodně robusní řešení a moc se mi líbí, ale je tu to ale :(.

Nedělám si ale iluze nato, že budou many pro Windows server enterprise, aby se mohl rozjet cluster.

Samba je pěkná, některé problémy bychom si ušetřili díky volnějším zámkům na souborech, nebo za ušetření many za licence lepší hw, ale bohužel. Jak už jsem psal, je tu problém se správou od ostatních adminů, popř. rozumná podporou AD, acl apod.

Na win pak mohu zapnout stínovou kopii svazku v nějakých intervalech a budu mít dostupná data z určité doby hnedle jedle na pár kliků. Toto lze samozřejmě i na linuxu, ale tady člověk opět naráží na user friendli řešení pro ostatní :-/.
Jinak se také děsím nějakých věcí. Třeba teď řešíme problém, proč program, který se spouští s win share disku (ze SBS2008) jede na winxp ok, ale na win7 se náhodně občas zacukne. Když ten samý program dáme na netware, tak problém z win7 zmizí. S takovýma duchařinama bude ještě sranda :-/. Možná bude v tomto konkrétním případě problém se smb2, ještě uvidíme.

Shrnuto a podtrženo, co jiného nasadit, kde by i ostatní mohli uplatnit své znalosti? Asi nic.
Zdar Max
Měl jsem sen ... :(
gtz avatar 22.2.2012 19:05 gtz | skóre: 27 | blog: merlins | Brno - Venkov / Rosicko
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Maxi nepotřebuješ zase moc peněz na cluster, natož na nějaký 2008 Enterprise. Stačí se podívat na nějaký storage server pro Windows (WSS 2003/2008 jsou celkem slušné, licence byly za pár korun a dokonce to mělo v sobě NFS server :-) pro 4 disky a jedno CPU to vycházelo na cca 150$ což jde.)

Na Netware vzpomínám se slzou v oku, jeho scripty byly v pohodě a dalo se jimi hodně udělat. Bohužel již je to pryč.
- nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
Max avatar 23.2.2012 10:48 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Nojo, "proč cluster" není ale otázkou dat, ale spíše systému :-/. Spolehlivost storage systémů je ok, to se ovšem nedá říci o systému, buď už kvůli nějakým chybám, nebo kvůli aktualizacím a dalším věcem.
V mém případě se bavíme o storage, který by měl mít pár TiB v nějakém rozumném poli + byl schopen rozumně a rychle obsloužit pár stovek klientů a programů. 1x denně full backup + zapnutá stínová kopie svazku.
Plán je, použít asi zase virtualizaci. Prolianta řady 8 + nějaký storage k němu, nevyužitý CPU + přebytek paměti by pak soužil pro pár dalších diskově nenáročných VM.
Zdar Max
Měl jsem sen ... :(
Bedňa avatar 22.2.2012 09:50 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Nejak moc som to neštudoval, ale prečo je tam default toľko TRUE a !podmienky to menia na FALSE? Opačný postup je krajší a hádam aj rýchlejší, páč FALSE sa nemusí vracať.
KERNEL ULTRAS video channel >>>
bambas avatar 22.2.2012 10:23 bambas | skóre: 20 | blog: bambasovo
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Max avatar 22.2.2012 10:56 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Jako správný slepovač kódu jsem se své role ujal...

Tzn, že jsem si jen vygooglil nějaké příklady na netu, vyhodil z nich ošetření výjimek (upozornění na neprovedenou akci apod.) a následně použil. Nic víc.
Zdar Max
Měl jsem sen ... :(
Bedňa avatar 22.2.2012 15:43 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Na neprogramátora samozrejme výborný výkon, len mi to uderilo do oka.
KERNEL ULTRAS video channel >>>
bambas avatar 22.2.2012 10:22 bambas | skóre: 20 | blog: bambasovo
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Jen trosku nechapu, proc je to psany v C++. Proc se nepouziva reg.exe s parametry Add, delte, query, copy, save, atd...? To same nastaveni sluzeb. Vsechno to lze nastavit pres commandline. Tzn pros nevytvorit nejaky bat soubor a v tom to tam sypat? Navic visual studio volnestazitelne ze stranek M$ neni urceno pro komercni sferu - nejsem si tim ale jist na 100%.
22.2.2012 10:35 tomvec | skóre: 24 | Kojetín
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Max napsal:
Netware neumí spouštět baťáky, dokonce neumí myslím ani exe s parametrem :-/.
22.2.2012 10:37 Aleš Kapica | skóre: 50 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Vždyť to píše. Pouští to přes netware a ty stroje se mu s bat soubory nebaví.
bambas avatar 22.2.2012 10:47 bambas | skóre: 20 | blog: bambasovo
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Jaj! Sakra, omlouvam se. To jsem asi prehledl :/
bambas avatar 22.2.2012 10:48 bambas | skóre: 20 | blog: bambasovo
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Kazdopadne existuje BAT2EXE converter, ktery udela z batky exac. Taky cesta.
vladky avatar 22.2.2012 16:06 vladky | skóre: 19
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Pokial viem, tak netware dokaze z login scriptu spustat bataky cez # ale treba tu vyskusat. Skus dat nakoniec scriptu #mojscript.bat a na konci scriptu nezabudni exit. Treba sa pohrat s cestami, ale malo by to fungovat.
Max avatar 22.2.2012 16:20 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Ano, stačí dát křížek a za ním příslušný soubor (exe, bat apod.). Musel jsem se ovšem někdy v minulosti hodně splést, páč teď jsem to ještě zkoušel a baťák se mi spustí. Je mi záhadou, co jsem tenkrát dělal (5 let zpátky), nebo se mezi tím něco změnilo a já už to neřešil :-/.
Zdar Max
Měl jsem sen ... :(
Max avatar 23.2.2012 07:30 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Teď jsem ještě zkoušel s parametrem, tj. nějak takto :
#C:\windows\system32\cmd.exe \\192.168.0.1\zapis\test.bat
A taktéž to prošlo. Vím, že tenkrát jsem řešil vyskakování oken (nechtěl jsem, aby bylo cokoliv vidět), z toho důvodu jsem nechtěl použít baťáky. Pamatuji si, že mi také nešli spouštět nějaké věci, ovšem používal jsem jiného (staršího) klienta, možná bug :-/. To je jedno.
Zdar Max
Měl jsem sen ... :(
Max avatar 22.2.2012 10:54 Max | skóre: 69 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
VS Express Edition je free i pro komerční použití, jen postrádá několik zásadních věcí, které pro takovou chabou věc nepotřebuji.
Netware baťáky spouštět neumí, taktéž ani exe soubory s parametrem. Samozřejmě lze napsat wraper, který ten baťák spustí, ale :
1) nemám rád, když po spuštění uživateli vyskočí černé okno (cmd), nebo několik za sebou a bliká to na něj jak vyšinutý (částečně lze ošetřit wraperem, ale i tak se mi nepodařilo okno úplně skrýt a vždy problikává)
2) baťák by volal x krát reg + soubor s exportem klíčů, takto se volá 1x (vlastně 2x, jednou pro uživatele, jednou pro admina) jeden 50KiB exe soubor, který vše zajistí, takže u pomalejších PC, nebo PC na pomalejší síti, to je docela zásadní rozdíl v rychlosti spouštění
Zdar Max
Měl jsem sen ... :(
bambas avatar 22.2.2012 11:44 bambas | skóre: 20 | blog: bambasovo
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Jasne, byla to jen poznamka na jine reseni, aniz by clovek musel psat neco v C++, instalovat VS, atd.
22.2.2012 12:39 idaho
Rozbalit Rozbalit vše Re: SCRIPT : Jak během vteřiny nastavit (pár stovek) windows ...
Mam v praci AD, ten skript a klice z registru atd si pekne schovej, budou se Ti hodit. :)

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.