|
Function Get-DiskInfo {
[cmdletbinding()]
Param (
[parameter(Mandatory=$true,
ValueFromPipeline=$true)]
[string[]]$computername,
[int]$MinimumFreePercent=10,
[string]$errorfile="c:\errors.txt"
)
$disks=Get-WmiObject -Class Win32_Logicaldisk -Filter "Drivetype=3" -ComputerName $computername -ErrorAction SilentlyContinue -ErrorVariable err
$result=foreach ($disk in $disks) {
$perFree=($disk.FreeSpace/$disk.Size)*100;
if ($perFree -ge $MinimumFreePercent) {$OK=$True}
else {$OK=$False};
$disk|Select @{n="Computer";e={$disk.pscomputername}},DeviceID,VolumeName,`
@{n="Size";e={"{0:N2}" -f ($_.Size/1GB)}},`
@{n="FreeSpace";e={"{0:N2}" -f ($_.Freespace/1GB)}},`
@{Name="OK";Expression={$OK}}
}
$result
if($err -ne $null){
Write-verbose "There are some errors, please check details from the log files "
$err | Out-File $Errorfile
}
else{
Write-Verbose "Complete Successfully"
}
}
function Get-ComputerService {
param(
[string[]]$computername="localhost"
)
get-wmiobject -ComputerName $computername -Class win32_service -Filter "State like 'Running'" |
select @{n="ComputerName";e={$_.pscomputername}} ,`
name, displayname, Processid, `
@{n="Virtual Memory";e={get-process -id $_.processid|select -ExpandProperty virtualMemorysize}},`
@{n="Peak Page file Usage(M)";e={get-process -id $_.processid|select @{n="PeakPagedMemorySize(M)";e={"{0:N2}" -f ($_.PeakPagedMemorySize/1MB)}}| select -ExpandProperty "PeakPagedMemorySize(M)" }},`
@{n="Threads count";e={(get-process -id $_.processid|select -expand threads).count}} | ft
}
|
|
|