Извршавање МиСКЛ упита из ПоверСхелл-а

Једна од занимљивих карактеристика ПоверСхелл-а је могућност повезивања са базама података на удаљеним серверима, укључујући МиСКЛ. На тај начин, директно из ПоверСхелл конзоле, можете приступити МиСКЛ таблицама за приступ подацима. У овом ћемо чланку погледати примјере повезивања на МиСКЛ из Поверсхелл скрипте и наредбе за читање и писање података у таблице базе података. Да бисмо се повезали са МиСКЛ сервером, требат ће нам посебан МиСКЛ .НЕТ Цоннецтор који се може преузети директно са званичне МиСКЛ веб странице..

У тренутку писања текста, последња верзија конектора је Цоннецтор / Нет 6.9.8

Напомена. Није неопходно инсталирати пуну верзију МиСКЛ .НЕТ Цоннецтор, већ ће бити довољно да копирате датотеку библиотеке МиСкл.Дата.длл у систем.

Преузмите датотеку мискл-цоннецтор-нет-6.9.8.мси и инсталирајте МиСКЛ .НЕТ Цоннецтор у минималној конфигурацији.

На МиСКЛ серверу прво направите базу података са којом ћемо радити. Све операције на ДБМС послужитељу изводимо из наредбе МиСКЛ ЦЛИ (расправљано раније), али можете користити пхпмиадмин графику или било који други услужни програм.

Креирајте базу података адусера:

мискл> ЦРЕАТЕ ДАТАБАСЕ адусер;

На МиСКЛ серверу направите посебног корисника са правом на даљинско повезивање са базом података адусера. Овом кориснику ћемо дати право да се даљински повеже са базом података са ИП адресе 10.10.1.95

мискл> ПОДЕЛИТЕ СВЕ ПРИВИЛЕГЕ НА адусера. * ДО посх@'10.10.1.95 'ИДЕНТИФИКИРАНИ' П @ ссв0рд 'СА ГРАНТ ОПТИОН МАКС_КУЕРИЕС_ПЕР_ХОУР 0 МАКС_ЦОННЕЦТИОНС_ПЕР_ХОУР 0 МАКС_УПДАТЕС_ПЕР_ХОУР 0 МАКС__ПЕР_ХОУР 0 МАКС__ПЕР_ХОУР 0 МАКС__ПЕР_ХОУР 0 МАКС__КОНТУРЕ

Одаберите креирану базу података:

мискл> УСЕ адусер;

И направите једноставну табелу од 3 поља: идентификатор, корисничко име у АД-у и његова адреса е-поште.

мискл> ЦРЕАТЕ ТАБЛЕ усерс (ид ИНТ НИЈЕ НУЛЛ АУТО_ИНЦРЕМЕНТ, име ВАРЦХАР (100), емаил ВАРЦХАР (100), ПРИМАРИ КЕИ (ИД));

Вратићемо се на сервер са кога ћемо се повезати у МиСКЛ базу података. Претпоставимо да желимо да табела садржи сва имена и адресе е-поште АД корисника. Ове информације се могу добити помоћу цмдлет Гет-АДУсер..

Следећа Поверсхелл скрипта повезује се са базом података и уписује јој листу корисника и е-пошту примљене од АД-а.

Сет-ЕкецутионПолици РемотеСигнед
# повезујемо библиотеку МиСкл.Дата.длл
Адд-Типе -Патх 'Ц: \ Програмске датотеке (к86) \ МиСКЛ \ МиСКЛ Цоннецтор Нет 6.9.8 \ Скупштине \ в4.5 \ МиСкл.Дата.длл'
# ДБ стринг везе, сервер је име сервера, уид је мискл име корисника, пвд је лозинка, база података је назив базе података на серверу
$ Цоннецтион = [МиСкл.Дата.МиСклЦлиент.МиСклЦоннецтион] @ ЦоннецтионСтринг = 'сервер = 10.10.1.13; уид = посх; пвд = П @ ссв0рд; база података = адусер'
$ Цоннецтион.Опен ()
$ скл = Нев-Објецт МиСкл.Дата.МиСклЦлиент.МиСклЦомманд
$ скл.Цоннецтион = $ веза
# створите листу корисника са именима и адресама е-поште
Увоз-модул активни директориј
$ УсерЛист = Гет-АДУсер -СеарцхБасе 'ОУ = Корисници, ОУ = Лондон, ДЦ = контосо, ДЦ = ен' -филтер *-име власништва, ЕмаилАддресс
ФорЕацх ($ корисник у $ УсерЛист)

$ унаме = $ усер.Наме;
$ уемаил = $ усер.ЕмаилАддресс;
# упишите податке о сваком кориснику у таблицу базе података
$ скл.ЦоммандТект = "УМЕТИТЕ ИНТО кориснике (име, е-пошту) ВАЛУЕС ('$ унаме', '$ уемаил')"
$ скл.ЕкецутеНонКуери ()

$ Реадер.Цлосе ()
$ Цоннецтион.Цлосе ()

Следећа скрипта користи се за читање података претходно написаних у табели базе података и њихово приказивање у ПоверСхелл конзоли. Из базе података смо закључили вредности поља са корисничким именима и њиховим адресама поште:

Сет-ЕкецутионПолици РемотеСигнед
Адд-Типе -Патх 'Ц: \ Програмске датотеке (к86) \ МиСКЛ \ МиСКЛ Цоннецтор Нет 6.9.8 \ Скупштине \ в4.5 \ МиСкл.Дата.длл'
$ Цоннецтион = [МиСкл.Дата.МиСклЦлиент.МиСклЦоннецтион] @ ЦоннецтионСтринг = 'сервер = 10.10.1.13; уид = посх; пвд = П @ ссв0рд; база података = адусер'
$ Цоннецтион.Опен ()
$ МИСКЛЦомманд = Нови објекат МиСкл.Дата.МиСклЦлиент.МиСклЦомманд
$ МИСКЛДатаАдаптер = Нови објекат МиСкл.Дата.МиСклЦлиент.МиСклДатаАдаптер
$ МИСКЛДатаСет = Нови објектни систем.Дата.ДатаСет
$ МИСКЛЦомманд.Цоннецтион = $ веза
$ МИСКЛЦомманд.ЦоммандТект = 'СЕЛЕЦТ * од корисника'
$ МИСКЛДатаАдаптер.СелецтЦомманд = $ МИСКЛЦомманд
$ НумберОфДатаСетс = $ МИСКЛДатаАдаптер.Филл ($ МИСКЛДатаСет, "подаци")
фореацх ($ ДатаСет у $ МИСКЛДатаСет.таблес [0])

врите-хост "Корисник:" $ ДатаСет.наме "Емаил:" $ ДатаСет.емаил

$ Цоннецтион.Цлосе ()

У следећим ћемо чланцима размотрити пример коришћења МиСКЛ базе података за прикупљање и складиштење информација из евиденција догађаја Виндовс:

  • Праћење и снимање у базу података о избрисаним датотекама у директоријима заједничке мреже