Get-WMIHelp : un Get-Help pour WMI
salut,
WMI est une technologie certes utiles mais difficile à exploiter, pour cette raison j'ai concu une petite fonction qui va permettre d'avoir une aide pour les classes et les propriétés de WMI.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| function Get-WMIHelp {
<#
.SYNOPSIS
Affiche des informations sur les classes et propriétés WMI
.DESCRIPTION
Affiche des informations sur les classes et propriétés WMI
.PARAMETER InputObject
.PARAMETER Full
.EXAMPLE
Get-WmiObject -List win32_Bios | Get-WMIHelp -Full
.EXAMPLE
Get-WMIHelp -InputObject ([WMIClass]'win32_process')
.LINK
about_WMI_Cmdlets
Get-WmiObject
#>
[CmdletBinding()]
[OutputType('System.String')]
param(
[Parameter(ValueFromPipeLine=$True,Mandatory=$True)]
[System.Management.ManagementClass]$InputObject,
[Switch]$Full
)
Try{
$WMIClass = Get-WmiObject -List $InputObject.__Class -Amended -ea stop
$Desc = $WMIClass.Qualifiers['Description']
$WMIProperties = $WMIClass.PSbase.Properties
$Help = "
NAME`n`n
`t$($WMIClass.__Class)`n`n
DESCRIPTION`n`n
`t$($Desc.Value)`n`n
PARAMETERS`n`n"
foreach($param in $WMIProperties) {
$Help += "`n`t$($param.Name) [$($param.Type)]`n`n"
if($Full) {
$out = ($WMIClass.psbase.Properties["$($param.Name)"]).Qualifiers['Description']
$Help += "`t`t`t$($out.value)`n`n"
}
}
}
Catch{}
finally {
if($help) {
Write-Output $help
}
}
} |
# version 1.0