黄智勇 发表于 2018-9-2 08:45:21

PowerShell 创建,查看和保存嵌套的对象属性

Function Get-DiskInfo {  

  
Param (
  
[parameter(Mandatory=$true,
  
                   ValueFromPipeline=$true)]
  
]$computername,
  
$MinimumFreePercent=10,
  
$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(
  
]$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
  
}


页: [1]
查看完整版本: PowerShell 创建,查看和保存嵌套的对象属性