Invoke-PolicyEvaluation
Richiama una o più valutazioni dei criteri di gestione basate su criteri di SQL Server.
Sintassi
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>]
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.
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 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 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\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 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\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 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.
Tipo: | AdHocPolicyEvaluationMode |
Valori accettati: | Check, Configure, CheckSqlScriptAsProxy |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-OutputXml
Indica che questo cmdlet produce il report in formato XML usando lo schema Service Modeling Language Interchange Format (SML-IF).
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | PSObject |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-ProgressAction
Determina in che modo PowerShell risponde agli aggiornamenti dello stato generati da uno script, un cmdlet o un provider, ad esempio le barre di stato generate dal cmdlet Write-Progress. Il cmdlet Write-Progress crea barre di stato che mostrano lo stato di un comando.
Tipo: | ActionPreference |
Alias: | proga |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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:
[@Name='MyComputer']/Database[@Name='AdventureWorks']
Se si specifica TargetExpression, non specificare TargetObject.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | PSObject[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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 (v21 del modulo) o della 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 tramite l'autenticazione di Windows.
Tipo: | PSObject |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
System.Management.Automation.PSObject