Condividi tramite


Invoke-PolicyEvaluation

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

Sintassi

ConnectionProcessing

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

ObjectProcessing

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

Descrizione

Il cmdlet Invoke-PolicyEvaluation valuta uno o più criteri di gestione basati su criteri rispetto a un set di oggetti DI SQL Server denominato nel set di destinazione. I criteri specificano i valori consentiti per varie proprietà associate agli oggetti di SQL Server, ad esempio la definizione degli standard del sito per i nomi di database o le regole di confronto. Quando questo cmdlet viene eseguito in modalità check, segnala se le proprietà correnti degli oggetti nel set di destinazione sono conformi alle regole nelle definizioni dei criteri. Gli oggetti nel set di destinazione 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.

Esempio

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

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"

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\130\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 pipeline.

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

Questo comando valuta un criterio e formatta l'output usando lo schema Services Modeling Language Interchange Format (SML-IF). 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 di 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 pipeline.

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

Il primo comando imposta il percorso corrente su una cartella locale che contiene evasori 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 rispetto al 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\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

Il primo comando imposta il percorso della cartella corrente. Il secondo comando carica un'istanza dell'assembly di 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 attacco 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 rispetto al database di esempio AdventureWorks2014 ed esegue la valutazione.

Esempio 8: Valutare i criteri di configurazione della superficie di attacco 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 di SQL Server Reporting Services, crea una connessione all'istanza del server predefinita nel computer locale ed esegue i criteri di configurazione della superficie di attacco di Reporting Services.

Parametri

-AdHocPolicyEvaluationMode

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

  • Assegno. Segnalare lo stato di conformità del set di destinazione usando le credenziali dell'account di accesso e senza riconfigurare alcun oggetto.
  • CheckSqlScriptAsProxy. Eseguire un report check usando le credenziali dell'account proxy ##MS_PolicyTSQLExecutionLogin### .
  • Configurare. Riconfigurare gli oggetti del set di destinazione che non sono conformi ai criteri e segnalare lo stato risultante. Questo cmdlet riconfigura solo le proprietà che sono impostabili e deterministiche.

Proprietà dei parametri

Tipo:AdHocPolicyEvaluationMode
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-OutputXml

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

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Policy

Specifica uno o più criteri da valutare. I criteri possono essere archiviati in un'istanza del motore di database di 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, usare 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 criteri, questo cmdlet usa il percorso corrente. Per i criteri archiviati in un'istanza del motore di database, usare il nome del criterio, 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 contenente 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.

Proprietà dei parametri

Tipo:PSObject
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:1
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-TargetExpression

Specifica una query che restituisce l'elenco di oggetti che definiscono il set di destinazione. Le query vengono specificate come stringa con nodi 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: Server\[@Name='MyComputer'\]/Database\[@Name='AdventureWorks'\]

Se si specifica TargetExpression , non specificare TargetObject.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ConnectionProcessing
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-TargetObjects

Specifica il set di oggetti di SQL Server in base ai quali vengono valutati i criteri. Per connettersi a un'istanza di SQL Server Analysis Services, specificare un oggetto Microsoft.AnalysisServices.Server per TargetObject.

Se targetObject è specificato, non specificare TargetExpression.

Proprietà dei parametri

Tipo:

PSObject[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ObjectProcessing
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-TargetServerName

Specifica l'istanza del motore di database che contiene il set di destinazione. È possibile specificare una variabile contenente un oggetto Microsoft.SqlServer.Management.Sfc.Sdk.SQLStoreConnection . È anche possibile specificare una stringa conforme ai formati utilizzati nella proprietà ConnectionString della classe System.Data.SqlClient.SQLConnection . Queste includono stringhe come quelle create usando la classe System.Data.SqlClient.SqlConnectionStringBuilder . Per impostazione predefinita, questo cmdlet si connette tramite l'autenticazione di Windows.

Proprietà dei parametri

Tipo:PSObject
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ConnectionProcessing
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.