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