# encoding: ascii # api: powershell # title: Used USB Devices # description: Retrives USB devices from HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR # version: 0.1 # type: function # author: greg zakharov # license: CC0 # function: Get-CurrentUSBDevice # x-poshcode-id: 4691 # x-archived: 2013-12-13T12:50:11 # x-published: 2013-12-11T16:53:00 # # function Get-CurrentUSBDevice { $dgvGrid.Columns.Clear() $dt = New-Object Data.DataTable $dr = $dt.NewRow() (gp $hash[$tsCombo.SelectedItem]).PSBase.Properties | % { if ($_.TypeNameOfValue -ne 'System.String[]') { $dc = New-Object Data.DataColumn $dc.ColumnName = $_.Name $dt.Columns.Add($dc) $dr.Item($_.Name) = $_.Value } } $dt.Rows.Add($dr) $dgvGrid.DataSource = $dt } function frmMain_Show { Add-Type -Assembly System.Windows.Forms [Windows.Forms.Application]::EnableVisualStyles() $ico = [Drawing.Icon]::ExtractAssociatedIcon(($PSHome + '\powershell.exe')) $frmMain = New-Object Windows.Forms.Form $tsStrip = New-Object Windows.Forms.ToolStrip $tsLabel = New-Object Windows.Forms.ToolStripLabel $tsCombo = New-Object Windows.Forms.ToolStripComboBox $dgvGrid = New-Object Windows.Forms.DataGridView $sbStrip = New-Object Windows.Forms.StatusStrip $sbLabel = New-Object Windows.Forms.ToolStripLabel # #common # $tsStrip.Items.AddRange(@($tsLabel, $tsCombo)) $tsLabel.Text = "Registry Path:" # #tsCombo # gp HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR\*\* | % {$hash = @{}}{ $itm = $_.PSPath -split '\\';$itm = $itm[($itm.Count - 2)..($itm.Count - 1)] -join "\" [void]$tsCombo.Items.Add($itm) $hash[$itm] = $_.PSPath } $tsCombo.SelectedIndex = 0 $tsCombo.Size = New-Object Drawing.Size(483, 23) $tsCombo.Add_SelectedIndexChanged({Get-CurrentUSBDevice}) # #dgvGrid # $dgvGrid.AutoSizeColumnsMode = "AllCells" $dgvGrid.Dock = "Fill" $dgvGrid.SelectionMode = "FullRowSelect" # #sbStrip # $sbStrip.Items.AddRange(@($sbLabel)) $sbStrip.SizingGrip = $false # #sbLabel # $sbLabel.ForeColor = [Drawing.Color]::DarkBlue $sbLabel.Text = "mailto:grishanz@yandex.ru" # #frmMain # $frmMain.ClientSize = New-Object Drawing.Size(570, 132) $frmMain.Controls.AddRange(@($dgvGrid, $sbStrip, $tsStrip)) $frmMain.FormBorderStyle = "FixedSingle" $frmMain.Icon = $ico $frmMain.MainMenuStrip = $mnuMain $frmMain.StartPosition = "CenterScreen" $frmMain.Text = "USB Devices" $frmMain.Add_Load({Get-CurrentUSBDevice}) [void]$frmMain.ShowDialog() } frmMain_Show