ПредишенСледващото

Свържете мрежови ресурси автоматично

Изборът на език за програмиране

Забележка: сценарий сте създали по-рано в VBScript, Jscript лесно може да бъде пренаписана за KIXtart. Всички примери в тази статия ще бъде представена в KIXTart език.

Източник на информация - файл или база данни?

Към картата успешно мрежа ресурс, потребителят трябва да знае името на мрежата за диска, който ще бъде свързан с този ресурс, както и по пътя UNC на свързаните към мрежата ресурси. Желателно е да има описание, да се коригира името на диска в "My Computer" папка. Естествено възниква въпросът - къде е най-доброто място за съхраняване на тази информация? Тя може да бъде в текстов файл, който се намира в директорията на Netlogon, или във всеки магазин, например, в Active Directory (наричан АД). Използвал съм и двете, и в крайна сметка изборът падна върху рекламата. Това е доста много причини да се движат на данни от текстов файл в рекламата, например, лесна поддръжка, намаляване на кода на програмата и така нататък. Г.

Принципа на работа на скрипта

За да се съхранява информацията в рекламата на стандартен обект свързан SharedFolder ресурс е бил използван, което включва информация за писмото, което свързва мрежа ресурс; UNC-пътека до мрежовите ресурси; описание на ресурса мрежа, която се появява в "My Computer" папка; име на група за сигурност, членовете на които ще бъдат свързани ресурс.

Ние описваме механизъм, който да се свърже един от мрежовите ресурси по примера на най-широката «Otdel1» Единичните папки. Нека папка има следния мрежовия път - «EsmiraldaWork $ Otdel1», свързан с кола "К" и описание на "файлове" (виж Фигура 1 ..). В АД по никакъв ОУ, например «дялове», създаване на обект «Share Folder» (вж. Фиг. 2). Във всяка друга ОУ, създаване на група за сигурност, чиито имена съвпадат дял URL мрежа след последната "точка". В този пример, група, съответстваща на свързания диск, трябва да се нарича «Otdel1». Членовете на тази група ще бъдат свързани с мрежов ресурс, при условие, че тя ще бъде добавена към раздела за сигурност «Otdel1» папката със съответните разрешения за достъп до папката. Ако искате да направите няколко различни нива на достъп, префикс може да се използва в името на групата.

Фигура 1. Пример на мрежово устройство се променя описанието в "My Computer" папка

Фигура 2. Свойства на обект споделена папка в Active Directory

Забележка: В случай, че ресурсът трябва да бъде достъпна за всички потребители на мрежата, на «потребителите на домейни» Трябва да добавите групата към подходящата група ресурс със съответните права.

Сценарият на картата мрежови устройства

Сценарият може да бъде разделен на няколко логически части:

  • определяне на списък с групи, които на текущия потребител;
  • връзка с рекламата и ценностите на четене съответните полета;
  • изключете всички преработени скрипт мрежови дискове;
  • Необходима връзка с мрежови устройства;
  • описание на настройка устройството на мрежата в "My Computer" папка.

Определяне на членство в съответната група на сигурността

Определяне членство в съответните групи за сигурност се извършва с помощта на вградена функция EnumGroup ():

До Len ($ Group) = 0

Списъкът на групи, които се връщат от тази функция (Група на променливата $), има следния шаблон: DOMAINGROUP. Както и в рекламна група съхраняват без префикс (в този случай представката е кратко име на домейн), списъка на получената група да конвертирате. Резултатът е препоръчително да са написани на една и съща променлива, т.е. ГРУПА:

Връзка към рекламата и четенето на съответните стойности на полетата

Свързване към АД осъществява чрез използване ADODB-съединение:

$ StrADSQuery = "Изберете ключови думи, име, описание, CN, uncname ОТ" + $ domain_ + "" КЪДЕ objectClass = 'обем "

$ ObjConnection.Open ( "Directory доставчик Актив")

Намери необходимите предмети с помощта на SQL-заявка. Както е посочено ObjectClass = "обем" като филтър:

"SELECT uname, ключови думи, описание, CN ОТ" + $ домейн + "" КЪДЕ objectClass = 'обем "

