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