ฉันกำลังเขียนสคริปต์ powershell เพื่อจับภาพเคาน์เตอร์เซิร์ฟเวอร์ SQL ต่อไปนี้:
SQL Server: ตัวจัดการหน่วยความจำ: หน่วยความจำเซิร์ฟเวอร์ทั้งหมด (KB)
SQL Server: ตัวจัดการหน่วยความจำ: หน่วยความจำเซิร์ฟเวอร์เป้าหมาย (KB)
เครื่องของฉันมีเซิร์ฟเวอร์ SQL 3 อินสแตนซ์ดังนั้นฉันต้องการให้สคริปต์นี้จับตัวนับทั้งหมดแบบไดนามิกและรายงานค่าสำหรับ 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)
}
ขอบคุณล่วงหน้า