където $ домейн - името на текущия домейн, който се определя чрез четене глобален каталог RootDSE. За да я прочетете съвсем обикновен потребител. променлива $ Домейн има форма «DC = домейн, DC = ком":

$ Домейн = "LDAP: //" + $ rootDSE_.Get ( "defaultNamingContext")

поле за четене, съответстващо на тип данни "низ", както следва:

Ако типът на данните на масива:

За всеки $ Val_Element в $ Val_Array

полета са използвани в описанието скрипт и вида на данните, дадени в таблица 1 (виж. фиг. 2).

Таблица 1. Описание на полетата използва споделена папка обект

за всеки $ DS в $ DSS

използвате $ ds_s + ":" / изтриване / упорит

където променливата $ ds_s съдържа стойността на полето, описание - писмото на която е монтирана на диска. Чрез този механизъм, сценарият управлява само тези мрежови устройства, които се използват от системния администратор в АД.

Свързване на необходимите мрежови устройства

шофиране връзката е направена от алгоритъма:

Първо определя необходимостта да се свърже информацията за мрежово устройство, а именно писмото до което диск (описание областта) е монтиран; UNC пътека ресурс (UNCName поле); група, чиито членове са свързани към източник (област CN).

Читателят е вероятно там е естествен въпрос: защо се използва поле КН, когато името на групата се появява в ресурса на UNC пътека? Прочетете поле CN е от жизненоважно значение. Фактът, че ресурсът на мрежата може да бъде два вида: общи и лични. Ето два примера. В първия случай връзката се осъществява обмен папка публични данни, той се нарича «борса». Въз основа на тази папка, която има достъп, той нарича «борса», съответната група сигурност - «борса» и тъй като включва всички участници в тази група, а след това е член на тази група е групата на «Домейн Потребители». Във втория случай, ние трябва да се свържете домашната директория на всеки потребител. За да направите това, да създадете папка, например, «HomeDirs» и създаване на подпапки в него, съответният потребителски идентификатор. Ситуацията се е променила - мрежовия път до папката, не може да се използва, но има на полето CN - име на ресурс, където можете да запишете цялата необходима информация: името на потребителя и съответната група за сигурност (виж фигура 2 ..).

По този начин, след като се определят трите задължителни полета, за да разберете, ако потребителят към подходящата група за сигурност на ресурсите включва случай на положителен резултат от проверката, за да започне ресурс връзка на една от двете алгоритми. алгоритъм за подбор зависи от наличието в стойността на четене на данните за вход, CN.

Свързване на устройството се осъществява с командата употреба:

; масив елементи $ usergroup_name [] са група от които текущия потребител

за $ т = 0 до ubound ($ usergroup_name)

; критерий персонализация е членство

; в тези групи PersonalGroup1 ... 3

ако инстр (UCASE ($ group_b), UCASE ( "PersonalGroup1"))<>0 или инстр (UCASE ($ group_b), UCASE ( "PersonalGroup2"))<>0 или инстр (UCASE ($ group_b), UCASE ( "PersonalGroup3"))<>0

използване $ ds_s + ":" $ uncname

ако @ грешка = 5; Една грешка при достъп до ресурса

$ ERROR_MESSAGE = $ ERROR_MESSAGE + "Неуспешно свързване на устройството" + $ ds_s + "ресурс" + $ CN + CHR (13)

използване $ ds_s + ":" $ uncname

ако @ грешка = 5; Една грешка при достъп до ресурса

$ ERROR_MESSAGE = $ ERROR_MESSAGE + "Неуспешно свързване на устройството" + $ ds_s + "ресурс" + $ CN + CHR (13)

Корекция задвижващи описания в "My Computer" папка

Механизъм преименуване на мрежово устройство в "My Computer" папка, най-добре е да се започне след приключване на процеса на свързване на мрежата си кара. Читателят може да бъде логичен въпрос: "Защо искаш?". Има няколко причини. Ето някои от тях: Представете си, че имате дълъг път мрежа - буквите диск не са видими. Съгласен съм, че това е неудобно. На второ място, потребителят трябва да знае в определени ситуации, в които се намира на ресурса. Трето, дори ако потребителят не чете UNC-пътеки до дискове, както и имената на техните нормални, "моята единица файлове" или "Моите проекти". Той веднага става ясно какво е предназначен диск. Повярвайте ми, не всички потребители са в съответствие с понятието "потребител на енергия." Това се дължи на факта, че връзката с кола отнема време, което зависи от местоположението на работното място, натоварването на сървъра и други фактори. Точно да се изчисли не му е възможно, така че да се ускори изпълнението на сценария е по-добре да се разделят на блоковете, за да свържете устройства и промените описанието функция чрез забавяне. Функцията е базирана на интервал от време изчисление с помощта на новите макро @Ticks, което връща броя милисекунди, тъй като багажника определят времева разлика - по време на споменатия интервал от време, закъснения, се извършва на цикъла:

