Compartilhar via


Invoke-PolicyEvaluation

Invoca uma ou mais avaliações de política de gerenciamento baseadas em políticas do SQL Server.

Sintaxe

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>]

Description

O cmdlet Invoke-PolicyEvaluation avalia uma ou mais políticas de gerenciamento baseadas em políticas em relação a um conjunto de objetos do SQL Server nomeados no conjunto de destino.

As políticas especificam os valores permitidos para várias propriedades associadas a objetos do SQL Server, como estabelecer padrões de site para nomes de banco de dados ou ordenações.

Quando esse cmdlet é executado no modo de verificação, ele relata se as propriedades atuais dos objetos no conjunto de destino estão em conformidade com as regras nas definições de política.

Os objetos no conjunto de destino não serão reconfigurados se suas propriedades não estiverem em conformidade com as políticas.

No modo de configuração, esse cmdlet reconfigura todos os objetos no conjunto de destino que não estão em conformidade com as definições de política.

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

Exemplos

Exemplo 1: Avaliar uma política na instância padrão do computador

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"

Esse comando avalia uma política na instância padrão do computador especificado. A política é lida de um arquivo XML e a conexão é autenticada usando a Autenticação do Windows.

Exemplo 2: Avaliar políticas de arquivos 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"

Esse comando lê duas políticas de arquivos XML em uma pasta e as passa para Invoke-PolicyEvaluation usando o operador de pipeline.

Exemplo 3: Avaliar políticas e formatar a saída de acordo com o esquema 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

Este comando avalia uma política e formata a saída usando o esquema de Intercâmbio de Linguagem de Modelagem de Serviços (SML-IF). A saída é redirecionada para um arquivo.

Exemplo 4: Avaliar um conjunto filtrado de políticas

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'

O primeiro comando define o caminho atual para um repositório de políticas do SQL Server.

O segundo comando usa Get-ChildItem para ler todas as polícias e, em seguida, usa Where-Object para filtrar a lista para as políticas que têm sua propriedade PolicyCategory definida como "Práticas Recomendadas da Microsoft: Manutenção".

A saída é enviada para Invoke-PolicyEvaluation usando o operador de pipeline.

Exemplo 5: Avaliar políticas de arquivos XML usando um objeto 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

O primeiro comando define o local atual como uma pasta local que contém evaulações de política em arquivos XML.

O segundo comando usa New-Object para criar um objeto SqlStoreConnection.

O terceiro comando avalia a política de um arquivo XML em relação ao servidor definido pelo objeto SqlStoreConnection.

Exemplo 6: Avaliar a política usando um assembly carregado manualmente

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

O primeiro comando define o local da pasta atual.

O segundo comando carrega uma instância do assembly do SQL Server Analysis Services.

O terceiro comando cria um objeto Microsoft.AnalysisServices.

O quarto comando usa o novo objeto AnalysisServices para abrir uma conexão com a instância de servidor padrão no computador local.

O quinto comando avalia a política de configuração da área de superfície do Analysis Services.

Exemplo 7: Avaliar um conjunto filtrado de políticas

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']"

Esse comando usa o parâmetro TargetExpression para especificar uma expressão de consulta que filtra a política de status do banco de dados a ser avaliada em relação ao banco de dados de exemplo AdventureWorks2014 e executa a avaliação.

Exemplo 8: Avaliar a política de configuração da área de superfície do 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

Esse comando carrega o assembly do SQL Server Reporting Services, cria uma conexão com a instância do servidor padrão no computador local e executa a política de configuração da área de superfície do Reporting Services.

Parâmetros

-AdHocPolicyEvaluationMode

Especifica o modo de avaliação de política de adesivo. Os valores válidos são:

  • Verificar. Relate o status de conformidade do conjunto de destino usando as credenciais de sua conta de logon e sem reconfigurar nenhum objeto.
  • CheckSqlScriptAsProxy. Execute um relatório de verificação usando as credenciais da conta proxy ##MS_PolicyTSQLExecutionLogin###.
  • Configurar. Reconfigure os objetos do conjunto de destino que não estão em conformidade com as políticas e relate o status resultante. Esse cmdlet reconfigura apenas as propriedades que são configuráveis e determinísticas.
