Compartilhar via


Invoke-PolicyEvaluation

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

Sintaxe

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

Description

O cmdlet Invoke-PolicyEvaluation avalia uma ou mais políticas de gerenciamento baseadas em política em relação a um conjunto de objetos SQL Server nomeados no conjunto de destino. As políticas especificam os valores permitidos para diversas propriedades que estão associadas a objetos SQL Server, como estabelecer padrões do site para nomes ou ordenações de bancos de dados. Quando esse cmdlet é executado no modo marcar, 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 estão reconfiguradas se suas propriedades não forem compatíveis 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.

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\130\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\130\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 SML-IF

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

Esse comando avalia uma política e formata a saída usando o esquema SML-IF (Formato de Intercâmbio de Linguagem de Modelagem de Serviços). 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 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\130\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\130\ 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 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 o banco de dados status política seja 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 SQL Server Reporting Services, cria uma conexão com a instância de servidor padrão no computador local e executa a política de configuração da área de superfície Reporting Services.

Parâmetros

-AdHocPolicyEvaluationMode

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

  • Verifique. 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 marcar usando as credenciais da conta proxy ##MS_PolicyTSQLExecutionLogin#.
  • Configurar. Reconfigure os objetos de conjunto de destino que não estão em conformidade com as políticas e relate os status resultantes. Esse cmdlet reconfigura apenas as propriedades que são configuráveis e determinísticas.
Tipo:AdHocPolicyEvaluationMode
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 SML-IF (Formato de Intercâmbio de Linguagem de Modelagem de Serviço).

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 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 que estão 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.xml de banco de dados" ou "C:\MyPolicyFolder\Database Status.xml".

Esse parâmetro pode usar um conjunto de objetos FileInfo , como a saída de Get-ChildItem executada 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 executada em um caminho SQLSERVER:\SQLPolicy.

Tipo:PSObject
Cargo:1
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
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 que são separados pelo caractere '/'. Cada nó está no formato ObjectType[Filtro].

ObjectType é um dos objetos no modelo de objetos do 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: Server\[@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 SQL Server nos quais a política é avaliada. Para se conectar a uma instância do SQL Server analysis services, 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 . Elas incluem cadeias de caracteres como aquelas criadas usando a classe System.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