Invoke-PolicyEvaluation
Ruft mindestens eine SQL Server richtlinienbasierte Verwaltungsrichtlinienauswertungen auf.
Syntax
Invoke-PolicyEvaluation
[-Policy] <PSObject>
[-AdHocPolicyEvaluationMode <AdHocPolicyEvaluationMode>]
-TargetServerName <PSObject>
[-TargetExpression <String>]
[-OutputXml]
[<CommonParameters>]
Invoke-PolicyEvaluation
[-Policy] <PSObject>
[-AdHocPolicyEvaluationMode <AdHocPolicyEvaluationMode>]
-TargetObjects <PSObject[]>
[-OutputXml]
[<CommonParameters>]
Beschreibung
Das Cmdlet Invoke-PolicyEvaluation wertet mindestens eine richtlinienbasierte Verwaltungsrichtlinie anhand einer Gruppe von SQL Server Objekten aus, die im Zielsatz benannt sind.
Die Richtlinien geben die zulässigen Werte für die verschiedenen Eigenschaften an, die den SQL Server-Objekten zugewiesen sind. Diese betreffen beispielsweise das Einrichten von Websitestandardwerten für Datenbanknamen oder -sortierungen.
Wenn dieses Cmdlet im Überprüfungsmodus ausgeführt wird, wird gemeldet, ob die aktuellen Eigenschaften der Objekte im Zielsatz den Regeln in den Richtliniendefinitionen entsprechen.
Die Objekte im Zielsatz werden nicht neu konfiguriert, wenn deren Eigenschaften den Richtlinien nicht entsprechen.
Im Konfigurationsmodus konfiguriert dieses Cmdlet alle Objekte im Zielsatz neu, die nicht den Richtliniendefinitionen entsprechen.
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
Beispiele
Beispiel 1: Auswerten einer Richtlinie auf dem Standard-instance des Computers
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"
Mit diesem Befehl wird eine Richtlinie auf dem Standard instance des angegebenen Computers ausgewertet. Die Richtlinie wird aus einer XML-Datei gelesen, und die Verbindung wird mithilfe der Windows-Authentifizierung authentifiziert.
Beispiel 2: Auswerten von Richtlinien aus XML-Dateien
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"
Dieser Befehl liest zwei Richtlinien aus XML-Dateien in einem Ordner und übergibt sie dann mithilfe des Pipelineoperators an Invoke-PolicyEvaluation.
Beispiel 3: Auswerten von Richtlinien und Formatieren der Ausgabe gemäß dem SMLIF-Schema
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
Dieser Befehl wertet eine Richtlinie aus und formatiert die Ausgabe mithilfe des SML-IF-Schemas (Services Modeling Language Interchange Format). Die Ausgabe wird an eine Datei umgeleitet.
Beispiel 4: Auswerten eines gefilterten Richtliniensatzes
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'
Der erste Befehl legt den aktuellen Pfad auf einen SQL Server Richtlinienspeicher fest.
Der zweite Befehl verwendet Get-ChildItem, um alle Richtlinien zu lesen, und verwendet dann Where-Object, um die Liste nach den Richtlinien zu filtern, für die die PolicyCategory-Eigenschaft auf "Microsoft Best Practices: Maintenance" festgelegt ist.
Die Ausgabe wird mithilfe des Pipelineoperators an Invoke-PolicyEvaluation gesendet.
Beispiel 5: Auswerten von Richtlinien aus XML-Dateien mithilfe eines SqlStoreConnection-Objekts
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
Der erste Befehl legt den aktuellen Speicherort auf einen lokalen Ordner fest, der Richtlinienumgehungen in XML-Dateien enthält.
Der zweite Befehl verwendet New-Object, um ein SqlStoreConnection-Objekt zu erstellen.
Der dritte Befehl wertet die Richtlinie aus einer XML-Datei für den vom SqlStoreConnection-Objekt definierten Server aus.
Beispiel 6: Bewerten einer Richtlinie mithilfe einer manuell geladenen Assembly
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
Der erste Befehl legt den aktuellen Ordnerspeicherort fest.
Der zweite Befehl lädt eine instance der SQL Server Analysis Services Assembly.
Mit dem dritten Befehl wird ein Microsoft.AnalysisServices-Objekt erstellt.
Der vierte Befehl verwendet das neue AnalysisServices-Objekt, um eine Verbindung mit dem Standardserver zu öffnen, der auf dem lokalen Computer instance.
Mit dem fünften Befehl wird die Analysis Services-Oberflächenkonfigurationsrichtlinie ausgewertet.
Beispiel 7: Auswerten eines gefilterten Richtliniensatzes
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']"
Dieser Befehl verwendet den TargetExpression-Parameter, um einen Abfrageausdruck anzugeben, der die Datenbank filtert, status Richtlinie anhand der AdventureWorks2014-Beispieldatenbank ausgewertet werden und die Auswertung durchführt.
Beispiel 8: Auswerten der Oberflächenkonfigurationsrichtlinie für 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
Dieser Befehl lädt die SQL Server Reporting Services assembly, erstellt eine Verbindung mit dem Standardserver instance auf dem lokalen Computer und führt die Reporting Services Surface Area Configuration Policy aus.
Parameter
-AdHocPolicyEvaluationMode
Gibt den Auswertungsmodus für die ADHOC-Richtlinie an. Gültige Werte sind:
- Prüfen. Melden Sie die Compliance-status des Zielsatzes mithilfe der Anmeldeinformationen Ihres Anmeldekontos und ohne Neukonfiguration von Objekten.
- CheckSqlScriptAsProxy. Führen Sie einen Überprüfungsbericht mit den Anmeldeinformationen des ##MS_PolicyTSQLExecutionLogin##-Proxykontos aus.
- Konfigurieren. Konfigurieren Sie die Zielsatzobjekte neu, die nicht den Richtlinien entsprechen, und melden Sie die resultierenden status. Dieses Cmdlet konfiguriert nur Eigenschaften neu, die festlegbar und deterministisch sind.
Type: | AdHocPolicyEvaluationMode |
Accepted values: | Check, Configure, CheckSqlScriptAsProxy |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutputXml
Gibt an, dass dieses Cmdlet seinen Bericht unter Verwendung des SML-IF-Schemas (Service Modeling Language Interchange Format) im XML-Format erstellt.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Policy
Gibt eine oder mehrere auszuwertende Richtlinien an.
Richtlinien können in einem instance der SQL Server-Datenbank-Engine oder als exportierte XML-Dateien gespeichert werden.
Verwenden Sie für Richtlinien, die in einer instance der Datenbank-Engine gespeichert sind, einen Pfad, der auf dem Ordner SQLSERVER:\SQLPolicy basiert, um den Speicherort der Polizeien anzugeben.
Verwenden Sie für Richtlinien, die als XML-Dateien gespeichert sind, einen Dateisystempfad, um den Speicherort der Richtlinien anzugeben.
Dieser Parameter kann eine Zeichenfolge annehmen, die die Namen einer oder mehrerer auszuwertenden Richtlinien angibt.
Wenn in der Zeichenfolge nur ein Datei- oder Richtlinienname angegeben ist, verwendet dieses Cmdlet den aktuellen Pfad.
Verwenden Sie für Richtlinien, die in einer instance der Datenbank-Engine gespeichert sind, den Richtliniennamen, z. B. "Datenbankstatus" oder "SQLSERVER:\SQLPolicy\MyComputer\DEFAULT\Policies\Database Status". Verwenden Sie für Richtlinien, die als XML-Dateien exportiert werden, den Namen der Datei, z. B. "Database Status.xml" oder "C:\MyPolicyFolder\Database Status.xml".
Dieser Parameter kann eine Reihe von FileInfo-Objekten übernehmen, z. B. die Ausgabe von Get-ChildItem für einen Ordner ausgeführt werden, der exportierte XML-Richtlinien enthält.
Dieser Parameter kann auch eine Reihe von Policy-Objekten annehmen, z. B. die Ausgabe von Get-ChildItem für einen SQLSERVER:\SQLPolicy-Pfad ausgeführt werden.
Type: | PSObject |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-TargetExpression
Gibt eine Abfrage an, die die Liste der Objekte zurückgibt, die den Zielsatz definieren.
Die Abfragen werden als Zeichenfolge angegeben, wobei die einzelnen Knoten durch das Zeichen "/" getrennt sind.
Jeder Knoten hat das Format ObjectType[Filter].
ObjectType ist eines der Objekte im SQL Server Management Objects (SMO)-Objektmodell, und Filter ist ein Ausdruck, durch den bestimmte Objekte auf diesem Knoten herausgefiltert werden. Die Knoten müssen der Hierarchie der SMO-Objekte entsprechen. Der folgende Abfrageausdruck gibt beispielsweise die AdventureWorks-Beispieldatenbank zurück:
[@Name='MyComputer']/Database[@Name='AdventureWorks']
Wenn TargetExpression angegeben ist, geben Sie targetObject nicht an.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TargetObjects
Gibt den Satz von SQL Server-Objekten an, anhand der die Richtlinie ausgewertet wird. Um eine Verbindung mit einem instance SQL Server Analysedienste herzustellen, geben Sie ein Microsoft.AnalysisServices.Server-Objekt für TargetObject an.
Wenn TargetObject angegeben ist, geben Sie targetExpression nicht an.
Type: | PSObject[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TargetServerName
Gibt die instance der Datenbank-Engine an, die den Zielsatz enthält.
Sie können eine Variable angeben, in der ein Microsoft.SqlServer.Management.Sfc.Sdk.SQLStoreConnection-Objekt enthalten ist.
Sie können auch eine Zeichenfolge angeben, die den Formaten entspricht, die in der ConnectionString-Eigenschaft der System.Data.SqlClient.SqlConnection-Klasse (v21 des Moduls) oder der Microsoft.Data.SqlClient.SqlConnection-Klasse (v22+ des Moduls) in .Net verwendet werden.
Dazu gehören Zeichenfolgen, z. B. solche, die mit System.Data.SqlClient.SqlConnectionStringBuilder oder microsoft.Data.SqlClient.SqlConnectionStringBuilder erstellt wurden.
Standardmäßig stellt dieses Cmdlet eine Verbindung mithilfe der Windows-Authentifizierung her.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
System.Management.Automation.PSObject