Objavljeno: 30.3.2005 11:28 | Avtor: Matjaž Klančar | Monitor September 2004

Administratorski nasveti: september 2004

Negrafično upravljanje naprav

Okna so znana po tem, da lahko uporabnik v njih postori prav vse z uporabo miške in bolj ali manj prijaznega in lepega uporabniškega vmesnika (iz istega razloga so Okna tudi tako zelo uspešna na trgu). Pa vendar je, predvsem naprednim uporabnikom, redno klikanje z miško tudi neprijetno in zamudno, saj je določena opravila veliko laže opraviti v ukazni vrstici ali kar v skripti. Microsoft se tega pospešeno zaveda in Oknom počasi dodaja tudi ukazne različice vgrajenih sistemskih orodij. Eno takih orodij je devcon.exe, ki lahko popolnoma nadomesti grafični Device Manager. Dobimo ga na http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q311272 ali pa na namestitveni plošči Windows 2003 Server (pod Support Tools).

Z devcon.exe lahko naprave brišemo, dodajamo, jim zamenjujemo gonilnike, jih nadgrajujemo in podobno. Prav pride torej ob specifičnih potrebah. Omenimo samo eno - denimo, da imamo prenosni računalnik z eno tistih brezžičnih omrežnih kartic, ki si za prebujanje iz hibernacije vzamejo čas (tudi minuto ali več). Če smo neučakani, si lahko na namizju naredimo skript, ki omrežno kartico izklopi in jo spet zažene in s tem drastično skrajša čas iskanja omrežja.

Denimo takole:

devcon disable PCI\VEN_14E4

devcon enable PCI\VEN_14E4

PCI\VEN_14E4 je ime omrežne kartice (ali njenega gonilnika), kot jo vodijo Okna, in je seveda bistveno. Ime najlaže izbrskamo tako, da pogledamo, kako kartici pravijo v njenih lastnostih (npr. WLAN 802.11g mini-PCI Module #2), nato pa to ime poiščemo v registru. Najverjetneje ga boste našli nekje tule: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCI\ (če gre za kartico PC Card, bo namesto PCI najverjetneje ključno vozlišče PCMCIA). Tam pogledamo ključ HardwareID in vidimo dejansko ime, ki ga iščemo - to je znakovni niz do prvega znaka "&" (v zgornjem primeru je dejansko zapisano PCI\VEN_14E4&DEV_4320&CC_0280).

Globoko v registru najdemo "pravo" ime omrežne kartice, ki jo kot argument potrebuje devcon.exe)

Pobijanje na daljavo

Odgovorni ste za računalniško infrastrukturo v podjetju, vaši uporabniki pa ne spoštujejo nobenih vaših zapovedi. Nič nenavadnega.

Prepovedali ste uporabo programov za deljenje datotek oz. t. i. programe P2P (Kazaa, eMule, Soulseek...), ker je to prepovedano, še posebej pa zato, ker vaša internetna "pipa" za vse to ni dovolj široka in zato trpi službeni del internetne komunikacije. Prepoved vam je šla skozi eno uho noter in skozi drugo ven... Ali je kak preprost način za to, da bi upraviteljevo voljo na silo uveljavili, in to tako, da to ne bo osušilo lokalnega proračuna IT (nakup profesionalnih nadzornih orodij, kot so SMS, Tivoli, Unicenter ali OpenView, torej odpade)?

Je, potrebujemo program, ki zna pobijati procese, in to tudi v oddaljenih računalnikih, prek omrežja. Če tega ne najdemo, si lahko pomagamo s kombinacijo dveh programov - enega, ki zna lokalno pobijati procese, in drugega, ki zna katerikoli program (tudi "pobijalca") zagnati na oddaljenem računalniku.

Odlična taka kombinacija sta programa pskill in BeyondExec. Pskill je odličen programček (velik le 94 KB!) znanega guruja Marka Russinovicha in je na voljo na njegovi zastonjski strani www.sysinternals.com. Omogoča pobijanje (dobesedno, pobije tudi procese, ki se legalno, iz Task Managerja ne pustijo) procesov, in to tudi na oddaljenih računalnikih. Če imate v omrežju le nekaj računalnikov, torej popolnoma zadostuje - vpišete pskill \\janezov_racunalnik emule.exe in ukaz morda ponovite še za koga in to je vse. Težave nastanejo, če imate v omrežju nekaj (deset) računalnikov. V tem primeru bo treba spisati skript z zanko for, ki bo pskill pognal na vsakem računalniku z nekega seznama, shranjenega v neki datoteki.

Npr. takole:

for /F %%i in (racunalniki.txt) do pskill.exe \\%%i emule.exe " emule.txt

Zgornja vrstica bo rezultate zapisovala v datoteko emule.txt, v kateri bomo lahko pozneje preverili, ali smo imeli kaj uspeha - na katerem računalniku je dejansko bil pognan emule.exe.

