You are not logged in.
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
Spécifie un objets <ManagementClass> représentant l'objet à récupérer. Entrez une variable contenant l'objets, ou tapez une commande ou une expression permettant d'obtenir cet objet. Vous pouvez également diriger un objet
<ManagementClass> vers Get-WMIHelp.
.PARAMETER Class
Spécifie le nom d'une classe WMI
.PARAMETER Path
Spécifie le chemin d'accès de l'emplacement où le fichier de sortie éléments doit être copiés.
.EXAMPLE
PS C:\> Get-WmiObject -List win32_Bios | Get-WMIHelp
Cette commande obtient toutes les données disponibles sur les paramètres de la classe WMI 'win32_Bios'
.EXAMPLE
PS C:\> Get-WMIHelp -InputObject ([WMIClass]'win32_process')
.EXAMPLE
PS C:\> $WMI = Get-WmiObject -List win32_share
PS C:\> Get-WMIHelp -InputObject $WMI -Path Z:\shareinfo.htm
La première commande obtient les méta données de la classe WMI 'win32_share', puis elle les stocke dans la variable $WMI.
La deuxième commande utilise le paramètre InputObject pour passer l'objet <ManagementClass> qui est stocké dans la variable $WMI à la fonction Get-WMIHelp.
Le paramètre 'Path' permet de spécifier un chemin pour stocké notre fichier "htm"
.EXAMPLE
PS C:\> Get-WMIHelp -Class "win32_OperatingSystem" -path c:\os.htm
.LINK
about_WMI_Cmdlets
Get-WmiObject
.INPUTS
System.Management.ManagementClass
.NOTES
Author: Walid Toumi
Blog: http://walidtoumi.blogspot.com
Date: 2/28/2012
Keywords: WMI - Get-WmiObject - Help
#>
[CmdletBinding(DefaultParameterSetName='InputObject')]
param(
[Parameter(
ValueFromPipeLine=$True,
Mandatory=$True,
Position=0,
ParameterSetName='InputObject')]
[ValidateNotNullOrEmpty()]
[System.Management.ManagementClass]
${InputObject},
[Parameter(Position=0,ParameterSetName='class')]
${Class},
[System.String]
${Path})
Try{
switch ($PSCmdlet.ParameterSetName) {
"Class" {
$null=Get-WmiObject -Class $Class -ea 'stop'
$IS_WMI_CLASS = $Class
}
"InputObject" {
$IS_WMI_CLASS = $InputObject.__CLASS
}
}
$WMIClass = Get-WmiObject -List $IS_WMI_CLASS -Amended
$Desc = $WMIClass.Qualifiers['Description']
$WMIProperties = $WMIClass.PSbase.Properties
$Head=@"
<style type="text/css">
body {
font-family:Arial, Helvetica, sans-serif;
font-size:14px;
background:#d7dbe2;
}
table {
background:#f6f6f6;
}
th {
background: #404853;
color: #fff;
}
tbody tr:nth-child(even) td {
background: #e8eae9;
}
</style>
"@
$Body = @"
<h1>WMI CLASS</h1><p>$($WMIClass.__Class)</p>
<h1>WMI CLASS DESCRIPTION</H1><p>$($Desc.Value)</p><h1>PARAMETERS</h1>
"@
$WMIHelp = $WMIProperties | ForEach-Object {
$desc = $($WMIClass.psbase.Properties["$($_.Name)"]).Qualifiers['Description']
New-Object PSObject -Property @{
Description = $desc.value
Type = $_.Type
Name = $_.Name
}
} <# end foreach #> | ConvertTo-Html -Property name,Type,description -Head $Head -Body $Body
}
catch {
Write-Error $_
}
finally {
$WMIHelp > $env:TEMP\wmihelp.htm
if($Path) {
Try{
Move-Item $env:TEMP\wmihelp.htm $Path -ea 'stop'
}
catch {
Write-Error $_
}
} # end if
else {
Invoke-Item -Path $env:TEMP\wmihelp.htm
} # end else
} # end finally
}
Offline