Tipo:AdHocPolicyEvaluationMode
Valores aceitos:Check, Configure, CheckSqlScriptAsProxy
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-OutputXml

Indica que esse cmdlet produz seu relatório no formato XML usando o esquema de Intercâmbio de Linguagem de Modelagem de Serviço (SML-IF).

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Policy

Especifica uma ou mais políticas a serem avaliadas.

As políticas podem ser armazenadas em uma instância do mecanismo de banco de dados do SQL Server ou como arquivos XML exportados.

Para políticas armazenadas em uma instância do mecanismo de banco de dados, use um caminho baseado na pasta SQLSERVER:\SQLPolicy para especificar o local das polícias.

Para políticas armazenadas como arquivos XML, use um caminho do sistema de arquivos para especificar o local das políticas.

Esse parâmetro pode usar uma cadeia de caracteres que especifica os nomes de uma ou mais políticas a serem avaliadas.

Se apenas um arquivo ou nome de política for especificado na cadeia de caracteres, esse cmdlet usará o caminho atual.

Para políticas armazenadas em uma instância do mecanismo de banco de dados, use o nome da política, como "Status do Banco de Dados" ou "SQLSERVER:\SQLPolicy\MyComputer\DEFAULT\Policies\Database Status". Para políticas exportadas como arquivos XML, use o nome do arquivo, como "Status.xmlde banco de dados" ou "C:\MyPolicyFolder\Database Status.xml".

Esse parâmetro pode levar um conjunto de objetos FileInfo, como a saída de Get-ChildItem executado em uma pasta que contém políticas XML exportadas.

Esse parâmetro também pode usar um conjunto de objetos policy, como a saída de Get-ChildItem executar em um caminho SQLSERVER:\SQLPolicy.

Tipo:PSObject
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-ProgressAction

Determina como o PowerShell responde às atualizações de progresso geradas por um script, cmdlet ou provedor, como as barras de progresso geradas pelo cmdlet Write-Progress. O cmdlet Write-Progress cria barras de progresso que mostram o status de um comando.

Tipo:ActionPreference
Aliases:proga
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-TargetExpression

Especifica uma consulta que retorna a lista de objetos que definem o conjunto de destino.

As consultas são especificadas como uma cadeia de caracteres que tem nós separados pelo caractere '/'.

Cada nó está no formato ObjectType[Filter].

ObjectType é um dos objetos no modelo de objeto SMO (SQL Server Management Objects) e Filter é uma expressão que filtra objetos específicos nesse nó. Os nós devem seguir a hierarquia dos objetos SMO. Por exemplo, a seguinte expressão de consulta retorna o banco de dados de exemplo adventureworks:

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

Se TargetExpression for especificado, não especifique TargetObject.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-TargetObjects

Especifica o conjunto de objetos do SQL Server no qual a política é avaliada. Para se conectar a uma instância dos serviços de análise do SQL Server, especifique um objeto Microsoft.AnalysisServices.Server para TargetObject.

Se TargetObject for especificado, não especifique TargetExpression.

Tipo:PSObject[]
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-TargetServerName

Especifica a instância do mecanismo de banco de dados que contém o conjunto de destino.

Você pode especificar uma variável que contém um objeto Microsoft.SqlServer.Management.Sfc.Sdk.SQLStoreConnection.

Você também pode especificar uma cadeia de caracteres que esteja em conformidade com os formatos usados na propriedade ConnectionString da classe System.Data.SqlClient.SqlConnection (v21 do módulo) ou da classe Microsoft.Data.SqlClient.SqlConnection (v22+ do módulo) no .Net.

Elas incluem cadeias de caracteres, como as criadas usando System.Data.SqlClient.SqlConnectionStringBuilder ou Microsoft.Data.SqlClient.SqlConnectionStringBuilder.

Por padrão, esse cmdlet se conecta usando a Autenticação do Windows.

Tipo:PSObject
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

System.Management.Automation.PSObject