![]() |
+7 (495) 229-0436 | ![]() |
shopadmin@itshop.ru | 119334, г. Москва, ул. Бардина, д. 4, корп. 3 | ![]() |
![]() |
![]() |
|
|
Сравнения списка объектов SQL Server в PowerShell на примере сравнения логинов на двух серверах15.12.2009 16:15
В данном примере я покажу как с помощью PowerShell можно сравнивать списки объектов на двух серверах на примере сравнения логинов: поиск одинаковых, поиск разницы. Для этого сначала выполним подключение к серверам. В данном примере первый сервер - локальный. К нему будем подключаться с использованием Windows аутентификации. #1. Загружаем SMO [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo ") / Out-Null #2. Подключаемся к серверу 1 (Windows аутентификация): $smoserver1 =new-object("Microsoft.SqlServer.Management.Smo.Server") "." #3. Подключаемся к Серверу 2 (аутентификация SQL Server): $smoserver2 =new-object("Microsoft.SqlServer.Management.Smo.Server") "IP - адрес \ имя сервера2" #Если аутентификация SQL Server, то значение FALSE, если Windows(по умолчанию) - TRUE $smoServer2.ConnectionContext.set_LoginSecure($FALSE) #Запрос ввода имени пользователя и пароля $LoginCredentials = Get-Credential #Устанавливаем свойства ConnectionContext $smoServer2.ConnectionContext.set_EncryptConnection($FALSE) #В конце поста я расскажу зачем в строке ниже убираем слеш из имени пользователя $smoServer2.ConnectionContext.set_Login($LoginCredentials.UserName -replace("\")) #4. Сравниваем логины compare-object -referenceobject $($smoserver1.logins) -differenceobject $($smoserver2.logins) -includeequal / where-object {$_.SideIndicator -eq "=="} /select-object InputObject #Командлет выводит логины, которые есть на сервере 2, но нет на сервере 1 compare-object -referenceobject $($smoserver1.logins) -differenceobject $($smoserver2.logins) / where-object {$_.SideIndicator -eq "=>"} /select-object InputObject #Командлет выводит логины, которые есть на сервере 1, но нет на сервере 2 compare-object -referenceobject $($smoserver1.logins) -differenceobject $($smoserver2.logins) / where-object {$_.SideIndicator -eq "<="} /select-object InputObject #Можно перенаправить вывод в файл compare-object -referenceobject $($smoserver1.logins) -differenceobject $($smoserver2.logins) -includeequal / where-object {$_.SideIndicator -eq "=="} /select-object InputObject > C:\Test.txt По тому же принципу можно сравнивать списки и других объектов сервера, например заданий. #Для того, чтобы сравнить список заданий на двух серверах, можно воспользоваться compare-object -referenceobject $($smoserver1.JobServer.Jobs) -differenceobject $($smoserver2. JobServer.Jobs) Для получения справки по командлету compare-object, в окне powershell введите: Get-help Compare-object -detailed Иерархия объектов SMO приведена в документации по адресу: http://msdn.microsoft.com/ru-ru/library/ms162209.aspx
Теперь о том, почему мы убираем слеш из введенного имени пользователя (...-replace("\")...). Командлет get-credential ждет ввода в формате Домен\Логин. В нашем примере мы используем его не для входа в домен, а для подключения к SQL Server и домен не вводим, поэтому, несмотря на то, что в окне запроса учетных данных я вводила логин "Inaumova", свойству UserName присвоилось значение "\Inaumova". Это показано на рисунках ниже. Поэтому слеш нужно удалить. Ссылки по теме |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
О нас |
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.
На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям. Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе. В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.
|
119334, г. Москва, ул. Бардина, д. 4, корп. 3 +7 (495) 229-0436 shopadmin@itshop.ru |
|
© ООО "Interface Ltd." Продаем программное обеспечение с 1990 года |