Csatlakozás hálózati erőforrások automatikusan
Csatlakozás hálózati erőforrások automatikusan
A választott programozási nyelv
Megjegyzés: A forgatókönyv korábban létrehozott VBScript, Jscript könnyen átírni KIXtart. Az összes példa ebben a cikkben bemutatásra kerül KIXTart nyelvén.
Az adatok forrása - fájl vagy adatbázis?
Ahhoz, hogy sikeresen egy hálózati erőforrás, a felhasználónak meg kell tudni, hogy a hálózat a lemez nevét, amely összefüggésbe hozható az erőforrás, és a UNC útvonalat a hálózatra csatlakoztatott források. Kívánatos, hogy van egy leírás, hogy javítsa ki a lemez nevét az „Sajátgép” mappát. Természetes kérdés merül fel - hol van a legjobb helyen kell tárolni az információkat? Ez lehet egy szöveges fájl, amely abban rejlik, hogy a Netlogon könyvtár, vagy bármely boltban, például az Active Directory (a továbbiakban AD). Én használtam mindkettőt, és a végén esett a választás az AD. Ez már elég sok oka lehet, hogy át adatok a szöveges fájlt a AD, például az egyszerű karbantartás, csökkentve a program kódot, és így tovább. D.
A működési elve a forgatókönyvet
Ahhoz, hogy tárolja az információt az AD egy csatlakoztatott erőforrás megosztott_mappa szabványos objektum használtuk, amely tájékoztatást tartalmaztak a levél, amely összeköti a hálózati erőforrás; UNC-útvonal egy hálózati erőforrás; leírás a hálózati erőforrás, ami megjelenik a „Sajátgép” mappát; Biztonsági csoport neve, amelynek tagjai lesznek kötve erőforrás.
Bemutatjuk a mechanizmus egy csatlakoztatható a hálózati erőforrások a példa az általános «Otdel1» Unit mappákat. Hagyja mappa a következő hálózati elérési út - «EsmiraldaWork $ Otdel1» csatlakozik a meghajtó „K” és egy leírást a „Service Files” (lásd 1. ábra ..). Az AD bármely OU, például «osztja», objektum létrehozása «Share mappa» (lásd. Ábra. 2). Minden más OU, hozzon létre egy biztonsági csoportot, akiknek a neve egyezik az URL hálózati megosztás után az utolsó „pont”. Ebben a példában, egy megfelelő csoport a csatlakoztatott lemez, fel kell hívni «Otdel1». A csoport tagjai lesznek hálózatra csatlakozik erőforrás a feltétellel, hogy hozzá kell adni a biztonsági fül «Otdel1» mappa megfelelő jogosultsága a mappát. Ha azt szeretnénk, hogy egy pár különböző hozzáférési szinteket, az előtag lehet használni a csoport nevét.
1. ábra: Példa egy hálózati meghajtó megváltoztatja a leírást a „Sajátgép” mappát
2. ábra: Objektum tulajdonságok megosztott mappa Active Directory
Megjegyzés: Abban az esetben, az erőforrás legyen minden felhasználó számára elérhető a hálózat, a «domain felhasználók» meg kell adni a csoport a megfelelő erőforrás-csoport a megfelelő jogokkal.
A szkript hálózati meghajtók
A szkript lehet osztani több logikai részből áll:
- meghatározza azon csoportok, amelyek a jelenlegi felhasználó;
- kapcsolatot az AD és a kiolvasott a megfelelő mezők;
- kapcsolja ki az összes feldolgozott script hálózati meghajtókat;
- kapcsolat szükséges hálózati meghajtókat;
- leírása a kiigazítás hálózati meghajtó a „Sajátgép” mappát.
Meghatározása tagság az érintett biztonsági csoport
Meghatározó tagság a megfelelő biztonsági csoportok segítségével végezzük a beépített függvény EnumGroup ():
Amíg Len ($ Group) = 0
A csoportok listája, amely a függvény visszatérési (Group változó $), a következő sablon: DOMAINGROUP. Amint az AD csoportban tárolt nélkül előtag (ebben az esetben az előtag rövid domain név), a kapott csoport lista átalakítani. Az eredmény ajánlott írandó ugyanazt a változót, azaz a CSOPORT:
Csatlakozás az AD és az olvasás a megfelelő mezőértékek
Csatlakozás AD használatával megvalósított adodb-vegyület:
$ StrADSQuery = "SELECT kulcsszavak nevét, leírását, CN, uncname FROM '+ $ domain_ + "' WHERE objectClass = 'kötet'"
$ ObjConnection.Open ( "Active Directory Szolgáltató")
Keresse szükséges objektumokat SQL-lekérdezés. Amint objectclass = „térfogata”, mint egy szűrő:
"SELECT uname, kulcsszavak, leírás, CN FROM '+ $ tartomány + "' WHERE objectClass = 'kötet'"
ahol a $ tartomány - a jelenlegi domain név, amely által meghatározott olvasási globális katalógus RootDSE. Olvasni elég egy normál felhasználó. $ Domain változó formában «DC = tartomány, DC = com»:
$ Domain = "LDAP: //" + $ rootDSE_.Get ( "defaultNamingContext")
Reading területén megfelelő adattípus „string”, az alábbiak szerint:
Ha az adatok típusát a tömböt:
Minden $ Val_Element a $ Val_Array
mezők használt script leírása és az adatok típusát az 1. táblázatban megadott (lásd. ábra. 2).
1. táblázat mezőinek leírása használt megosztott mappa objektum
Minden $ DS $ DSS
használja $ ds_s + ":" / törlés / kitartó
ahol a változó $ ds_s tartalmazza a mező értékét, leírás - a küldemény, amelyre a lemez van szerelve. Mechanizmuson keresztül a script kezeli csak azokat a hálózati meghajtókat, amelyeket a rendszergazda által az AD.
Csatlakozó a szükséges hálózati meghajtókat
meghajtó a kapcsolat által az algoritmus:
Először határozza meg annak szükségességét, hogy csatlakoztassa a hálózati meghajtóhoz információkat, azaz a levelet, amely a meghajtó (leírás mező) van felszerelve; UNC-útvonal erőforrás (UNCName mező); csoport, amelynek tagjai vannak csatlakoztatva egy erőforrás (cn mező).
Az olvasó valószínűleg van egy természetes kérdés: miért használja cn mezőt, ha a csoport neve megjelenik az UNC-útvonal erőforrás? Olvasd CN mező létfontosságú. Az a tény, hogy a hálózati erőforrás lehet a két típusa van: az általános és személyes. Íme két példa. Az első esetben a kapcsolat végre nyilvános mappában adatcsere, ez az úgynevezett «csere». Ennek alapján mappát hozzáféréssel, akkor az úgynevezett «csere», a megfelelő biztonsági csoport - «Bazár» és mivel magában foglalja az összes felhasználó ebben a csoportban, akkor a csoport tagja a csoport a «Domain Users». A második esetben van szükség, hogy az egyes felhasználó saját könyvtára. Ehhez hozzon létre egy mappát, például «HomeDirs» és almappákat hoztunk létre úgy, hogy a megfelelő felhasználói azonosítót. A helyzet megváltozott - a hálózati mappa elérési útvonala nem lehet használni, de ott van a területen CN - a forrás neve, ahol írhat le az összes szükséges információt: a felhasználó nevét és a megfelelő biztonsági csoport (lásd 2. ábra ..).
Így, miután meghatározzuk a három mező, hogy megtudja, ha a felhasználó a megfelelő erőforrás biztonsági csoport magában foglalja az esetben pozitív kimenetele érvényesítés kezdeni erőforrás kapcsolat a két algoritmus. Kiválasztási algoritmus jelenlététől függ, az olvasási értéke a bejelentkezési CN.
A meghajtó csatlakoztatása végezzük használata parancsot:
; tömb elemei $ usergroup_name [] egy csoportja, amely a jelenlegi felhasználói
a $ t = 0 és ubound ($ usergroup_name)
; megszemélyesítés kritérium tagság
; Ezekben a csoportokban PersonalGroup1 ... 3
ha instr (ucase ($ group_b) ucase ( "PersonalGroup1"))<>0 vagy instr (ucase ($ group_b) ucase ( "PersonalGroup2"))<>0 vagy instr (ucase ($ group_b) ucase ( "PersonalGroup3"))<>0
használat $ ds_s + ":" $ uncname
Ha a @ hiba = 5; Hiba elérésekor az erőforrás
$ ERROR_MESSAGE = $ hibaüzenet + "Nem lehet kapcsolódni a hajtás" + $ ds_s + "forrás" + $ cn + chr (13)
használat $ ds_s + ":" $ uncname
Ha a @ hiba = 5; Hiba elérésekor az erőforrás
$ ERROR_MESSAGE = $ hibaüzenet + "Nem lehet kapcsolódni a hajtás" + $ ds_s + "forrás" + $ cn + chr (13)
Előtolóhajtás leírások a „Sajátgép” mappát
Mechanizmus átnevezni egy hálózati meghajtót a „Sajátgép” mappát, akkor a legjobb kezdeni befejezése után a folyamat összekötő hálózati meghajtók magukat. Az olvasó lehet egy logikus kérdést: „Miért akarsz?”. Több oka is van. Íme néhány közülük: Képzeld el, hogy van egy hosszú utat hálózat - meghajtóbetűket nem láthatók. Egyetértenek abban, hogy ez kellemetlen. Másodszor, a felhasználónak kell tudni bizonyos helyzetekben, ahol az erőforrás található. Harmadszor, még ha a felhasználó nem olvassa UNC-útvonalakat lemezek, és a nevét a szokásos, „az én egység Files” vagy a „Saját projektek”. Azonnal világossá válik, hogy mi a célja lemezen. Hidd el, nem minden felhasználó felel meg a „hatalom felhasználó.” Ez annak a ténynek köszönhető, hogy a meghajtó kapcsolat időt vesz igénybe, ami függ a helyét a munkaállomás, szerver terhelését és egyéb tényezők. Pontosan kiszámítani a nem lehetséges, úgy, hogy gyorsítsák fel a program futása jobban osztja a blokkok csatlakozni meghajtók és módosítsa a leírást via-késleltetés funkció. A funkció számítás eredményeképpen időintervallum segítségével új makrót @Ticks, amely visszaadja az ezredmásodperc, mivel a boot meghatározott időkülönbség alatt - az említett időintervallum, késések, végezzük a hurok:
$ Q = @Ticks + $ delay_size * 1000; x - több másodperces késleltetés
Amíg @Ticks> = $ Q
Tekintsük mindegyik mechanizmus hálózati meghajtók külön-külön. Kezdjük a Windows XP, mert ahol a leginkább egyértelmű és egyszerű.
Átnevezése leírásai hálózati meghajtók Windows XP
csatolási pont hálózati meghajtók szervezik a következő módon: a HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerMountPoints2 álmappájában hálózati meghajtókat alfejezetek amelyek neve szerint szervezik az elvet: „## szerver neve # mappa nevét, amelyhez közös podpapka1 # #. # PodpapkaX”. Minden ilyen almappák 3 kötelező paraméter, a negyedik - _LabelFromReg is létre kell hozni (lásd 3. ábra ..).
3. ábra részlete az adatbázist, amely leírja a csatolási pont a hálózati meghajtók (Windows XP)
A név módosításához egy hálózati meghajtót a mappában „My Computer”, hogy módosítsa az értéket egy string változó _LabelFromReg.
Meghatározni egy változó $ key_path kiszámításához szükséges a mappa nevét, UNC-útvonal: meg kell cserélni a „” szimbólum a „#”:
Itt az ideje, hogy kiemelje ezt a kérdést a programozás. Tehát, megnéztük az átalakulás csak egy karakter, de a kifejezés áll, egy sor karakterek kell következetesen átalakítani:
A $ c = 1 Len ($ keyw_s)
A példában az átmenetet a két szimbólum használatával Cycle For ... Next kombinációja funkciók balra és jobbra. Végül, a változó $ szimbólum egy hexadecimális szám (HEX).
Most kell fogadni különálló első és második szimbólumok az egyes HEX-szám és az első karakterrel esetben, ha az ASCII kódja nagyobb mint 128, átalakítani (lásd. 3. táblázat). Az első karakter, és a második karaktert meghatározása a következő:
Mi jár a végrehajtását az algoritmus átalakítására az első karakter hexadecimális szám. Célszerű egy olyan rendszer alkalmazása a zászlók és kézi válasszon ... ügyben.
Itt egy példa az átalakulás az első betű a kifejezést - „C”. A korábban megadott, ezt a szimbólumot megfelel a hexadecimális érték D1, kezdve a 2. táblázatban, a D át kell alakítani a két, és magát a számot a 21:
Ebben az esetben csak utasítás által használt válasszon ... ügyben. A zászló rendszert használnak, hogy meghatározzák a konverziós algoritmus, attól függően, hogy a karakter HEX kód:
Meghatározása a 2. bájtos karakterek végre az ASCII karakteres kódot:
Mivel a leírás a vonal csak 32 karaktert, és csak akkor frissítjük rögzíteni egy részét, annak érdekében, hogy elkerüljék a lemondás a „farok” kell állítani az összes többi szimbólum:
A $ r = 1 és 32 közötti-len ($ keyw_s)
Végül az utolsó érintés - a felvétel a megfelelő értékeket a rendszerleíró adatbázisban:
WriteValue ($ keyw_path + "" + $ ds_s + "\ _ LabelFromReg", "cache", $ t "REG_BINARY")
WriteValue ($ keyw_path + "" + $ ds_s + "\ _ LabelFromReg", "verzió", $ r_w1 + 1 "REG_DWORD")
WriteValue ($ keyw_path + "" + $ ds_s + "\ _ GVI", "verzió", $ r_w2 + 1 "REG_DWORD")
Ebben a példában azt végrehajtani kapacitású változat szakaszban _LabelFromReg és _GVI.
Most meg kell tanítani a forgatókönyvet, hogy meghatározzák, milyen operációs rendszer fut, és lesz kész egy leírást hálózati meghajtók.
Típusú rendszer különösen KIXTart alkalmazásával határoztuk @PRODUCTTYPE makró.
4. táblázat listája értékek visszatértek makró @ProductType