Я пишу сценарий powershell для захвата следующих счетчиков SQL-сервера:
SQL Server: диспетчер памяти: общий объем памяти сервера (КБ)
SQL Server: диспетчер памяти: целевая память сервера (КБ)
На моей машине есть 3 экземпляра SQL-серверов, поэтому я хочу, чтобы этот скрипт динамически собирал все счетчики и сообщал значение только для 1 образца. я попытался написать следующее:
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
в конце концов я хочу запустить это на нескольких серверах с -computername
параметром, и, следовательно, я хочу, чтобы он захватывал динамически.
Может кто-нибудь, пожалуйста, помогите мне найти то, чего не хватает? Ниже приведен точный скрипт, который я запускаю:
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)
}
заранее спасибо
источник
Проверь это:
Это выведет список баз данных и связанных с ними \ транзакций / сек. В начале поиска у меня появляются ошибки, но я предполагаю, что это проблема с разрешениями. В противном случае это работает как красота. Вы можете использовать Regex, чтобы очистить его, если хотите :)
источник