Ich schreibe ein Powershell-Skript, um die folgenden SQL Server-Zähler zu erfassen:
SQL Server: Speichermanager: Gesamter Serverspeicher (KB)
SQL Server: Speichermanager: Zielserverspeicher (KB)
Mein Computer verfügt über 3 Instanzen von SQL-Servern. Daher möchte ich, dass dieses Skript alle Zähler dynamisch erfasst und den Wert nur für 1 Beispiel meldet. Ich habe versucht, Folgendes zu schreiben:
Get-counter -List *SQL*Memory* | Select paths, counter | format-list # doesn't display full list
Get-counter -List *SQL*Memory* | Select paths, counter | where {_.counter -like "*server memory*"} |format-list # displays nothing
Schließlich möchte ich dies auf mehreren Servern mit -computername
Parametern ausführen und daher möchte ich, dass es dynamisch erfasst wird.
Kann mir bitte jemand helfen, herauszufinden, was fehlt? Das folgende Skript wird genau ausgeführt:
Function checkTransactionsPerSecond([string] $Hostname )
{
(Get-Counter -ListSet "*Databases").Counter | Where {$_ -like "*\Transactions/sec"} #this returns nothing
# $listofmetrics = (Get-Counter -ListSet "*Databases").Counter | Where {$_ -like "*\Transactions/sec"}
# $listofmetrics | Get-Counter
}
clear
foreach ($Hostname in Get-Content "D:\TEMP\machines.txt")
{
Write-Host $Hostname
checkTransactionsPerSecond($Hostname)
}
Danke im Voraus
quelle
Überprüfen Sie dies heraus:
Dadurch wird eine Liste der Datenbanken und der zugehörigen \ Transactions / sec ausgegeben. Zu Beginn der Suche werden Fehler auf meiner Seite angezeigt, aber ich gehe davon aus, dass es sich um ein Berechtigungsproblem handelt. Ansonsten funktioniert es wie eine Schönheit. Sie können Regex verwenden, um es zu bereinigen, wenn Sie möchten :)
quelle