為什麼這個SQL Server DBA學習PowerShell
原文出自:http://www.simple-talk.com/sql/database-administration/why-this-sql-server-dba-is-learning-powershell/
Joe.TJ翻譯整理,僅用於傳播資訊之目的。
Windows Management Instrumentation(WMI)任務
我下一個任務是快速查看我所有服務上的空閑空間。為了完成任務,我不得不踏足WMI的世界,這提供一個物件模型來暴露運行在你的機器上的服務或者應用程式的資料。這裡的第一個障礙是搞清楚WMI提供了些什麼。只要你開始尋找你就會意識到WMI物件模型是巨大的,您需要花點時間去瀏覽它並找出什麼對象能幹什麼。MSDN是擷取WMI類文檔最好的地方。
瀏覽Win32 WMI類
對於一個DBA最有用的WMI類就是Win32類,您可以使用如下的一行代碼擷取所有可用的win32類。
# Browse Win32 WMI classes
get-wmiobject -list | where {$_.name -like "win32*"} | Sort-Object
我最初發現有趣的類是:
Win32_LogicalDisk-給出你磁碟機的當前狀況
Win32_QuickFixEngineering-枚舉電腦上所有已經安裝的修複程式
下面的例子會著重使用它們及一些其它的有趣的類。
檢查磁碟空間
最簡單的檢查磁碟空間的方式是使用Win32_LogicalDisk類。DriveType=3指所有本地磁碟。Win32_LogicalDisk不會顯示掛載點的資訊。
# Check disk space on local disks on local server
Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3"
# Check disk space on a remote server.
Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" –ComputerName ServerName
在進一步發掘以後,與其從Win32_LogicalDisk的輸出中計算空閑空間百分比,不如使用更容易的PerfFormattedData_PerfDisk_LogicalDisk類和它的屬性PercentFreeSpace。在下面的例子中,我檢查自由空間低於20%的磁碟機。使用這個類檢查磁碟空間的另一個理由是它會顯示掛載點資訊。
# Checking disk space
foreach ($svr in get-content "C:\AllServers.txt")
{
$svr; Get-WmiObject Win32_PerfFormattedData_PerfDisk_LogicalDisk -ComputerName $svr | where{$_.Name -ne "_Total" -and $_.PercentFreeSpace -lt 20} | select-object Name, PercentFreeSpace | format-list
}
# Local computer example
Get-WmiObject -class Win32_PerfFormattedData_PerfOS_Processor -Property Name,PercentProcessorTime | where{$_.Name -eq "_Total"}
檢查伺服器上正在運行什麼服務
找出在一個遠程伺服器上有哪些服務正啟動並執行快速方法是用Get-WmiObject。指定Win32_Service類的,然後指定你想要列出的屬性,最終指定你希望查詢的電腦。在下面的例子中,我只打算查詢服務名稱。
# Checking what services are running on a computer.
get-wmiobject win32_service –computername COMPUTER | select name
IIS正在您的SQL伺服器上運行嗎?Oh,No!
如果你想要查看在遠程機器上是否有某個特定的服務在運行,可以使用Filter參數並指定服務名稱。輸出如所示。
# Is IIS running on your server?
get-wmiobject win32_Service -computername COMPUTER -f "name='IISADMIN'"
gwmi win32_Service –co COMPUTER -f "name='IISADMIN'"
--------------------------------------------
如蒙轉載或引用,請保留以下內容:
Joe's Blog:http://www.cnblogs.com/Joe-T/