Поделиться через


Invoke-PolicyEvaluation

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

Синтаксис

Invoke-PolicyEvaluation
      [-Policy] <PSObject>
      [-AdHocPolicyEvaluationMode <AdHocPolicyEvaluationMode>]
      -TargetServerName <PSObject>
      [-TargetExpression <String>]
      [-OutputXml]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]
Invoke-PolicyEvaluation
      [-Policy] <PSObject>
      [-AdHocPolicyEvaluationMode <AdHocPolicyEvaluationMode>]
      -TargetObjects <PSObject[]>
      [-OutputXml]
      [-ProgressAction <ActionPreference>]
      [<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

Первая команда задает текущее расположение локальной папке, содержащей evaulations политики в 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. Оценка политики конфигурации поверхностной области служб Reporting Services

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

Задает режим оценки политики adhoc. Допустимые значения:

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

-OutputXml

Указывает, что этот командлет создает свой отчет в формате XML с помощью схемы формата обмена языком моделирования служб (SML-IF) .

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Policy

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

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

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

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

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

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

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

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

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

Тип:PSObject
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-ProgressAction

Определяет, как PowerShell реагирует на обновления хода выполнения, созданные скриптом, командлетом или поставщиком, например индикаторами хода выполнения, созданными командлетом Write-Progress. Командлет Write-Progress создает индикаторы хода выполнения, показывающие состояние команды.

Тип:ActionPreference
Aliases:proga
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-TargetExpression

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

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

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

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

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

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

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-TargetObjects

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

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

Тип:PSObject[]
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки: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.

Тип:PSObject
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

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

System.Management.Automation.PSObject