Quantcast
Channel: PowerShell.com – PowerShell Scripts, Tips, Forums, and Resources
Viewing all articles
Browse latest Browse all 6937

PowerShell HTML Data Handling

$
0
0

Hi there

I'm writing up a server report script which would be report on a various aspects of server such as disk space, status of some of the services. I would like to add more aspects but before that i'm struggling to get this report comeout in a desired format.

How do i go about eliminating empty rows it is creating so that the format looks better.

Also is there a better way the data could be captured so that i can add more aspects such as get-process etc.

The only problem i have is the detail has to be in the table format

I'm passing a server.txt file which has the list of servers something like this

serverA=testserver

serverB=uatserver

serverC=devserver

serverD=prodserver

 

Here is my script

$DiskSpaceReportCollection = @()

$BuildMachinesList = $args[0]

$BuildMachines = Get-Content $BuildMachinesList

Foreach ($BuildMachine in $BuildMachines)

{

$Computer = $BuildMachine.SubString(0,15)

$Description = $BuildMachine.SubString(16)

$ReportInfo = New-Object -TypeName PSObject

$ReportInfo | Add-Member -type NoteProperty -Name "Computer" -Value $Computer

$ReportInfo | Add-Member -type NoteProperty -Name "Description" -Value $Description

$ReportInfo | Add-Member -type NoteProperty -Name "DriveName" -Value ""

$ReportInfo | Add-Member -type NoteProperty -Name "Total Space" -Value ""

$ReportInfo | Add-Member -type NoteProperty -Name "Remaining Space" -Value ""

$ReportInfo | Add-Member -type NoteProperty -Name "Percent Free" -Value ""

$ReportInfo | Add-Member -type NoteProperty -Name "Hudson Services" -Value ""

$ReportInfo | Add-Member -type NoteProperty -Name "Status" -Value ""

$DiskSpaceReportCollection +=$ReportInfo

#Check Server is down

If (!(Test-Connection -ComputerName $Computer -Count 1 -Quiet)) 

  Continue # Move to next computer

}

else

{

# Check Disk Space

$DiskData = Get-WmiObject -ComputerName $Computer Win32_LogicalDisk `

| Select-Object Name, `

@{Name="TotalSpace(GB)";Expression={ "{0:n2}" -f ($_.Size/1GB)}},`

@{Name="FreeSpace(GB)";Expression={"{0:n2}" -f($_.FreeSpace/1GB)}}, `

@{Name="PercentFree";Expression={"{0:n2}" -f ($_.freespace/$_.size*100)}} `

| Where-Object {($_.Name -like "C:" -or $_.Name -like "E:")}

foreach ($Disk in $DiskData)

{

$DriveType = New-Object -TypeName PSObject

$DriveType | Add-Member -type NoteProperty -Name "Computer" -Value ""

$DriveType | Add-Member -type NoteProperty -Name "Description" -Value ""

$DriveType | Add-Member -type NoteProperty -Name "DriveName" -Value $Disk.Name

$DriveType | Add-Member -type NoteProperty -Name "Total Space" -Value $Disk."TotalSpace(GB)"

$DriveType | Add-Member -type NoteProperty -Name "Remaining Space" -Value $Disk."FreeSpace(GB)"

$DriveType | Add-Member -type NoteProperty -Name "Percent Free" -Value $Disk.PercentFree

$DriveType | Add-Member -type NoteProperty -Name "Hudson Services" -Value ""

$DriveType | Add-Member -type NoteProperty -Name "Status" -Value ""

$DiskSpaceReportCollection +=$DriveType

}

# Check Service Status

$ServicesList = Get-Service -ComputerName $Computer | Select-Object ServiceName, Status | Where-Object {$_.ServiceName -like "Hudson*" -or $_.ServiceName -like "Tomcat*"}

foreach ($Service in $ServicesList)

{

$ServiceType = New-Object -TypeName PSObject

$ServiceType | Add-Member -type NoteProperty -Name "Computer" -Value ""

$ServiceType | Add-Member -type NoteProperty -Name "Description" -Value ""

$ServiceType | Add-Member -type NoteProperty -Name "DriveName" -Value ""

$ServiceType | Add-Member -type NoteProperty -Name "Total Space" -Value ""

$ServiceType | Add-Member -type NoteProperty -Name "Remaining Space" -Value ""

$ServiceType | Add-Member -type NoteProperty -Name "Percent Free" -Value ""

$ServiceType | Add-Member -type NoteProperty -Name "Hudson Services" -Value $Service.ServiceName

$ServiceType | Add-Member -type NoteProperty -Name "Status" -Value $Service.Status

$DiskSpaceReportCollection +=$ServiceType

}

}

}


$DiskSpaceReportCollection | ConvertTo-Html | Out-File C:\TEST\Test.htm

Invoke-Expression C:\TEST\Test.htm

 

 

 


Viewing all articles
Browse latest Browse all 6937

Trending Articles