Слайд 2Работа с SQL Server
WMI (Windows Management Instrumentation)
.NET (Microsoft .NET Framework)
SMO (Server Management

Objects)
SQL Server PowerShell Provider
Набор командлетов SQL Server
SQLPSX (SQL Server PowerShell Extensions)
Слайд 3WMI Provider for SQL Server 2008
WMI Provider for Configuration Management (Поставщик WMI

для управления конфигурацией)
Управление службами SQL Server (весь функционал SQL Server Configuration Manager )
Управление сетевой конфигурацией SQL Server (серверными и клиентскими сетевыми библиотеками, настройками сетевых протоколов и т. п.), в том числе и на удалённом сервере(!).
WMI Provider for Server Events (Поставщик WMI для событий сервера)
события DDL (Data Definition Language — язык определения данных) — это события, которые связаны с созданием, удалением или изменением объектов на уровне сервера или на уровне базы данных;
события трассировки — это те события, информацию о которых можно получить при помощи SQL Server Profiler.
Слайд 4WMI Provider for Configuration Management
Пространство имён
root\Microsoft\SqlServer\ComputerManagement10 for SQL Server 2008
root\Microsoft\SqlServer\ComputerManagement for SQL

Server 2005
Список классов
Get-WmiObject -namespace root\Microsoft\SqlServer\ComputerManagement10
–list | Where-Object {-not ($_.Name -like '__*')}
Remote computer
Get-WmiObject –computerName MyServerDB -namespace root\Microsoft\SqlServer\ComputerManagement10
–list | Where-Object {-not ($_.Name -like '__*')}
Слайд 5WMI Provider for Server Events
Пространство имён
root\Microsoft\SqlServer\ServerEvents\instancename
Инстанс по умолчанию: root\Microsoft\SqlServer\ServerEvents\MSSQLSERVER
Именованный инстанс INSTANCE1: root\Microsoft\SqlServer\ServerEvents\INSTANCE1
Инстанс

по умолчанию на удалённом серврере MyServerDB
\\MyServerDB\root\Microsoft\SqlServer\ServerEvents\MSSQLSERVER
Слайд 7.NET Framework
Windows PowerShell построен на базе Microsoft .NET Framework и интегрирован с

ним
Пример:
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=katmai;Database=master;Integrated Security=True“
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = "Select @@version as SQLServerVersion“
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$DataSet.Tables[0]
Слайд 9SMO (Server Management Objects)
Объекты SMO SQL Server – это объекты, созданные для

управления Microsoft SQL Server программными средствами. Объекты SMO можно использовать для создания специализированных приложений управления SQL Server.
Пример:
$smovar = New-Object ('Microsoft.SqlServer.Management.Smo.Server') 'localhost'
$smovar.Version
$smovar.Edition
$smovar.LoginMode
Слайд 11SQL Server PowerShell Provider
Поставщик SQL Server для Windows PowerShell отображает иерархию объектов

SQL Server в виде путей, аналогичных путям файловой системы. Можно определить расположение объекта с помощью путей, а затем использовать методы, доступные в моделях объектов SMO, для выполнения действий с объектами.
"Диск" (drive) SQLSERVER позволяет управлять объектами
1) SQLSERVER:\SQL (Объекты базы данных, такие как таблицы, представления и хранимые процедуры)
2) SQLSERVER:\SQLPolicy (Объекты управления на основе политик, такие как политики и аспекты)
3) SQLSERVER:\SQLRegistration (Зарегистрированные объекты серверов, такие как группы серверов и зарегистрированные серверы, как они видятся в SQL Management Studio -> View -> Registered Servers)
4) SQLSERVER:\DataCollection (сбор данных по производительности)
Слайд 12SQL Server PowerShell Provider
Демонстрация

Слайд 13Набор командлетов SQL Server
Invoke-Sqlcmd
Командлет Invoke-Sqlcmd поддерживает выполнение сценариев sqlcmd или команд, которые

содержат инструкции Transact-SQL или XQuery. Он может принимать входные данные sqlcmd в виде символьного строкового входного параметра или имени открываемого файла сценария.
Invoke-PolicyEvaluation
Командлет Invoke-PolicyEvaluation сообщает, соответствует ли целевой набор объектов SQL Server условиям, определенным в схемах управления на основе политик. Кроме того, этот командлет можно использовать для повторного задания любых настраиваемых параметров в целевых объектах, которые не соответствуют условиям политики.
Слайд 15SQLPSX (SQL Server PowerShell Extensions)
Коллекция бесплатный командлетов, облегчающих жизнь администратору(http://sqlpsx.codeplex.com/)

Слайд 17Ссылки:
Общие сведения о SQL Server PowerShell
http://msdn.microsoft.com/ru-ru/library/cc281954.aspx
Официальный блог разработчиков PowerShell
http://blogs.msdn.com/powershell/
Мой блог
http://www.t-sql.ru
