Microsoft робить все можливе, щоб PowerShell зробив вибір користувачів енергії та авторів автоматизації скрізь. Минули дні компіляції коду в .NET, щоб зробити те саме, тепер вам просто потрібні notepad.exe та google. Ми є великими шанувальниками цього в офісі, тим більше, що консоль управління Exchange 2007 НЕ включає все, що можна зробити в PowerShell. Microsoft навмисно не змогла реалізувати те, що робиться лише один раз за великий час, простіше розробити такий спосіб, який прямо вимагає його використання, якщо у вас є щось, що нагадує складне середовище.
Управління продуктами нового покоління Microsoft (Win7, Windows Server 2008, Exchange 2007/2010, SQL Server 2008) має дуже багаті гачки PowerShell. Як тільки віддалений Powershell (PowerShell 2.0 IIRC) буде розгорнуто з Server 2008 R2, він стане навіть БОЛЬШО корисним для авторів автоматизації.
Що ми зробили з цим:
- Створіть веб-сторінку, щоб делегувати певні завдання адміністратора, щоб допомогти користувачам служб. Веб-сторінка запускає команди, які виконуються в PowerShell. Що робить:
- Створюйте та видаляйте облікові записи користувачів, включаючи надання поштових скриньок Exchange та домашніх каталогів
- Розблокує заблоковані рахунки
- Створення / видалення груп
- Додавання та видалення користувачів із груп
- Переміщення користувачів між магазинами пошти
- Встановлення паролів
- Візьміть витяги з ERP-системи та щодня вносьте дані глобальної адресної книги в Active Directory.
- Вирішіть проблему LegacyExchangeDN, пов'язану з міграцією Exchange 2003 до міграції Exchange 2007. Довелося додати адресу X500 усім, хто раніше був на Exchange 2003. Досить короткий сценарій PowerShell виправив це.
- Створення сценаріїв "групових поштових скриньок" (спільних поштових скриньок в Exchange, де кілька користувачів мають доступ до поштової скриньки), інакше вручну обробляється через характер потрібних нам даних, перш ніж викинути їх. Це значно стандартизувало налаштування цих поштових скриньок.
- Створив сценарій, який пройшов через усі доменні машини, скинувши певний ключ реєстру та перезапустивши послугу. На це пішло 18 годин, але це було виконано.
Так, так, PowerShell буде з нами ще довгий час.
EDIT : Додавання зразка коду з моменту його запиту
$ list = import-csv ("groupusers.csv")
$ lastseengroup = $ list [0] .group
$ ADGroupPrefix = "grp.netware."
$ ADGroupSuffix = "{редактовано - у форматі, ou = групи, dc = домен, dc = домен, dc = домен}"
Список учасників Clear-Variable
Невідомі ясно-змінні користувачі
foreach ($ запис у $ list) {
if ($ ($ entry.group) -ne $ lastseengroup) {
echo "наткнувся на нову групу $ ($ entry.group), вчинивши зміни в $ lastseengroup"
$ newgroup = $ ADgroupPrefix + $ lastseengroup
$ newgroupdn = '"' +" cn = $ newgroup $ ADGroupSuffix "+" "'
відлуння "отримання DN за $ newgroup"
$ существуюча група = dsquery група domainroot -ім'я $ newgroup
if (($ існуюча група -ne $ null)) {
dsmod group $ newgroupdn -chmbr $ учасник
} else {
dsadd group $ newgroupdn -scope u -secgrp так -members $ memberlist -desc "Група, імпортована з eDirectory"
}
Список учасників Clear-Variable
}
$ User = get-user $ ($ entry.member) -ErrorAction SilentlyContinue
якщо ($ User.isvalid) {
$ UserDN = $ User.distinguishedname
$ memberlist = $ memberlist + '"' +" $ UserDN "+ '"'
} else {
$ unknownusers = $ unknownusers + $ ($ entry.member)
}
$ lastseengroup = $ ($ entry.group)
}
dsadd group "cn = $ ADGroupPrefix $ lastseengroup $ ADGroupSuffix" -scope u -secgrp так -members $ memberlist
Для цього потрібен файл CSV, створений за допомогою сценарію perl, і оновлює набір груп. Якщо група вже існує, вона замінює членство на вказане у файлі. Якщо групи не існує, вона створює її. Це одностороння синхронізація. Також ще не зовсім у виробництві, але близько.