$ Q = @Ticks + $ delay_size * 1000; х - брой на забавяне секунди

До @Ticks> = $ Q

Помислете за всеки механизъм за карта мрежови устройства отделно. Нека започнем с Windows XP, тъй като къде е най-ясен и прост.

Преименуването на описания на мрежови устройства за Windows XP

точка на монтиране мрежови устройства са организирани по следния начин: в HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerMountPoints2 подпапка за мрежови устройства са подраздели с имена, които се организират в съответствие с принципа: "## име на сървъра # име на папката, в която сподели podpapka1 #. # PodpapkaX ". Във всяка от тези папки са 3 задължителни параметри, четвъртата - _LabelFromReg също трябва да бъдат създадени (виж Фигура 3 ..).

Фигура 3. Подробности на системния регистър, в който се описва точката на монтиране на мрежови устройства (Windows XP)

За да промените името на мрежово устройство в папката "My Computer", за да се промени стойността на низ променлива _LabelFromReg.

За да дефинирате променлива KEY_PATH $ необходима за изчисляване на имената на папките, UNC пътека: това е необходимо да се замени със символа "" на "#":

Време е да се подчертае този въпрос от гледна точка на програмирането. Така че, ние погледна трансформацията на само един герой, но изразът се състои от набор от символи, които трябва постоянно да конвертирате:

За $ с = 1 до Len ($ keyw_s)

В примера на прехода от символ на символ с помощта на цикъл, за ... Напред и комбинации от функции, наляво и надясно. В крайна сметка, символ на променливата $ е шестнадесетично число (HEX).

Сега трябва да получат отделни първа и втора символи на всеки HEX-номер и с първия случай характер, ако кодът на ASCII е по-голяма от 128, за да конвертирате (вж. Таблица 3). Първият знак, а вторият знак се определя, както следва:

Ние се пристъпи към изпълнението на алгоритъма на преобразуване на първото число характер шестнадесетичен. Препоръчително е да се използва система от знамена и ръчно, изберете ... случай.

Ето един пример на трансформация на първата буква на експресията - "С". Както е дефиниран преди, този символ съответства на D1 в шестнадесетична стойност, като се излиза от Таблица 2, D трябва да се трансформира в две, и се броят в 21:

В този случай, се използва само от инструкцията, изберете ... случай. Система за флаг се използва за определяне на алгоритъма преобразуване, в зависимост от характера HEX-код:

Определяне на 2-ри битови символи се извършва на кода на ASCII символа:

От описанието на линията може да има само 32 знака и се актуализира само запише част, за да се избегне изоставянето на "тура", трябва да се нулира за всички други символи:

За $ г = 1 до 32-лен ($ keyw_s)

И накрая, последен щрих - записване на съответните стойности в системния регистър:

WriteValue ($ keyw_path + "" + $ ds_s + "\ _ LabelFromReg", "Кеш", $ т "Reg_binary")

WriteValue ($ keyw_path + "" + $ ds_s + "\ _ LabelFromReg", "Версия", $ r_w1 + 1 ", REG_DWORD")

WriteValue ($ keyw_path + "" + $ ds_s + "\ _ GVI", "Версия", $ r_w2 + 1 ", REG_DWORD")

В този пример, той извършва версия на капацитет в секции _LabelFromReg и _GVI.

Сега ние трябва да се учим на скрипта да се определи каква операционна система се работи, и ще бъде завършен с описание на мрежови устройства.

Тип система в частност KIXTart определя чрез използване @PRODUCTTYPE макро.

Таблица 4. Списък на ценности върна макро @ProductType

Свързани статии

Подкрепете проекта - споделете линка, благодаря!