Kim tra SQL Server bng Windows PowerShell – Phn 4
Phn 1 ca lot bài này ã gii thiu v kim tra u tiên trên SQL Server – các ping mt host.
Phn 2 là gii thiu v cách kim tra tt c các dch v ca Windows có liên quan n SQL
Server và phn ba là cách kim tra các thông tin phn cng và phn mm. Trong phn tip theo
này, chúng tôi s gii thiu cho các bn các thu thp các thông tin v card mng và a cng
t máy ch.
Bc 1
ánh hoc copy và paste on mã di ây vào C:\CheckSQLServer\Checkhd.ps1.
#Function to check the HDD information on the host machine
Function checkHD([string] $Hostname )
{
$drives=get-wmiobject -class Win32_LogicalDisk
-computername $hostname -errorvariable errorvar
if (-not $errorvar)
{
foreach ($drive in $drives)
{
if ($drive.drivetype -eq "3" )
{
$message= "DeviceID="+$drive.Deviceid+" Size="+
$drive.size/1048576+"MB Free Space="+
$drive.freespace/1048576 +"MB Percentage Used=" +
(($drive.Size/1048576)-($drive.freespace/1048576))/
($drive.Size/1048576) *100+"% "
write-host $message -background "GREEN" -foreground "BLACk"
}
}
}
}
Bc 2
ánh hoc copy và paste on mã di ây vào C:\CheckSQLServer\Checknet.ps1.
#Function to check the Network netadapter information on the
host machine
Function checknet([string] $Hostname )
{
$netadapter=get-wmiobject -class win32_networkadapter
-computername $hostname -errorvariable errorvar
if (-not $errorvar)
{
foreach ($netadapter in $netadapter)
{
write-host " "
-background "Blue" -foreground "BLACk"
#$message= "netadapter Enabled="+$netadapter.Enable
#write-host $message -background "GREEN" -foreground "BLACk"
$message= "netadapterType="+$netadapter.netadapterType
write-host $message -background "GREEN" -foreground "BLACk"
$message= "Description="+$netadapter.Description
write-host $message -background "GREEN" -foreground "BLACk"
$message= "Manufacturer="+$netadapter.Manufacturer
write-host $message -background "GREEN" -foreground "BLACk"
$message= "NetworkAddresses="+$netadapter.NetworkAddresses
write-host $message -background "GREEN" -foreground "BLACk"
$message= "PermanentAddress="+$netadapter.PermanentAddress
write-host $message -background "GREEN" -foreground "BLACk"
$message= "Physicalnetadapter="+$netadapter.Physicalnetadapter
write-host $message -background "GREEN" -foreground "BLACk"
$message= "ProductName="+$netadapter.ProductName
write-host $message -background "GREEN" -foreground "BLACk"
$message= "ServiceName="+$netadapter.ServiceName
write-host $message -background "GREEN" -foreground "BLACk"
$message= "StatusInfo="+$netadapter.StatusInfo
write-host $message -background "GREEN" -foreground "BLACk"
$message= "Speed="+$netadapter.Speed
write-host $message -background "GREEN" -foreground "BLACk"
$message= "Status="+$netadapter.Status
write-host $message -background "GREEN" -foreground "BLACk"
}
}
}
Bc 3
Gán vào file C:\CheckSQLServer\CheckSQL_Lib.ps1 on mã di ây.
. ./checkhd.ps1
. ./checknet.ps1
Lúc này C:\CheckSQLServer\CheckSQL_Lib.ps1 s có pinghost, checkservices, checkhardware,
checkOS, checkHD và checknet nh th hin bên di.
#Source all the functions relate to CheckSQL
. ./PingHost.ps1
. ./checkservices.ps1
. ./checkhardware.ps1
. ./checkOS.ps1
. ./checkHD.ps1
. ./checknet.ps1
Lu ý: File CheckSQL_Lib.ps1 này s c cp nht vi ngun dn ca các kch bn mi nh
checkhd.ps1 và checknet.ps1.
Bc 4
Gn thêm vào file C:\CheckSQLServer\CheckSQLServer.ps1 on mã di ây.
Write-host "Checking HDD Information "
Write-host " "
checkHD $Hostname
Write-host "Checking Network Adapter Information "
Write-host " "
checknet $Hostname
Lúc này C:\CheckSQLServer\CheckSQLServer.ps1 s có c checkhd và checknet nh th hiên
di. Chúng tôi ã thêm mt s tuyên b write-host hin toàn b quá trình.
#Objective: To check various status of SQL Server
#Host, instances and databases.
#Author: MAK
#Date Written: June 5, 2008
param (
[string] $Hostname
)
$global:errorvar=0
. ./CheckSQL_Lib.ps1
Write-host "Checking SQL Server "
Write-host " "
Write-host " "
Write-host "Arguments accepted : $Hostname"
write-host " "
Write-host "Pinging the host machine"
write-host " "
pinghost $Hostname
if ($global:errorvar -ne "host not reachable")
{
Write-host "Checking windows services on the host related to SQL Server"
write-host " "
checkservices $Hostname
Write-host "Checking hardware Information "
Write-host " "
checkhardware $Hostname
Write-host "Checking OS Information "
Write-host " "
checkOS $Hostname
Write-host "Checking HDD Information "
Write-host " "
checkHD $Hostname
Write-host "Checking Network Adapter Information "
Write-host " "
checknet $Hostname
}
Lu ý: CheckSQLServer.ps1 s c cp nht các iu kin mi và các tham s mi trong các
phn sau ca lot bài này.
Ngun dn c bn load các hàng c lit kê trong file kch bn và làm cho nó tr lên hin hu
trong toàn b PowerShell session. Trong trng hp này, chúng tôi dn ngun mt kch bn,
kch bn này li ly ngun t nhiu kch bn khác.
Bc 5
Chúng ta hãy thc thi kch bn CheckSQLServer.ps1 bng cách passing “Powerpc” host nh mt
i s, xem th hin di ây.
./CheckSQLServer.ps1 PowerServer2
Các kt qu bn thu c nh th hin bên di (tham kho hình 1.0)
Checking SQL Server
Arguments accepted : PowerServer2
Pinging the host machine
PowerServer2 is REACHABLE
Checking windows services on the host related to SQL Server
Host=PowerServer2 MSSQLSERVER Running OK True .\Administrator
Host=PowerServer2 MSSQLServerADHelper100 Stopped OK False
NT AUTHORITY\NETWORK SERVICE
Host=PowerServer2 MSSQLServerOLAPService Stopped OK
False .\Administrator
Host=PowerServer2 SQLBrowser Stopped OK False
NT AUTHORITY\LOCAL SERVICE
Host=PowerServer2 SQLSERVERAGENT Stopped OK False .\Administrator
Host=PowerServer2 SQLWriter Stopped OK False LocalSystem
Checking hardware Information
Host=PowerServer2
Description=AT/AT COMPATIBLE
NumberOfLogicalProcessors=2
NumberOfProcessors=1
TotalPhysicalMemory=2145738752
Model=OptiPlex GX270
Manufacturer=Dell Computer Corporation
PartOfDomain=True
CurrentTimeZone=-240
DaylightInEffect=True
Checking OS Information
OSArchitecture=32-bit
OSLanguage=1033
OSProductSuite=274
OSType=18
BuildNumber=6001
BuildType=Multiprocessor Free
Version=6.0.6001
WindowsDirectory=C:\Windows
PlusVersionNumber=
FreePhysicalMemory=1492684
FreeSpaceInPagingFiles=2402648
FreeVirtualMemory=3948148
PAEEnabled=False
ServicePackMajorVersion=0
ServicePackMinorVersion=0
Checking HDD Information
DeviceID=C: Size=38143.99609375MB Free Space=23761.51953125MB
Percentage Used=37.7057414937619
Checking Network Adapter Information
netadapterType=
Description=WAN Miniport (SSTP)
Manufacturer=Microsoft
NetworkAddresses=
PermanentAddress=
Physicalnetadapter=
ProductName=WAN Miniport (SSTP)
ServiceName=RasSstp
StatusInfo=
Speed=
Status=
netadapterType=
Description=WAN Miniport (L2TP)
Manufacturer=Microsoft
NetworkAddresses=
PermanentAddress=
Physicalnetadapter=
ProductName=WAN Miniport (L2TP)
ServiceName=Rasl2tp
StatusInfo=
Speed=
Status=
netadapterType=
Description=WAN Miniport (PPTP)
Manufacturer=Microsoft
NetworkAddresses=
PermanentAddress=
Physicalnetadapter=
ProductName=WAN Miniport (PPTP)
ServiceName=PptpMiniport
StatusInfo=
Speed=
Status=
netadapterType=
Description=WAN Miniport (PPPOE)
Manufacturer=Microsoft
NetworkAddresses=
PermanentAddress=
Physicalnetadapter=
ProductName=WAN Miniport (PPPOE)
ServiceName=RasPppoe
StatusInfo=
Speed=
Status=
netadapterType=
Description=WAN Miniport (IPv6)
Manufacturer=Microsoft
NetworkAddresses=
PermanentAddress=
Physicalnetadapter=
ProductName=WAN Miniport (IPv6)
ServiceName=NdisWan
StatusInfo=
Speed=
Status=
netadapterType=
Description=WAN Miniport (Network Monitor)
Manufacturer=Microsoft
NetworkAddresses=
PermanentAddress=
Physicalnetadapter=
ProductName=WAN Miniport (Network Monitor)
ServiceName=NdisWan
StatusInfo=
Speed=
Status=
netadapterType=
Description=Intel(R) PRO/1000 MT Network Connection
Manufacturer=Intel
NetworkAddresses=
PermanentAddress=
Physicalnetadapter=
ProductName=Intel(R) PRO/1000 MT Network Connection
ServiceName=E1G60
StatusInfo=
Speed=100000000
Status=
netadapterType=
Description=Microsoft ISATAP Adapter
Manufacturer=Microsoft
NetworkAddresses=
PermanentAddress=
Physicalnetadapter=
ProductName=Microsoft ISATAP Adapter
ServiceName=tunnel
StatusInfo=
Speed=100000
Status=
netadapterType=
Description=WAN Miniport (IP)
Manufacturer=Microsoft
NetworkAddresses=
PermanentAddress=
Physicalnetadapter=
ProductName=WAN Miniport (IP)
ServiceName=NdisWan
StatusInfo=
Speed=
Status=
netadapterType=
Description=Microsoft Tun Miniport Adapter
Manufacturer=Microsoft
NetworkAddresses=
PermanentAddress=
Physicalnetadapter=
ProductName=Microsoft Tun Miniport Adapter
ServiceName=tunmp
StatusInfo=
Speed=1073741824
Status=
netadapterType=
Description=RAS Async Adapter
Manufacturer=Microsoft
NetworkAddresses=
PermanentAddress=
Physicalnetadapter=
ProductName=RAS Async Adapter
ServiceName=AsyncMac
StatusInfo=
Speed=
Status=
Hình 1.0
T các kt qu thu c, bn có th thy c các thông tin v a c!ng và card mng.
Bc 6
Chúng ta hãy thc thhi kch bn trên máy không có a c!ng hay card mng.
./CheckSQLServer.ps1 TestMachine
Kt qu mà bn nhn c c th hin bên di (tham kho hình 1.1)
Kt qu
Checking SQL Server
Arguments accepted : TestMachine
Pinging the host machine
TestMachine is NOT reachable
Hình 1.1
Lu ý: bn có th download mã cho phn 3 mi nht ây.
Kt lun
Phn 4 này ã gii thiu cho các bn cách truy cp thu thp các thông tin v a c!ng và
card mng bng Windows PowerShell và WMI-Object.