Egyszerű kiolvasás

Abszolút egyszerű feladatot kaptam. Csináljak egy listát, a következő oszlopokkal: felhasználói név, GUID. Az első oszloppal nem volt semmi gond és úgy véltem, a másikkal sem lesz. Kétperces munka. Egy perc volt, amíg megnéztem adsiedit-tel, hogyan is hívják a tulajdonságot: objectguid. A következő perc pedig azzal telt, hogy az előregyártott lekérdezőszkriptemben átírtam a lekérdezést a kívánt formára.
Majd az elkövetkező pár órában azzal foglalkoztam, hogy rájöjjek, miért is nem működik ez a módszer. A szkript ugyanis üres oszlopot hozott le.
Rutinosan kikapcsoltam a szofisztikált hibafigyelést (on error resume next), így meg is kaptam a várt runtime error-t.
Nézzük, ldp-ből mit látok. Semmit. Nincs ilyen tulajdonság. Visszamentem az adsiedit-hez, hátha az előbb káprázott a szemem, de nem – a tulajdonság ott volt, sőt, módosítani is tudtam. (Ezzel azért óvatosan.) Azaz jogosultsági probléma sem lehet.
Jöjjön a gugli power. Hosszas keresgélés után találtam olyan linkeket, miszerint felejtsem el, a feladat vbscript segítségével nem oldható meg. Ugyanis az objectguid az egy binárisokat tartalmazó tömb, a vbscipt viszont kizárólag a variant típusú tömböket tudja kezelni.
Szerencsére a lendület továbbvitt és kipróbáltam még néhány keresőszót. És meg is lett az eredménye, rátaláltam egy írásra Eric Lippert blogján.
A szokásos szöveggel indít. Hogy miért nem lehet megoldani a feladatot. Aztán megmutatja, milyen trükközéssel lehet mégis.
Először bedobja a cstr() függvényt. Ez egy olyan függvény, amely képes kigondolkozni a dobozból. Mindent, még az általa értelmezhetetlen adatokat is átkonvertálja sztringgé. Bízik benne, hogy a programoló csak tud kezdeni valamit a karakterkukaccal. És Eric tud. Nekiáll sztringet szeletelni, karaktereket konvertálni, nullából duplanullát csinálni – míg végül a boszorkánykonyhájából kipottyan a friss, ropogós GUID.

Egyszerű kiolvasás. Ja.

7 Comments

  1. Hali,

    Ez ugyan js, de egy ideje itt van:
    http://www.gomori.hu/functions_hu.htm

    üdv
    Zoli

  2. Valóban.
    Be kell vallanom, hogy én az AD-t excel táblákból szoktam piszkálni, mert a makrózási lehetőség szép és jó és legfőképpen teljesen vbscript. Emiatt viszont hanyagolni is szoktam a js-t, valószínűleg érdemtelenül.

  3. Nem a cscript() függvényt dobja be, hanem a CSrt()-t !

  4. Így igaz. Ott volt a probléma, hogy a cstr-t én cstring-ként memorizáltam és ez fajult el írás közben.
    Köszi a figyelmeztetést, javítottam.

  5. Ej vbscriptet tenyleg el kellene mar sullyeszteni a marianna arok legmelyebb bugyraba, hiszen ezt a feladatot egy statikus tipusos nyelvben tenyleg ket perc megoldani, de meg monad alatt is. Pl C#, vagy a Monad is tokeletes AD varazslasra.

  6. A monad rajta van a listámon, bele is fogom magam ásni. A C# viszont már sok egy ilyen adminféleségnek.

  7. Összedobtam MONAD-ban – katt a linkre!

Leave a Reply

Your email address will not be published. Required fields are marked *

© 2020 MiVanVelem

Theme by Anders NorénUp ↑