В интернете нашел несколько статей про такую автоматизацию, но они подошли мне отчасти. Поскольку я поставил задачу со следующими условиями:
1.Делать Snapshot-ы Active Directory ежедневно (Make snapshots per day)
2.Удалять старые Snapshot-ы Active Directory, например, те, которые старше 30 дней.(Delete old snapshot per day)
По тому как создавать снимки Active Directory есть пару не плохих статеек:
http://itew.ru/2009/06/22/518
http://it-professional.at/?p=59
Всё это красиво но как это всё запихнуть в один исполняемый файл, проблема возникает сразу, как только вы попробуете одной командой схранить снапшот ndtsutil и сразу выйти(Утилита NTDSUTIL имеет многоуровневый интерфейс, поэтому команды надо набирать одну за другой), у меня полуилось это сделать так:
Script1(сохранение информации о snapshot-ах - "Active directory snapshots list all to file.bat"):
ntdsutil snapshot "list all">[Path]\snapshots.txt quit quit
результат команды:
ntdsutil: snapshots
napshot: list all
1: 2010/08/19:11:33 {f6910436-b92b-4b6d-b125-8a7b10493887}
2: C: {9f1b44cf-48ed-478c-9552-e0dcffd88210}
3: D: {d1147dde-3db4-4103-ad2e-3942bd6eb109}
4: 2010/08/19:11:33 {1fcd5908-81f2-430c-8610-2a67b3d10daa}
5: C: {1f55b3ed-428a-4d21-9dd4-d6c82c67d510}
6: D: {11ca5468-86c1-46d9-b606-e5f964ab3412}
7: 2010/08/19:11:33 {66d48540-e53d-481a-8f2b-825ade892b14}
8: C: {858e8405-443e-44f4-85e2-148bb3978868}
9: D: {a6e7aab0-e221-4b87-a296-386232618ab1}
10: 2010/08/19:11:34 {e6752416-0534-48a5-8c5e-ed469f63446a}
11: C: {25b607bb-9303-4f1b-9c1f-588bb02d1700}
12: D: {5d340d1a-852c-46c1-9386-ad55235abc21}
Сама автоматизация сводиться к трем файлам(у меня получилось, так, может у кого то будет более изящное решение - через один файл):
Script1(Executor_SnapshotProcessing.bat):
@SET FILENAME="[Path]\snapshots.txt"
@SET FILENAME2="[Path]\2_1_PS_script_snapshot_delete.ps1"
del %FILENAME%ntdsutil snapshot "list all">%FILENAME% quit quit
C:\Windows\System32\WindowsPowerShell\v1.0\Powershell.exe -executionpolicy unrestricted -file %FILENAME2%
ntdsutil snapshot "activate instance ntds" create quit quit
Script2(2_1_PS_script_snapshot_delete.ps1):
$fileNameSource="[Path]\snapshots.txt"
$fileNameTarget="[Path]\snapshots2.txt"
$fileNameBAT_DeleterSnapshot="[Path]\2_2_Active_directory_snapshot_delete.bat"
$a=get-content $fileNameSource select-string " 1: "$SnapShotID=$("$a".split(" "))[3]
&$fileNameBAT_DeleterSnapshot $SnapShotID
Script3(2_2_Active_directory_snapshot_delete.bat):
ntdsutil snapshot "delete %1" quit quit
Запускной файл Script1, результат команды:
Executor_SnapshotProcessing.bat
del "[Path]\snapshots.txt"
ntdsutil snapshot "list all" quit quit 1>"[Path]\snapshots.txt"
C:\Windows\System32\WindowsPowerShell\v1.0\Powershell.exe -executionpolicy unrestricted -file "[Path]\2_1_PS_script_snapshot_delete.ps1"
only insert string like: delete {eaa5ac99-bf3d-4145-85a8-3a65a7b75702}
ntdsutil snapshot "delete {f6910436-b92b-4b6d-b125-8a7b10493887}" quit quit
ntdsutil: snapshot
snapshot: delete {f6910436-b92b-4b6d-b125-8a7b10493887}
Snapshot {9f1b44cf-48ed-478c-9552-e0dcffd88210} deleted.
Snapshot {d1147dde-3db4-4103-ad2e-3942bd6eb109} deleted.
snapshot: quit
ntdsutil: quit
ntdsutil snapshot "activate instance ntds" create quit quit
ntdsutil: snapshot
snapshot: activate instance ntds
Active instance set to "ntds".
snapshot: create
Creating snapshot...
Snapshot set {a6c5dd08-a38f-47e1-b2c6-5eadf1f46c36} generated successfully.
snapshot: quit
ntdsutil: quit
Далле шедулим Script1 и всё - мы получили скрипт, который удаляет самый давний снапшот Active Directory и делает новый. Но мы не получили хранение тех самых 30 снопшотов ежедневных, которые мы хотим создавать - хранить и удалять через 30 дней.
Для этого нужно до шедулинга скрипта 1 просто напросто их создать. Для этих целей можно создать bat-файл и просто выполнить 30 раз или 30 команд в одном файле bat-файле:
ntdsutil snapshot "activate instance ntds" create quit quit
В PowerShell
помогла ссылка:
http://social.technet.microsoft.com/Forums/ru-RU/scrlangru/thread/14eeebc9-5227-4416-91c6-de730b7630ed
полезные ссылки по PowerShell:
http://sites.google.com/site/lebedevum/voprosy-i-otvety/windows-powershell/windows-powershell-i-komandnaa-stroka-windows
http://window.edu.ru/window_catalog/pdf2txt?p_id=31200&p_page=5
http://www.osp.ru/text/print/302/5560256.html
четверг, 19 августа 2010 г.
Автоматизация создания снапшотов Active Directory на Windows 2008 R2
Ярлыки:
Active Directory,
bat,
ntdsutil,
PowerShell,
snapshot,
Windows 2008 R2
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий