Invoke-PolicyEvaluation

Richiama una o più SQL Server valutazioni dei criteri di gestione basate su criteri.

Sintassi

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

Descrizione

Il cmdlet Invoke-PolicyEvaluation valuta uno o più criteri di gestione basati su criteri rispetto a un set di oggetti SQL Server denominati nel set di destinazione.

I criteri specificano i valori consentiti per varie proprietà associate agli oggetti di SQL Server, ad esempio la definizione di standard del sito per le regole di confronto o i nomi del database.

Quando questo cmdlet viene eseguito in modalità di controllo, segnala se le proprietà correnti degli oggetti nel set di destinazione sono conformi alle regole nelle definizioni dei criteri.

Gli oggetti nel set di destinazioni non vengono riconfigurati se le relative proprietà non sono conformi ai criteri.

In modalità di configurazione, questo cmdlet riconfigura tutti gli oggetti nel set di destinazione che non sono conformi alle definizioni dei criteri.

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

Esempio

Esempio 1: Valutare un criterio nell'istanza predefinita del computer

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"

Questo comando valuta un criterio nell'istanza predefinita del computer specificato. Il criterio viene letto da un file XML e la connessione viene autenticata tramite l'autenticazione di Windows.

Esempio 2: Valutare i criteri dai file 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"

Questo comando legge due criteri da file XML in una cartella e quindi li passa a Invoke-PolicyEvaluation usando l'operatore della pipeline.

Esempio 3: Valutare i criteri e formattare l'output in base allo schema 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

Questo comando valuta un criterio e formatta l'output usando lo schema SML-IF (Services Modeling Language Interchange Format). L'output viene reindirizzato a un file.

Esempio 4: Valutare un set filtrato di criteri

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'

Il primo comando imposta il percorso corrente su un archivio criteri SQL Server.

Il secondo comando usa Get-ChildItem per leggere tutti i criteri e quindi usa Where-Object per filtrare l'elenco per i criteri con la proprietà PolicyCategory impostata su "Microsoft Best Practices: Maintenance".

L'output viene inviato a Invoke-PolicyEvaluation usando l'operatore della pipeline.

Esempio 5: Valutare i criteri dai file XML usando un oggetto 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

Il primo comando imposta il percorso corrente su una cartella locale contenente le evaulazioni dei criteri nei file XML.

Il secondo comando usa New-Object per creare un oggetto SqlStoreConnection.

Il terzo comando valuta i criteri da un file XML sul server definito dall'oggetto SqlStoreConnection.

Esempio 6: Valutare i criteri usando un assembly caricato 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

Il primo comando imposta il percorso della cartella corrente.

Il secondo comando carica un'istanza dell'assembly SQL Server Analysis Services.

Il terzo comando crea un oggetto Microsoft.AnalysisServices.

Il quarto comando usa il nuovo oggetto AnalysisServices per aprire una connessione all'istanza del server predefinita nel computer locale.

Il quinto comando valuta i criteri di configurazione dell'area di superficie di Analysis Services.

Esempio 7: Valutare un set filtrato di criteri

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

Questo comando usa il parametro TargetExpression per specificare un'espressione di query che filtra i criteri di stato del database da valutare nel database di esempio AdventureWorks2014 ed esegue la valutazione.

Esempio 8: Valutare i criteri di configurazione dell'area di superficie di 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

Questo comando carica l'assembly SQL Server Reporting Services, crea una connessione all'istanza del server predefinita nel computer locale ed esegue i criteri di configurazione dell'area di Reporting Services.

Parametri

-AdHocPolicyEvaluationMode

Specifica la modalità di valutazione dei criteri adhoc. I valori validi sono:

  • Verifica. Segnalare lo stato di conformità del set di destinazione usando le credenziali dell'account di accesso e senza riconfigurare gli oggetti.
  • CheckSqlScriptAsProxy. Eseguire un report di controllo usando le credenziali dell'account proxy ##MS_PolicyTSQLExecutionLogin##.
  • Configura. Riconfigurare gli oggetti set di destinazione che non sono conformi ai criteri e segnalare lo stato risultante. Questo cmdlet riconfigura solo le proprietà impostate e deterministiche.
Type:AdHocPolicyEvaluationMode
Accepted values:Check, Configure, CheckSqlScriptAsProxy
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OutputXml

Indica che questo cmdlet produce il report in formato XML usando lo schema SML-IF (Service Modeling Language Interchange Format).

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Policy

Specifica uno o più criteri da valutare.

I criteri possono essere archiviati in un'istanza del motore di database SQL Server o come file XML esportati.

Per i criteri archiviati in un'istanza del motore di database, usare un percorso basato sulla cartella SQLSERVER:\SQLPolicy per specificare il percorso dei criteri.

Per i criteri archiviati come file XML, utilizzare un percorso del file system per specificare il percorso dei criteri.

Questo parametro può accettare una stringa che specifica i nomi di uno o più criteri da valutare.

Se nella stringa viene specificato solo un file o un nome di criterio, questo cmdlet usa il percorso corrente.

Per i criteri archiviati in un'istanza del motore di database, usare il nome dei criteri, ad esempio "Stato database" o "SQLSERVER:\SQLPolicy\MyComputer\DEFAULT\Policies\Database Status". Per i criteri esportati come file XML, usare il nome del file, ad esempio "Database Status.xml" o "C:\MyPolicyFolder\Database Status.xml".

Questo parametro può accettare un set di oggetti FileInfo, ad esempio l'output di Get-ChildItem eseguito su una cartella che contiene criteri XML esportati.

Questo parametro può anche accettare un set di oggetti Policy, ad esempio l'output di Get-ChildItem eseguito su un percorso SQLSERVER:\SQLPolicy.

Type:PSObject
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-TargetExpression

Specifica una query che restituisce l'elenco di oggetti che definiscono il set di destinazione.

Le query vengono specificate come stringa i cui nodi sono separati dal carattere '/'.

Ogni nodo è nel formato ObjectType[Filter].

ObjectType è uno degli oggetti nel modello a oggetti SMO (SQL Server Management Objects) e Filter è un'espressione che filtra per oggetti specifici in tale nodo. I nodi devono seguire la gerarchia degli oggetti SMO. Ad esempio, l'espressione di query seguente restituisce il database di esempio AdventureWorks:

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

Se targetExpression è specificato, non specificare TargetObject.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TargetObjects

Specifica il set di oggetti SQL Server su cui viene valutato il criterio. Per connettersi a un'istanza di SQL Server analysis services, specificare un oggetto Microsoft.AnalysisServices.Server per TargetObject.

Se TargetObject è specificato, non specificare TargetExpression.

Type:PSObject[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-TargetServerName

Specifica l'istanza del motore di database che contiene il set di destinazione.

È possibile specificare una variabile che contiene un oggetto Microsoft.SqlServer.Management.Sfc.Sdk.SQLStoreConnection.

È anche possibile specificare una stringa conforme ai formati usati nella proprietà ConnectionString della classe System.Data.SqlClient.SqlConnection (v21 del modulo) o alla classe Microsoft.Data.SqlClient.SqlConnection (v22+ del modulo) in .Net.

Queste includono stringhe come quelle create usando System.Data.SqlClient.SqlConnectionStringBuilder o Microsoft.Data.SqlClient.SqlConnectionStringBuilder.

Per impostazione predefinita, questo cmdlet si connette usando l'autenticazione di Windows.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Input

System.Management.Automation.PSObject