GetUser Functioneel

Omschrijving

GetUser is een Windows command-line script wat, aan de hand van een computer- of gebruikersnaam, informatie weer geeft betreffende de computer en / of gebruiker. Deze informatie wordt gehaald uit Active Directory, het netwerk profiel, de machine en het lokale profiel.
Op het moment kan GetUser de volgende informatie weergeven:

  • De standaard Active Directory gebruikers informatie
  • Wel of geen blackberry
  • Telefoonnummer
  • Kantoor adres
  • Tijd wanneer er het Laatst is aangemeld
  • Machine waarom het laatst is aangemeld
  • Altiris uitrolsite
  • Netwerk paden van de G:, H: en L: schijven
  • Netwerk paden van het Lokale netwerk en terminalservices profiel
  • Grote van het netwerk en het lokale profiel
  • Synchronisatie tijden van het netwerk en het lokale profiel
  • BSA profiel van de machine
  • HGS profiel van de machine
  • Contract type (VOW / BOW)

Daarnaast kunnen een aantal standaard acties worden gecontroleerd zoals de grote van het netwerk of lokale profiel en synchronisatie tijde van het profiel.

 

GetUser technisch

De variabele:

GetUser gebruikt in versie 2.6.4 129 variabele, deze worden in drie plaatsen gezet.

  • GetUsr.cfg: De centrale configuratie.
    Hier staan paden naar bijv. log bestanden, domein en groep informatie en een kopie van de gebruikers configuratie voor het geval die nog niet bestaat.
  • GetUsrPersonal.cfg: De persoonlijke configuratie.
    Hier staan de gebruikers specifieke waarde zoals kleur instellingen en scherm grote maar ook kan hier het uitgebreide logging worden aangezet.
  • GerUsr.cmd: GetUser eigen variabelen.
    Hier staan al de overige variabelen die GetUser nodig heeft , denk hier aan switches, SessieID, gefilterde data, gebruikers input, etc, etc, etc.

 

Tijdelijke bestanden en het SessieID:

GetUser maakt gebruik van meerdere tijdelijke bestanden, dit vooral om de vergaarde data makkelijk te kunnen filteren. Omdat een gebruiker meerdere sessies van GetUser open moet kunnen hebben wordt aan elke sessie een SessieID gekoppeld, deze wordt in de bestandsnamen opgenomen zodat welke sessie zijn eigen set bestanden heeft.

De configuratie bestanden:

Elke regel die je typt kan fouten bevatten en zeker in een script van zo’n 1100 regels kan dat aardig wat tijd kosten om weer op te lossen. Omdat dingen als netwerkpaden groeplidmaatschappen ed. nog wel eens willen wijzigen zijn deze waarden in de centrale configuratie geplaatst. Op deze manier hoeft bij een wijziging in de netwerk infra enkel dit bestand te worden aangepast en niet het script zelf.
De centrale configuratie is 'beveiligd' met een MD5 hash en is op deze manier altijd gekoppeld aan de laatste Final versie van GetUser. Dit was vooral als PoC gedaan maar heeft wel als voordeel dat de configuratie niet zomaar kan worden gewijzigd. Natuurlijk is dit maar betrekkelijk het gaat immers om een plain-text cmd bestand dus de manier van het hashen is vrij simpel uit te lezen en te reproduceren.
GetUser geeft standaard een command venster van zo’n 100 regels met witte tekst op een blauwe achtergrond weer.  Om toch de mogelijkheid te bieden dat iedereen zijn eigen kleur en formaat instellingen kan kiezen worden deze instellingen in een persoonlijke configuratie geplaatst welke in de root van de homeshare staat.

 

De logging:

Om ervoor te zorgen dat alles wat gebeurd ook kan worden geanalyseerd beschikt GetUser over vrij uitgebreide logging.

  • Exit logging:
    Bij het afsluiten van GetUser wordt een dump gemaakt van alle gebruikte variabelen naar een log bestand in de %TEMP% directory. Het doel hiervan is dat, wanneer iemand bijv. een fout heeft gevonden, aan de hand van deze log de situatie gereconstrueerd kan worden.
  • Usage logging:
    Bij het starten wordt in een centraal log de datum, tijd, GetUser versie, werkplek en IP adres, SessieID, soort input (een computer- of gebruikers naam) en de gebruikersnaam opgeslagen. Dit log hoorde initieel bij de Exit logging, de gedachte was dat wanneer iemand niet meer wist wanneer hij de fout tegen kwam, of op welke werkplek hij toen zat, dit hier als nog kon worden uit gelezen. Maar, dit log is veel leuker om het gebruik te monitoren.
  • Menu Usage logging:
    Alle gekozen menu opties worden ook weg geschreven in een centraal log. Dit is gedaan om te achterhalen welke onderdelen het meest gebruikt worden en welke misschien wel helemaal niet.
  • TestDriveLogging (TDL):
    Dit log is het grootste maar ook het zwaarste log binnen GetUser en wordt gebruikt om het vinden en verhelpen van fouten te vergemakkelijken.
    Anders dan de eerder genoemde logs wordt deze niet standaard gestart. Bij het opstarten controleert GetUser eerst de versie, als dit geen Final is wordt TDL actief.  Als enig log zit deze helemaal in GetUser verweven het omslaat dan ook ongeveer een derde van het script. Van elk script deel (behalve TDL zelf) wordt de tijdsduur, de gebruikte variabelen en alle errorlevels centrale opgeslagen. Deze logging is vooral handig tijdens het bug-fixen doordat je achteraf heel goed kan nagaan wat het script op welke plek gedaan heeft en je een goed overzicht hebt van de errorlevels. Het bijhouden van de tijdsduur is van belang omdat GetUser binnen 10 seconden de naam van de gebruiker moet weergeven, via TDL worden dus ook de tijd intensieve acties inzichtelijk waardoor hier makkelijker aan kan worden voldaan.
    Een nadeel van TDL is dat het script hierdoor meteen ERG traag wordt, dit komt vooral door het uitrekenen van de tijdsduur, en dat het bij elk script deel ook geïmplementeerd moet worden.

 

 

LionOne III - Visited

Eddy P. de Leeuw