Estoy escribiendo un script de PowerShell para capturar los siguientes contadores del servidor SQL:
SQL Server: Administrador de memoria: Memoria total del servidor (KB)
SQL Server: Administrador de memoria: Memoria del servidor de destino (KB)
Mi máquina tiene 3 instancias de servidores SQL, por lo que quiero que este script capture todos los contadores dinámicamente e informe el valor solo para 1 muestra. Traté de escribir lo siguiente:
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
Finalmente, quiero ejecutar esto en varios servidores con -computername
parámetros y, por lo tanto, quiero que capture de forma dinámica.
¿Alguien puede ayudarme a encontrar lo que falta? El siguiente es el script exacto que estoy ejecutando:
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)
}
gracias por adelantado
fuente
Mira esto:
Esto generará una lista de bases de datos y sus \ Transacciones / seg asociadas. Recibo errores de mi parte al comienzo de la búsqueda, pero supongo que es un problema de permisos. De lo contrario, funciona como una belleza. Puedes usar Regex para limpiarlo si quieres :)
fuente