# encoding: ascii
# api: powershell
# title: WMI Explorer
# description: WMIExplorer screenshots (launched on WinXP – http://savepic.org/4970354.jpg and http://savepic.org/4957042.jpg)
# version: 2.37
# type: function
# author: greg zakharov
# license: CC0
# function: Get-UserStatus
# x-poshcode-id: 4841
# x-archived: 2014-01-29T05:07:24
# x-published: 2014-01-26T14:06:00
#
#
#requires -version 2.0
function Get-UserStatus {
$script:usr = [Security.Principal.WindowsIdentity]::GetCurrent()
return (New-Object Security.Principal.WindowsPrincipal $usr).IsInRole(
[Security.Principal.WindowsBuiltInRole]::Administrator
)
}
function Get-ImageFromString([Object]$img) {
[Drawing.Image]::FromStream((New-Object IO.MemoryStream(
($$ = [Convert]::FromBase64String($img)), 0, $$.Length))
)
}
function Get-NameSpaces([String]$root) {
(New-Object Management.ManagementClass(
$root, [Management.ManagementPath]'__NAMESPACE', $null
)
).PSBase.GetInstances() | % {
return (New-Object Windows.Forms.TreeNode).Nodes.Add($_.Name)
}
}
function Get-SubNameSpaces([Windows.Forms.TreeNode[]]$nodes) {
foreach ($nod in $nodes) {
Get-NameSpaces ('root\' + $nod.FullPath) | % {$nod.Nodes.Add($_)}
}
}
function Get-ClassesNumber {
$sbLbl_1.Text = "Classes: " + $lvList1.Items.Count.ToString()
}
function Reset-AllMessages {
$sbLbl_2, $sbLbl_3 | % {$_.Text = [String]::Empty}
$rtbDesc.Text = [String]::Empty
$lvList2.Items.Clear()
}
function frmMain_Show {
if (!([AppDomain]::CurrentDomain.GetAssemblies() | ? {
$_.FullName.Contains('System.Windows.Forms')
})) {[void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms')}
[Windows.Forms.Application]::EnableVisualStyles()
$ico = [Drawing.Icon]::ExtractAssociatedIcon(($PSHome + '\powershell.exe'))
#
#fonts
#
$bol1 = New-Object Drawing.Font("Tahoma", 9, [Drawing.FontStyle]::Bold)
$bol2 = New-Object Drawing.Font("Tahoma", 8, [Drawing.FontStyle]::Bold)
$norm = New-Object DRawing.Font("Tahoma", 9, [Drawing.FontStyle]::Regular)
#
#namespace picture
#
$img1 = "Qk1mAgAAAAAAADYAAAAoAAAADQAAAA4AAAABABgAAAAAADACAAAAAAAAAAAAAAAAAAAAAAAA//////" + `
"//////////////////////////////////////////////AP///////////wAAAAAAAAAAAP///wAA" + `
"AAAAAAAAAP///////////wD///////8AAAAAAAD///////////////////8AAAAAAAD///////8A//" + `
"//////AAAAAAAA////////////////////AAAAAAAA////////AP///////wAAAAAAAP//////////" + `
"/////////wAAAAAAAP///////wD///////8AAAAAAAD///////////////////8AAAAAAAD///////" + `
"8A////////AAAAAAAA////////////////////AAAAAAAA////////AAAAAAAAAAAAAP//////////" + `
"/////////////////wAAAAAAAAAAAAD///////8AAAAAAAD///////////////////8AAAAAAAD///" + `
"////8A////////AAAAAAAA////////////////////AAAAAAAA////////AP///////wAAAAAAAP//" + `
"/////////////////wAAAAAAAP///////wD///////8AAAAAAAD///////////////////8AAAAAAA" + `
"D///////8A////////////AAAAAAAAAAAA////AAAAAAAAAAAA////////////AP//////////////" + `
"/////////////////////////////////////wA="
#
#class picture
#
$img2 = "Qk02BQAAAAAAADYEAAAoAAAAEAAAABAAAAABAAgAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAA////AN" + `
"ju9gDYm1sA+O7jAMS3rQAUquEA/ez9ANrv9gDTZdIA2+/3AJeAbwCZMwAADGKBAI0tjAAOeJ4A/fD9" + `
"AP/NmQD97f0A+q36ANxw2wAXmMgAbNbzAPuY+gCF4fUAUMvxAFDL8gA0wO8A997iAOm0fAC1YzUA+v" + `
"TtABy17QDZbNgAa9f0AB217gA1wPAAHbXtALM8sgCF4PUAhuH0APnw5wD68uoAT8vxABy27gBr1vQA" + `
"yXNDAIbh9QAvvu8ANMDwAPnx6QD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMjIyMjIyMjIAAwAyMjIyMjIyMjIyMjIAMQsDADIyMj" + `
"IyMjIyMjIyHh0CCwMAMjIyMjIyMjIECgIQHAILAwAyMjIyMjIyBDIDAhAcAgsDMjIyADIyMgQyMgMC" + `
"EC0oADIyAAcAMjIEMjIyGwIpADIyAAcOBwAyBDIyBg0bADIyAAcOKw4HAAQyBiUTDREAMgEOKhovDA" + `
"oKCiASFhMNEQAFFyEYMCIMATIGCBIWEw0RAQUuFRkjHwwBMgYIEggGAAAJBSYVGRokDAEADwgPADIy" + `
"AAkFJywYFAEAMgAPADIyMjIACQUXFAEAMjIyADIyMjIyMgAJBQEAMjIyMjIyMjI="
#
#qualifier picture
#
$img3 = "Qk02BQAAAAAAADYEAAAoAAAAEAAAABAAAAABAAgAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAxK+iAP" + `
"///wD7/f8AVE5GAN+dfQBu6/8Aj6SsAP//9gBo7f8AVE9NAPzw6ADRyMEA0sjBAEphcABST0sAS2Fw" + `
"AP///gACIS4AUk9MAHLh+QAVJzMAQaxTAFdNWQD+/v0Aeo+ZAOfr7QB6zeIA//nsADKy3wAVk8QAKZ" + `
"c/ANnPyABhwd4AMDpPAP/l1gDCyNAA+OLSAKOsuABZeFsA+/TvAHx1cwCnkokAMp5BADG76gBdXGAA" + `
"adv2AFOElQBXa4AAwsrOAH/j+QDf5OUA/d7LAP328gDRx8AAUmBnANq6qgC/yM0A/8WkAEBmUQCTtp" + `
"kAhcyFAP/w4QCa06QAEajsAGrd9wD/6tIAGIwyAP77+ACAl6MAXnWEAAsQGwBccYAAHGYpAP/p3ABp" + `
"nIkALqnWAPvu5gD/7eMAW21/AFjS8wCBprUAU1BMAIPh9gCknZYA/+LQACK6+gCw6/oAEAcKAP36+A" + `
"BBPVAAT1ZlAEvH7QBYmK4AcMF9APHKtwD/6tUAcuL6AP7+/ABfoqYA//78ABRijgBRTksA+uneALCt" + `
"rAD/+/kAQVxyANPJwgBWz/IAVL3cANTZ3QBOS0sAgJagAFCQjABAw+0AZ9f0AOXJuQBRcosAlbjEAO" + `
"PZ0wBzhZMA4unpAIbT5QAdmcgAVlFNAB/Q/wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + `
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH19fX19fX19fX19fX19fX0obgkJCXtRDhIOZQN9fX19Hw" + `
"ECAgcHBxs9X0EDfX19fQwBAABoAAAAAAAzA319fX0MAQICY1gnTGYkVAN9fX19agEAABAAAAAAACID" + `
"fX19fTUBAgIBF0M0CgpJA319fX0LAQICAQFhZ2l2TQN9fX19CwF4RTIBMA1LRixTfX07SAReBnkPKQ" + `
"0gFnwUVxFaJkIEOXMGUg8aNghZHHodZDoeBAQENwYxLgghLU9xKz9wKn19fX0ZLwhcBRNAa1tVYhV9" + `
"fX19I1ZOBQUFYHJsdEo8fX19fSV1bVBEbxh3Rzg+XX19fX19fX19fX19fX19fX0="
#
#filter button
#
$img4 = "Qk32AgAAAAAAADYAAAAoAAAADgAAABAAAAABABgAAAAAAMACAAAAAAAAAAAAAAAAAAAAAAAA//////" + `
"//////////////////////////////////////////////////AAD/////////////////////////" + `
"//////////////////////////////8AAP///////////////////////wAAAAAAAP////////////" + `
"///////////wAA////////////////////////AAAAAAAA////////////////////////AAD/////" + `
"//////////////////////////////////////////////////8AAP///////////////////////w" + `
"AAAAAAAP///////////////////////wAA////////////////////////aGhoAAAAsrKy////////" + `
"////////////AAD////////////////////////Z2dkAAAAAAACnp6f///////////////8AAP////" + `
"///////////////////////9nZ2U1NTQAAALKysv///////////wAA////////////////////////" + `
"////////8PDwAAAAAAAA////////////AAD///////////9NTU0AAADHx8f////////Hx8cAAABNTU" + `
"3///////////8AAP///////////9DQ0AAAAAAAAAAAAAAAAAAAAAAAANDQ0P///////////wAA////" + `
"////////////2dnZfHx8AAAAAAAAfHx82dnZ////////////////AAD///////////////////////" + `
"////////////////////////////////8AAP//////////////////////////////////////////" + `
"/////////////wAA////////////////////////////////////////////////////////AAA="
#
#form objects
#
$frmMain = New-Object Windows.Forms.Form
$mnuMain = New-Object Windows.Forms.MenuStrip
$mnuFile = New-Object Windows.Forms.ToolStripMenuItem
$mnuExit = New-Object Windows.Forms.ToolStripMenuItem
$mnuView = New-Object Windows.Forms.ToolStripMenuItem
$mnuTStr = New-Object Windows.Forms.ToolStripMenuItem
$mnuSStr = New-Object Windows.Forms.ToolStripMenuItem
$mnuHelp = New-Object Windows.Forms.ToolStripMenuItem
$mnuInfo = New-Object Windows.Forms.ToolStripMenuItem
$tsStrip = New-Object Windows.Forms.ToolStrip
$tsLabel = New-Object Windows.Forms.ToolStripLabel
$tsWMask = New-Object Windows.Forms.ToolStripTextBox
$tsWLike = New-Object Windows.Forms.ToolStripButton
$scSplt1 = New-Object Windows.Forms.SplitContainer
$scSplt2 = New-Object Windows.Forms.SplitContainer
$tvRoots = New-Object Windows.Forms.TreeView
$lvList1 = New-Object Windows.Forms.ListView
$lvList2 = New-Object Windows.Forms.ListView
$chCol_1 = New-Object Windows.Forms.ColumnHeader
$chCol_2 = New-Object Windows.Forms.ColumnHeader
$chCol_3 = New-Object Windows.Forms.ColumnHeader
$chCol_4 = New-Object Windows.Forms.ColumnHeader
$chCol_5 = New-Object Windows.Forms.ColumnHeader
$chCol_6 = New-Object Windows.Forms.ColumnHeader
$chCol_7 = New-Object Windows.Forms.ColumnHeader
$tabCtrl = New-Object Windows.Forms.TabControl
$tpPage1 = New-Object Windows.Forms.TabPage
$tpPage2 = New-Object Windows.Forms.TabPage
$rtbDesc = New-Object Windows.Forms.RichTextBox
$imgList = New-Object Windows.Forms.ImageList
$sbStrip = New-Object Windows.Forms.StatusStrip
$sbLbl_1 = New-Object Windows.Forms.ToolStripStatusLabel
$sbLbl_2 = New-Object Windows.Forms.ToolStripStatusLabel
$sbLbl_3 = New-Object Windows.Forms.ToolStripStatusLabel
#
#common
#
$mnuMain.Items.AddRange(@($mnuFile, $mnuView, $mnuHelp))
$tsStrip.Items.AddRange(@($tsLabel, $tsWMask, $tsWLike))
$tsLabel.Text = "Filter:"
$scSplt1, $scSplt2, $tabCtrl, $tvRoots, $lvList1, $lvList2, $rtbDesc | % {
$_.Dock = [Windows.Forms.DockStyle]::Fill
}
$lvList1, $lvList2 | % {
$_.FullRowSelect = $true
$_.MultiSelect = $false
$_.ShowItemToolTips = $true
$_.Sorting = [Windows.Forms.SortOrder]::Ascending
}
$chCol_1, $chCol_2, $chCol_6, $chCol_7 | % {$_.Width = 130}
$chCol_3, $chCol_4, $chCol_5 | % {$_.Width = 70}
$chCol_1.Text = "Name"
$chCol_2.Text = "Description"
$chCol_3.Text = "Amended"
$chCol_4.Text = "Local"
$chCol_5.Text = "Overridable"
$chCol_6.Text = "PropagatesToInstance"
$chCol_7.Text = "PropagatesToSubclass"
$tabCtrl.Controls.AddRange(@($tpPage1, $tpPage2))
$tpPage1, $tpPage2 | % {$_.UseVisualStyleBackColor = $true}
$scSplt1, $scSplt2 | % {$_.SplitterWidth = 1}
$rtbDesc.ReadOnly = $true
$img1, $img2, $img3 | % {$imgList.Images.Add((Get-ImageFromString $_))}
$sbStrip.Items.AddRange(@($sbLbl_1, $sbLbl_2, $sbLbl_3))
$sbLbl_1, $sbLbl_2, $sbLbl_3 | % {$_.AutoSize = $true}
$sbLbl_2.ForeColor = [Drawing.Color]::DarkMagenta
$sbLbl_3.ForeColor = [Drawing.Color]::DarkGreen
#
#mnuFile
#
$mnuFile.DropDownItems.AddRange(@($mnuExit))
$mnuFile.Text = "&File"
#
#mnuExit
#
$mnuExit.ShortcutKeys = [Windows.Forms.Keys]::Control, [Windows.Forms.Keys]::X
$mnuExit.Text = "E&xit"
$mnuExit.Add_Click({$frmMain.Close()})
#
#mnuView
#
$mnuView.DropDownItems.AddRange(@($mnuTStr, $mnuSStr))
$mnuView.Text = "&View"
#
#mnuTStr
#
$mnuTStr.Checked = $true
$mnuTStr.ShortcutKeys = [Windows.Forms.Keys]::Control, [Windows.Forms.Keys]::F
$mnuTStr.Text = "&Filter"
$mnuTStr.Add_Click({
$toggle =! $mnuTStr.Checked
$mnuTStr.Checked = $toggle
$tsStrip.Visible = $toggle
})
#
#mnuSStr
#
$mnuSStr.Checked = $true
$mnuSStr.ShortcutKeys = [Windows.Forms.Keys]::Control, [Windows.Forms.Keys]::S
$mnuSStr.Text = "&Status Bar"
$mnuSStr.Add_Click({
$toggle =! $mnuSStr.Checked
$mnuSStr.Checked = $toggle
$sbStrip.Visible = $toggle
})
#
#mnuHelp
#
$mnuHelp.DropDownItems.AddRange(@($mnuInfo))
$mnuHelp.Text = "&Help"
#
#mnuInfo
#
$mnuInfo.Text = "About..."
$mnuInfo.Add_Click({frmInfo_Show})
#
#tsWMask
#
$tsWMask.Size = New-Object Drawing.Size(130, 23)
$tsWMask.Add_TextChanged({
if ($clone -ne $null -and [String]::IsNullOrEmpty($tsWMask.Text)) {
Reset-AllMessages
$lvList1.Items.Clear()
$clone | % {$lvList1.Items.Add($_.Text, 1)}
Get-ClassesNumber
} #if
})
#
#tsWLike
#
$tsWLike.Image = (Get-ImageFromString $img4)
$tsWLike.ToolTipText = "Set Filter"
$tsWLike.Add_Click({
if ($lvList1.Items.Count -ne 0 -and ![String]::IsNullOrEmpty($tsWMask.Text)) {
Reset-AllMessages
$lvList1.Items | % {
if ($_.Text -notlike $tsWMask.Text) {
$_.Remove()
}
}
Get-ClassesNumber
} #if
})
#
#scSplt1
#
$scSplt1.Orientation = [Windows.Forms.Orientation]::Horizontal
$scSplt1.Panel1.Controls.Add($scSplt2)
$scSplt1.Panel2.Controls.Add($tabCtrl)
$scSplt1.SplitterDistance = 50
#
#scSplt2
#
$scSplt2.Panel1.Controls.Add($tvRoots)
$scSplt2.Panel2.Controls.Add($lvList1)
$scSplt2.Panel1MinSize = 17
$scSplt2.SplitterDistance = 30
#
#tpPage1
#
$tpPage1.Controls.AddRange(@($rtbDesc))
$tpPage1.Text = "Specification"
#
#tpPage2
#
$tpPage2.Controls.AddRange(@($lvList2))
$tpPage2.Text = "Qualifiers"
#
#tvRoots
#
$tvRoots.ImageList = $imgList
$tvRoots.Select()
$tvRoots.Sorted = $true
$tvRoots.Add_AfterExpand({Get-SubNameSpaces $_.Node.Nodes})
$tvRoots.Add_AfterSelect({
$lvList1.Items.Clear()
Reset-AllMessages
if ($tvRoots.SelectedNode) {
$cur = 'root\' + $tvRoots.SelectedNode.FullPath
(New-Object Management.ManagementClass($cur, $obj)
).PSBase.GetSubclasses($enm) | % {
$itm = $lvList1.Items.Add($_.Name, 1)
}
$clone = ([Windows.Forms.ListViewItem[]]($lvList1.Items)).Clone()
$frmMain.Text = $cur + ' - WMI Explorer'
Get-ClassesNumber
}
})
#
#lvList1
#
$lvList1.LargeImageList = $imgList
$lvList1.TileSize = New-Object Drawing.Size(270, 19)
$lvList1.View = [Windows.Forms.View]::Tile
$lvList1.Add_Click({
Reset-AllMessages
for ($i = 0; $i -lt $lvList1.Items.Count; $i++) {
if ($lvList1.Items[$i].Selected) {
$path = $cur + ':' + $lvList1.Items[$i].Text
$frmMain.Text = $path + ' - WMI Explorer'
$rtbDesc.SelectionFont = $bol1
$rtbDesc.AppendText("$($lvList1.Items[$i].Text)`n") #class name
$wmi = (New-Object Management.ManagementClass($path, $obj)).PSBase
$rtbDesc.AppendText("$(
try {$wmi.Qualifiers.Item('Description').Value}
catch {'Class has not description.'}
)`n`n") #class description
$wmi.Methods | % {
$rtbDesc.SelectionColor = [Drawing.Color]::DarkMagenta
$rtbDesc.SelectionFont = $bol2
$rtbDesc.AppendText("$($_.Name)`n")
try {
$rtbDesc.AppendText("$((' ' * 3) + $_.PSBase.Qualifiers['Description'].Value)`n`n")
}
catch {}
} #class methods
$wmi.Properties | % {
$rtbDesc.SelectionColor = [Drawing.Color]::DarkGreen
$rtbDesc.SelectionFont = $bol2
$rtbDesc.AppendText("$(
$_.Name + ' (Type: ' + $_.Type + ', Local: ' + $_.IsLocal + ', Array: ' + $_.IsArray + ')'
)`n")
try {
$rtbDesc.AppendText("$(
$def = $_.PSBase.Qualifiers['Description'].Value
if (![String]::IsNullOrEmpty($def)) {
(' ' * 3) + $def
}
else {(' ' * 3) + 'Not described.'}
)`n`n") #property description
}
catch {}
} #class properties
if ($wmi.Derivation.Count -ne 0) {
$rtbDesc.SelectionColor = [Drawing.Color]::DarkBlue
$rtbDesc.SelectionFont = $bol2
$rtbDesc.AppendText("Derivation:`n")
$wmi.Derivation | % {
$rtbDesc.AppendText("$($_)`n")
}
} #class derivation
$wmi.Qualifiers | % {
$itm = $lvList2.Items.Add($_.Name, 2)
$itm.Subitems.Add($(if($_.Name -eq 'Description'){'See specification'}else{$_.Value.ToString()}))
$itm.Subitems.Add($_.IsAmended.ToString())
$itm.Subitems.Add($_.IsLocal.ToString())
$itm.Subitems.Add($_.IsOverridable.ToString())
$itm.Subitems.Add($_.PropagatesToInstance.ToString())
$itm.Subitems.Add($_.PropagatesToSubclass.ToString())
} #class qualifiers
} #if
} #for
$sbLbl_2.Text = "Methods: " + $wmi.Methods.Count.ToString()
$sbLbl_3.Text = "Properties: " + $wmi.Properties.Count.ToString()
})
#
#lvList2
#
$lvList2.Columns.AddRange(@($chCol_1, $chCol_2, $chCol_3, $chCol_4, $chCol_5, $chCol_6, $chCol_7))
$lvList2.SmallImageList = $imgList
$lvList2.View = [Windows.Forms.View]::Details
#
#frmMain
#
$frmMain.ClientSize = New-Object Drawing.Size(800, 600)
$frmMain.Controls.AddRange(@($scSplt1, $sbStrip, $tsStrip, $mnuMain))
$frmMain.Icon = $ico
$frmMain.MainMenuStrip = $mnuMain
$frmMain.StartPosition = [Windows.Forms.FormStartPosition]::CenterScreen
$frmMain.Text = "WMI Explorer"
$frmMain.Add_Load({
if (Get-UserStatus) {
Get-NameSpaces 'root' | % {$tvRoots.Nodes.Add($_)}
Get-SubNameSpaces $tvRoots.Nodes
$obj = New-Object Management.ObjectGetOptions
$enm = New-Object Management.EnumerationOptions
#both should be true
$obj.UseAmendedQualifiers = $true
$enm.EnumerateDeep = $true
$sbLbl_1.Text = "Ready"
}
else {
$sbLbl_1.Font = New-Object Drawing.Font("Microsoft Sans Serif", 8, [Drawing.FontStyle]::Bold)
$sbLbl_1.ForeColor = [Drawing.Color]::Crimson
$sbLbl_1.Text = ($usr.Name + ' is not an administrator.')
}
})
[void]$frmMain.ShowDialog()
}
function frmInfo_Show {
$frmInfo = New-Object Windows.Forms.Form
$pbImage = New-Object Windows.Forms.PictureBox
$lblName = New-Object Windows.Forms.Label
$lblCopy = New-Object Windows.Forms.Label
$btnExit = New-Object Windows.Forms.Button
#
#pbImage
#
$pbImage.Image = $ico.ToBitmap()
$pbImage.Location = New-Object Drawing.Point(16, 16)
$pbImage.Size = New-Object Drawing.Size(32, 32)
$pbImage.SizeMode = [Windows.Forms.PictureBoxSizeMode]::StretchImage
#
#lblName
#
$lblName.Font = $bol2
$lblName.Location = New-Object Drawing.Point(53, 19)
$lblName.Size = New-Object Drawing.Size(360, 18)
$lblName.Text = "WMI Explorer v2.37"
#
#lblCopy
#
$lblCopy.Location = New-Object Drawing.Point(67, 37)
$lblCopy.Size = New-Object Drawing.Size(360, 23)
$lblCopy.Text = "Copyright (C) 2013-2014 greg zakharov"
#
#btnExit
#
$btnExit.Location = New-Object Drawing.Point(135, 67)
$btnExit.Text = "OK"
#
#frmInfo
#
$frmInfo.AcceptButton = $btnExit
$frmInfo.CancelButton = $btnExit
$frmInfo.ClientSize = New-Object Drawing.Size(350, 110)
$frmInfo.ControlBox = $false
$frmInfo.Controls.AddRange(@($pbImage, $lblName, $lblCopy, $btnExit))
$frmInfo.FormBorderStyle = [Windows.Forms.FormBorderStyle]::FixedSingle
$frmInfo.ShowInTaskBar = $false
$frmInfo.StartPosition = [Windows.Forms.FormStartPosition]::CenterParent
$frmInfo.Text = "About..."
[void]$frmInfo.ShowDialog()
}
frmMain_Show