(Skriptování ve Windows )^2

myšák Únor 25th, 2008

Nejen na internetu, ale snad všude, kde se sejdou dva nesmiřitelné tábory bránící do “posledního muže” svůj oblíbený operační systém (tj. Windows kontra Linux), si můžete přečíst/vyslechnout mnoho názorů na téma “proč je můj OS lepší než tvůj”. Jedním z často zmiňovaných argumentů je i podpora pro skriptování úloh v systému, které je (dle mého subjektivního názoru) ve Windows bez instalace SW třetích stran silně podprůměrné. Pokud si navíc usmyslíte, že chcete své skripty povýšit na úroveň systémových služeb, tak jste v *** jak Baťa s dřevákama… tedy až donedávna.

Vzhledem k tomu, že ze mě nikdy nebude programátor, omezil jsem své výpady do této pro mě neprobádané oblasti na jazyky uživatelsky přítulnější (rozuměj skriptovací jazyky) a vesele si užívám možností, které mi poskytují Perl, Python a Ruby v prostředí Linuxu. Programování v Céčku a podobných nízkoúrovňových záležitostech nechávám zkušenějším a jsem rád, když se jim můžu zeširoka vyhnout. K administraci je nepotřebuji, tudíž ani v mém TO-DO listu se doposud neobjevily.

Bohužel (bohudík?) je značná část mého pracovního dne zaměřena na správu uživatelských stanic, na kterých neběží Linux alébrž Windows a zde je admin vybavený znalostmi “paranormálních jazyků” á la Perl apod. stvořením nevítaným. Pokud se odhodláte v tomto OS cokoliv automatizovat, máte v čisté instalaci k dispozici “jediné správné ultra-hyper-high-end nástroje” (TM), a to buď dávkové soubory (.BAT, .CMD) nebo (pro odvážnější) Windows Scripting Host neboli Visual Basic Script. Pokud se vám sada těchto skvělých nástrojů nelíbí, musíte se pídit po podpoře vašeho oblíbeného jazyka u jiných dodavatelů. Pro můj oblíbený PERL naštěstí taková podpora existuje a rozšíření Windows (nejen) o tento mocný nástroj je díky společnosti ActiveState je poměrně bezproblémové.

Tady by “success-story” mohla v podstatě skončit a všichni bychom mohli být usměvaví a spokojení…

…ano, pokud si vystačíte s automatizací úloh, které spouštíte jednorázově (ručně popř. automaticky pomocí “Plánovače úloh”). Pokud vás napadne podobně kacířská myšlenka jako mě, totiž uplácat si ve svém oblíbeném skriptovacím jazyce udělátor, který poběží jako systémová služba, tak si můžete vzít pastelky, kousek papíru a jít si svůj sen o Winservice napsané v PERLu (nebo jiném skriptovacím jazyce) namalovat. Existuje sice možnost použít udělátka přímo od dodavatele OS (Instsrv + Srvany), ale výsledky jsou rozporuplné a uživatelská přítulnost nevalná.

Naštěstí jsem ale vytrval a mé snažení za vydatné pomocí “strýčka Gůgla” přineslo ovoce. Vzhledem k tomu, že zoufalců s podobně úchylným nápadem jako jsem měl já bylo více, chopili se této myšlenky šikulové, kteří programování služeb pro Windows rozumí podstatně lépe a stvořili vychytávku s názvem ExeService. Pokud tedy toužíte po tom, aby vaše skriptíky běžely ve Windows ve formě systémové služby (tedy i pokud na stanici není nikdo přihlášen), nyní už vám nic nestojí v cestě. Stačí stáhnout zmíněnou utilitu, nainstalovat, pomocí příjemného uživatelského rozhraní “posunout vaše skripty na vyšší level” a kochat se zaslouženými plody vaší tvořivosti. Pomocí ExeService lze vydávat za systémovou službu jak přímo spustitelné programy (.EXE), tak skripty psané v PERLu, Pythonu, Ruby či dávkové příkazy psané přímo v shellu Windows, takže tvořivosti se meze nekladou a s jistou dávkou optimismu lze říci, že z obyčejných Windows XP uděláte i “pseudoservřík”. Troufám si tvrdit, že pro účely administrace, vzdálené spouštění aplikací atd. je pro mě ExeService po dlouhé době jednou z “killer-app” na Windows.

Trackback URI | RSS/Komentáře

Vložit komentář

Pro vložení komentáře se musíte přihlásit.