Če se tudi tako malo programiranja nočete dotakniti, lahko uporabite program BeyondExec (www.beyondlogic.org). Ta ima to lastnost, da zna seznam računalnikov, na katerih mora namestiti in pognati program, pobrati iz neke besedilne datoteke. V datoteko (npr.) racunalniki.txt vpišemo računalnike, ki jih želimo počistiti, potem pa poženemo nekaj takega kot

beyondexecv2.exe -g racunalniki.txt -u moja_domena\administrator -p moje_geslo u:\pskill.exe emule.exe > emule.txt

Disk U je v tem primeru neki skupni omrežni disk, do katerega imajo dostop vsi računalniki, tako kot zgoraj pa bo tudi tu v datoteki emule.txt zapis morebitnega uspeha.

Še hladen tuš za tiste, ki so na začetku tega sestavka pomislili, da bi bilo take programe najlaže ustaviti že na požarnem zidu. Žal je to skoraj popolnoma nemogoče, saj so ti tako zviti, da znajo delati skorajda prek vsakih vrat TCP/UDP. Celo prek vrat 80, ki jih uporabnikom za dostop do interneta skorajda moramo dopustiti...

Preverjanje uporabe modemov RAS in VPN

Lepa lastnost naprednejših različic Oken je v tem, da so imele od začetkov Windows NT naprej vgrajen Event log (kar ne velja za Windows 95/98/ME). Torej kraj, kamor operacijski sistem in vsi programi, ki to želijo, vpisujejo vsa obvestila o pomembnih in manj pomembnih dogodkih. Žal je to zapisovanje velikokrat tako kriptično, da za razvozlanje vpisane informacije potrebujemo specializirane programe, ti pa seveda niso poceni. Z nekoliko iznajdljivosti lahko določene informacije vendarle izbrskamo tudi sami in to celo v taki obliki, da je mogoča nadaljnja analiza le-teh.

Če je naš Windows strežnik tudi strežnik RAS, kar pomeni, da sprejema modemske in VPN klice in tako uporabnikom omogoča delo od doma, bi bila zelo zanimiva informacija, ki bi si jo želeli izluščiti iz Event Loga - uporaba in zasedenost določenih modemov/povezav VPN in aktivnost določenih uporabnikov. Vse potrebne informacije Okna shranjujejo v sistemski del Event Loga (System Log) in za začetek je nujno, da le tega shranimo v nekakšno tabelarično obliko. Najbolje kar v formatu Tab Delimited (z desno tipko v Event Logu izberemo SaveAs). Datoteka, ki jo s tem dobimo, vsebuje množico podatkov, ki nas sploh ne zanimajo, vendar tudi tiste ključne, zaradi katerih smo se posega sploh lotili. Potrebujemo torej nekakšen skript, ki bo naredil selekcijo in izluščil le informacije, ki se tičejo dostopov RAS. Za taka opravila je najuporabnejši jezik perl - je učinkovit, prilagojen delu z nizi, njegova programska koda pa je silno kratka in kompaktna.

Skript, ki ga potrebujemo, se glasi takole:

use strict;

die "Usage: parseRAS <input file> <output file>" if $#ARGV != 1;

open (IH, "<$ARGV[0]") or die "Cannot open $ARGV[0] for reading";

open (OH, ">$ARGV[1]" or die "Cannot open $ARGV[1] for writing";

print OH "account;port;connectdate;connecttime;disconnectdate;disconnecttime;connectedtime;bytessent;bytesreceived\n";

while (<IH>) {

my @fields = split /\t/;

if ($fields[5] == 20048) {

my ($account, $port, $connDate, $connTime, $discDate, $discTime, $minutes, $seconds, $sent, $received) = ($fields[8] =~

/user (.*?) connected on port (.*?) on (.*?) at (.*?) and disconnected on (.*?) at (.*?)\..*?for (.*?) minutes (.*?) seconds\.\s*(.*?) bytes were sent and (.*?) bytes/);

print OH "$account;$port;$connDate;$connTime;$discDate;$discTime;",$minutes*60+$seconds,";$sent;$received\n";

}

}

Shranimo ga v datoteko parse.pl in ga poženemo z interpreterjem Perl, najraje z ActivePerl (www.activeperl.com). Npr. takole (pri čemer je datoteka export.txt tisto, kar smo prej dobili iz Event Loga):

perl parse.pl export.txt izhod.csv

Izhodna datoteka zdaj vsebuje le informacije, ki se tičejo klicev RAS, podatki pa so razmejeni s podpičji. Če jo dvakrat kliknemo (in če imamo nameščen Microsoftov Office), se nam bo odprla v Excelu, tam pa se lahko lotimo nadaljnje obdelave. Podatke lahko uredimo, tako da so podatki za iste uporabnike skupaj, vklopimo lahko seštevanje skupnih časov priklopa ali morda prenesenih podatkov (Tools/Subtotals) in še marsikaj, kar omogoča Excel. Z nekaj dela lahko tako pripravimo lepo poročilo o uporabi povezav RAS in ga na morebitno zahtevo predložimo vodstvu.

Za izdelavo skripta se zahvaljujemo Primožu Gabrijelčiču.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji