Invoke-PolicyEvaluation

Вызывает один или несколько SQL Server оценки политик управления на основе политик.

Синтаксис

Invoke-PolicyEvaluation
      [-Policy] <PSObject>
      [-AdHocPolicyEvaluationMode <AdHocPolicyEvaluationMode>]
      -TargetServerName <PSObject>
      [-TargetExpression <String>]
      [-OutputXml]
      [<CommonParameters>]
Invoke-PolicyEvaluation
      [-Policy] <PSObject>
      [-AdHocPolicyEvaluationMode <AdHocPolicyEvaluationMode>]
      -TargetObjects <PSObject[]>
      [-OutputXml]
      [<CommonParameters>]

Описание

Командлет Invoke-PolicyEvaluation оценивает одну или несколько политик управления на основе политик по набору SQL Server объектов с именами в целевом наборе.

В политиках указываются допустимые значения для различных свойств, связанных с объектами SQL Server, такими как определение стандартов сайтов для имен баз данных и параметров сортировки.

Когда этот командлет выполняется в режиме проверка, он сообщает, соответствуют ли текущие свойства объектов в целевом наборе правилам в определениях политик.

Объекты в наборе целей повторно не настраиваются, если их свойства не соответствуют политикам.

В режиме настройки этот командлет перенастраивает все объекты в целевом наборе, которые не соответствуют определениям политики.

Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.

Примеры

Пример 1. Оценка политики на экземпляре компьютера по умолчанию

PS C:\> Set-Location "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Policies\DatabaseEngine\1033"
PS C:\> Invoke-PolicyEvaluation -Policy "Trustworthy Database.xml" -TargetServer "MYCOMPUTER"

Эта команда вычисляет политику на экземпляре по умолчанию указанного компьютера. Политика считывается из XML-файла, а подключение проверяется с помощью проверки подлинности Windows.

Пример 2. Оценка политик из XML-файлов

PS C:\> Set-Location "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Policies\DatabaseEngine\1033"
PS C:\> Get-ChildItem "Database Status.xml", "Trustworthy Database.xml" | Invoke-PolicyEvaluation -TargetServer "MYCOMPUTER"

Эта команда считывает две политики из XML-файлов в папке, а затем передает их Invoke-PolicyEvaluation с помощью оператора конвейера.

Пример 3. Оценка политик и форматирование выходных данных в соответствии со схемой SMLIF

PS C:\> Set-Location "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Policies\DatabaseEngine\1033"
PS C:\> Invoke-PolicyEvaluation -Policy "Database Status.xml" -TargetServer "MYCOMPUTER" -OutputXML > C:\MyReportFolder\MyReport.xml

Эта команда оценивает политику и форматирует выходные данные с помощью схемы SML-IF. Выходные данные перенаправляются в файл.

Пример 4. Оценка отфильтрованного набора политик

PS C:\> Set-Location "SQLSERVER:\SQLPolicy\MYCOMPUTER\DEFAULT\Policies"
PS C:\> Get-ChildItem | Where-Object { $_.PolicyCategory -eq "Microsoft Best Practices: Maintenance" } | Invoke-PolicyEvaluation -TargetServer 'MYCOMPUTER'

Первая команда задает текущий путь к хранилищу политик SQL Server.

Вторая команда использует Get-ChildItem для чтения всех политик, а затем использует Where-Object для фильтрации списка политик, для которых свойству PolicyCategory присвоено значение "Рекомендации Майкрософт: обслуживание".

Выходные данные отправляются в Invoke-PolicyEvaluation с помощью оператора конвейера.

Пример 5. Оценка политик из XML-файлов с помощью объекта SqlStoreConnection

PS C:\> Set-Location "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Policies\DatabaseEngine\1033"
PS C:\> $Connection = New-Object Microsoft.SqlServer.Management.Sdk.Sfc.SqlStoreConnection("server='MYCOMPUTER';Trusted_Connection=True")
PS C:\> Invoke-PolicyEvaluation -Policy "Database Status.xml" -TargetServer $Connection

Первая команда задает текущее расположение в локальную папку, содержащую сведения об уклонении от политики в XML-файлах.

Вторая команда использует New-Object для создания объекта SqlStoreConnection.

Третья команда оценивает политику из XML-файла для сервера, определенного объектом SqlStoreConnection.

Пример 6. Оценка политики с помощью сборки, загруженной вручную

PS C:\> Set-Location "C:\Program Files (x86)\Microsoft SQL Server\140\ tools\Policies\analysisservices\1033"
PS C:\> [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices")
PS C:\> $SSASsvr = New-Object Microsoft.AnalysisServices.Server
PS C:\> $SSASsvr.Connect("Data Source=localhost")
PS C:\> Invoke-PolicyEvaluation "Surface Area Configuration for Analysis Services Features.xml" -TargetObject $SSASsvr

Первая команда задает текущее расположение папки.

Вторая команда загружает экземпляр сборки SQL Server Analysis Services.

Третья команда создает объект Microsoft.AnalysisServices.

Четвертая команда использует новый объект AnalysisServices для открытия подключения к экземпляру сервера по умолчанию на локальном компьютере.

Пятая команда оценивает политику конфигурации контактной зоны служб Analysis Services.

Пример 7. Оценка отфильтрованного набора политик

PS C:\> Set-Location "C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Policies\DatabaseEngine\1033"
PS C:\> Invoke-PolicyEvaluation "Database Status.xml" -TargetServer "MYCOMPUTER" -TargetExpression "Server[@Name='MYCOMPUTER']/Database[@Name='AdventureWorks2014']"

Эта команда использует параметр TargetExpression, чтобы указать выражение запроса, которое фильтрует политику состояния базы данных, которая будет вычисляться по образцу базы данных AdventureWorks2014, и выполняет оценку.

Пример 8. Оценка политики конфигурации контактной зоны служб отчетов

PS C:\> Set-Location "C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Policies\ReportingServices\1033"
PS C:\> [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Dmf.Adapters")
PS C:\> $SSRSsvr = New-Object Microsoft.SqlServer.Management.Adapters.RSContainer('MyComputer')
PS C:\> Invoke-PolicyEvaluation -Policy "Surface Area Configuration for Reporting Services 2008 Features.xml" -TargetObject $SSRSsvr

Эта команда загружает сборку SQL Server Reporting Services, создает подключение к экземпляру сервера по умолчанию на локальном компьютере и запускает политику конфигурации Reporting Services контактной зоны.

Параметры

-AdHocPolicyEvaluationMode

Указывает режим оценки нерегламентированных политик. Допустимые значения:

  • Проверьте. Сообщите о состоянии соответствия целевого набора, используя учетные данные учетной записи входа и не перенастроив объекты.
  • CheckSqlScriptAsProxy. Запустите отчет проверка, используя учетные данные учетной записи-посредника ##MS_PolicyTSQLExecutionLogin##.
  • Настроить. Перенастройте объекты целевого набора, которые не соответствуют политикам, и сообщите о полученном состоянии. Этот командлет перенастраивает только настраиваемые и детерминированные свойства.
Type:AdHocPolicyEvaluationMode
Accepted values:Check, Configure, CheckSqlScriptAsProxy
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OutputXml

Указывает, что этот командлет создает отчет в формате XML с использованием схемы SML-IF.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Policy

Указывает одну или несколько политик для оценки.

Политики могут храниться в экземпляре ядра СУБД SQL Server или в виде экспортированных XML-файлов.

Для политик, хранящихся в экземпляре ядра СУБД, используйте путь, основанный на папке SQLSERVER:\SQLPolicy, чтобы указать расположение политик.

Если политики хранятся в XML-файлах, для указания местоположения политик используйте путь в файловой системе.

Этот параметр может принимать строку, указывающую имена одной или нескольких политик для оценки.

Если в строке указано только имя файла или политики, этот командлет использует текущий путь.

Для политик, хранящихся в экземпляре ядра СУБД, используйте имя политики, например "Состояние базы данных" или "SQLSERVER:\SQLPolicy\MyComputer\DEFAULT\Policies\Database Status". Для политик, экспортируемых в виде XML-файлов, используйте имя файла, например Database Status.xml или C:\MyPolicyFolder\Database Status.xml.

Этот параметр может принимать набор объектов FileInfo, например выходные данные Get-ChildItem выполнить в папке, содержащей экспортированные политики XML.

Этот параметр также может принимать набор объектов Политики, например выходные данные Get-ChildItem запуска по пути SQLSERVER:\SQLPolicy.

Type:PSObject
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-TargetExpression

Задает запрос, возвращающий список объектов, определяющих целевой набор.

Запросы указываются в виде строки, содержащей узлы, разделенные символом «/».

Каждый узел имеет формат ObjectType[Filter].

ObjectType является одним из объектов в объектной модели управляющих объектов SQL Server (SMO), а Filter представляет выражение, использующееся для фильтрации определенных объектов в этом узле. Узлы должны соответствовать иерархии объектов SMO. Например, следующее выражение запроса возвращает образец базы данных AdventureWorks:

[@Name='MyComputer']/Database[@Name='AdventureWorks']

Если указан параметр TargetExpression, не указывайте TargetObject.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TargetObjects

Задает набор объектов SQL Server, по которым вычисляется политика. Чтобы подключиться к экземпляру служб SQL Server analysis services, укажите объект Microsoft.AnalysisServices.Server для TargetObject.

Если параметр TargetObject указан, не указывайте TargetExpression.

Type:PSObject[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-TargetServerName

Указывает экземпляр ядра СУБД, содержащий целевой набор.

Можно указать переменную, содержащую объект Microsoft.SqlServer.Management.Sfc.Sdk.SQLStoreConnection.

Можно также указать строку, соответствующую форматам, используемым в свойстве ConnectionString класса System.Data.SqlClient.SqlConnection (версия 21 модуля) или Microsoft.Data.SqlClient.SqlConnection (версия 22+ модуля) в .Net.

К ним относятся строки, например созданные с помощью System.Data.SqlClient.SqlConnectionStringBuilder или Microsoft.Data.SqlClient.SqlConnectionStringBuilder.

По умолчанию этот командлет подключается с помощью проверки подлинности Windows.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

System.Management.Automation.PSObject