Images 1 of Test SQL Server with Windows PowerShell - Part 4
Test SQL Server with Windows PowerShell - Part 1 Images 2 of Test SQL Server with Windows PowerShell - Part 4
Test SQL Server with Windows PowerShell - Part 2 Images 3 of Test SQL Server with Windows PowerShell - Part 4
Test SQL Server with Windows PowerShell - Part 3
Muthusamy
Network Administration - Part 1 of this series introduced the first check on SQL Server - ping a host.Part 2 is an introduction to checking all Windows services related to SQL Server and the third part is how to check hardware and software information.In this next article, I will show you how to collect network card and hard disk information from the server.
Step 1
Type or copy and paste the following code into C: CheckSQLServerCheckhd.ps1.
#Function để kiểm tra thông tin HDD trên máy phục vụ
Function checkHD ([string] $ Hostname)
{
$ drives = get-wmiobject -class Win32_LogicalDisk
Images 4 of Test SQL Server with Windows PowerShell - Part 4 -computername $ hostname -errorvariable errorvar
Assign the file C: CheckSQLServerCheckSQL_Lib.ps1 the code below.
../checkhd.ps1
../checknet.ps1
Now C: CheckSQLServerCheckSQL_Lib.ps1 will have pinghost, checkservices, checkhardware, checkOS, checkHD and checknet as shown below.
#Source all the relate to functions CheckSQL
../PingHost.ps1
../checkservices.ps1
../checkhardware.ps1
../checkOS.ps1
../checkHD.ps1
../checknet.ps1
Note: This CheckSQL_Lib.ps1 file will be updated with the source of new scripts such as checkhd.ps1 and checknet.ps1.
Step 4
Append to the file C: CheckSQLServerCheckSQLServer.ps1 code below.
Write-host "Checking HDD Information ."
Write-host "....."
checkHD $ Hostname
Write-host "Checking Network Adapter Information ."
Write-host "......."
checknet $ Hostname
Now C: CheckSQLServerCheckSQLServer.ps1 will have both checkhd and checknet as shown below. We added some write-host statements to show the entire process.
#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 "Check 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
}
Note: CheckSQLServer.ps1 will be updated with new conditions and new parameters in later sections of this series.
The source basically loads the rows listed in the script file and makes it available during the entire PowerShell session. In this case, we source a scenario, which is sourced from many other scenarios.
Step 5
Let's execute the script CheckSQLServer.ps1 by passing 'Powerpc' host as an argument, as shown below.
./CheckSQLServer.ps1 PowerServer2
The results you get are as shown below (refer to Figure 1.0).
Checking SQL Server .
....
Arguments accepted: PowerServer2
....
Pinging the host machine
....
PowerServer2 is REACHABLE
Check windows services on the host related to SQL Server
......... ..
Host = PowerServer2 MSSQLSERVER Running OK True .Administrator
Host = PowerServer2 MSSQLServerADHelper100 Stopped OK False NT AUTHORITYNETWORK SERVICE
Host = PowerServer2 MSSQLServerOLAPService Stopped OK False .Administrator
Host = PowerServer2 SQLBrowser Stopped OK False NT AUTHORITYLOCAL 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