# 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