5286cb37-dda1-463b-8642-289125c81d61
iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAB7oSURBVHhe7d1ZcJV3nt/hucnU5CaXycUkVUkq
d8lcpSqVqVQlVVlmqqZ7MpPpzOLpnkn3uI2Nd9PewRtgjGnD4A2wu73bYIPBLEYgQAIhhBA7EkiI
TdJZdLSABALaS7f9y/seYMZjq8PrNiit9zyfqqckHekcHRUX/+85aPkNSZIkSZIkSZIkSZIkSZIk
SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk
SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk
SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk
SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk
SZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk
SZIkSZIkSZIkSZIk1W7zf+u3frPxD//wDxtnz5nbOGvWnMaZAMCkMnv23MYZM2Y0/pt//a8ak7M9
9f/uN3/zH+2+8657orG1PQ73nokjfSPVlwDA9dOZnLddxbPXzNHSueg4NRzvrlwXv/M7/y4uH/O/
vG9/69uNDTvbo617IBr3nUgcv/wSALgeth04GfW7umLl5n3XzKqG/cltn4z23pH42+cWXX0AzHlq
XmO6HLYmd6bp4CkA4DranmjYezyWrW2JdQ37Ym1ycK+tvrxk/baDsaG5IzZsb491jQcuX74/6pra
q5fXNR2qvv3F66Rvf1C/O1bU7Yo9xwejsXl3hgEwZ27jsf6x6p1qPtQDAFxHO9p7o761K1asb422
rmJ1EFyRvm9DS0e8saohlq7bXr1s5+FC1YqNu+KNlVtiTePeaOnoS97X83fXa0peb0ksXdMS+44P
RX3DjqsPgNmzn2o8Vh6L7Yd6q5+45XApWo+Ukk9WTD7BpcsAgGsjPbw3t3XHyo27k7O2r/pfAlv3
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
BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAb
BkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcA
AJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEA
ZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAA
uWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2
BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAb
BkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcA
AJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEA
ZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAA
uWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2
BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAb
BkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcA
AJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEA
ZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAA
uWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2
BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAb
BkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcA
AJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEA
ZGcAAJAbBkB2BgAAuWEAZGcAAJAbBkB2BgAAuWEAZDdhA2B4eDhuvvnmWL16daxbtw4Arrm6urpY
smRJPPzwwwbAVUzYABgZGYk/+qM/qq6y6dOnA8A19+ijj8aUKVPi9ttvj7TxziQumZABcC75+PPn
z1efnlm0aBEAXDeLFy+OxsbGuHjx4rhnEpdMyAC4In06RpKk692nn34ao6Oj455FXDKhAwAA+PVg
AABADTIAAKAGGQAAUIMMAACoQQYAANQgAwAAapABAAA1yAAAgBpkAABADTIAAKAGGQAAUIMMAACo
QQYAANQgAwAAapABAAA1yAAAgBpkAABADTIAAKAGGQAAUIMMAACoQQYAANQgAwAAapABAAA1yAAA
gMtGR8/GpxfPRXw6Nvl9MhbnxvkarzAAAOCyn104F9uODsdTG8rxcF05ZiQvJ5vpyf1+LLG4uRJn
Ri4d9ON9rQYAAFwWPx+LKe8X4p88cCS+/ZPu+O+LJ5/ff6k7/sOCrvjHM45GeWg0Lo6Nf2YbAABw
WfrU+Y3Li/FXbx+LOF+MscHCpPPzM4XY09Ub/2LOsSgaAABwdekA+OGKYvzZ68fiwlAh+vr6rplC
oXDZlcu+/Pq1+XyD5b5oONhjAABAVtdjAPT29kVlYDD6i73R3Z0cypXBqJSLUSiWolwqRm9y+A8O
DkRfz6noST52vNv4OgwAAPiarscAqAwMxMEd6+LeO2+OGQ/fH9OeWBCdxaFoW70kXli0Mi58fD6W
Pfto3HT7nOg4VY5y8Zt9XgMAAL6maz0ACqX+6D++K27/wffipfV749zZkVi75NG4/ZlXo/6NOTF7
1sux/u2FcfNdj8euzp7qMwPj3c7XYQAAwNd0rQdAeWA4Dnz4Rtx4y4IoJQdxqTQYla7muG/qzFj6
6jPx3f/yn+M//vvfi1V7CnHx7GD09vaOeztfhwEAAF/TtR4ApcpgdDW9H9///gNxZOh8nD//URT2
rEke8T8Z778yN26dMiM+eHNh/Pn/uT+6K2djoFyI3nFu5+swAADga7rm3wNQKMbwwKl4btZdMfXh
p2Nj3eqYMW1qvLh+R2x77YmY/ugr8fFnH8WLD94Y37/3qThWGIiS7wEAgIl1Pb4JsFAsx1B/T6x6
44VYsGB+vF23I86MjMbhtq3R2NgapYHT0X+qPd5+fXHs7uzzTYAAMNGuxwCoKhRj6PRo9W8NnB6s
VP+vv9Q/EAMD/cnrPdWRcPrMSHL49/kvAACYaOkAuDEZADe8eSx+MVKoHqaTzbnBvmjuMAAAILN0
APzN8mL83uLu6DjWG9vbeyadts6eeLP5ZPzTWd0GAABk8fknY/FEfSn+2fSu5BF0d/zzSeq3Z3bH
v51/IgaGDQAAuKpzyaE4dGY0CgOj0TOJ9Q6MVP8S4Hhf4xUGAAB8wfnkYLx4/tzkNzb+13eFAQAA
NcgAAIAaZAAAQA0yAACgBhkAAFCDfqUBMDZ27tIVAYBJ6cLY2Tj/ccYBMPvJuVs/ikgWw2fV1QAA
TE4XEumZ3tx28OoDYNq0H7Xu2tsRW5raqosBAJi80sP/naXLrz4AJEmSJEmSJEmSJEmSJEmSJEmS
JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS
JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS
JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS
JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS
JEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmS
JEmSJEmSJEmSJEmSlIt+4zf+L7WWhldjTtp/AAAAAElFTkSuQmCC
$datagridview1.DataSource = ConvertTo-DataTable $data
}
$buttonExportCsv_Click = {
$savefiledialog1.AddExtension='csv'
if ('Ok' -eq $savefiledialog1.ShowDialog()) {
$FilePath = Select-Folder -Description 'Select Billing Invoice ROOT folder' -RootFolder Desktop
$datagridview1.SelectedRows |
Select-Object -expand DataBoundItem |
Export-csv "$FilePath\PingResults.csv" -notype
}
}
$datagridview1_RowPostPaint=[System.Windows.Forms.DataGridViewRowPostPaintEventHandler]{
if($datagridview1.Rows[0].HeaderCell.Value){
if([int]($datagridview1.Rows[$_.RowIndex].HeaderCell.Value - 1) -ne [int]($_.RowIndex)){
$datagridview1.Rows[$_.RowIndex].HeaderCell.Value = ($_.RowIndex + 1).ToString()
}
}else{
# this is to accommodate the first row issue
$datagridview1.Rows[0].HeaderCell.Value = '1'
}
}
$buttonColumns_Click={
$datagridview1.SelectedRows |
ForEach-Object{
Write-Host ('{0}|{1}|{2}' -f ($_.Cells['name'].Value),($_.Cells['length'].Value), ($_.Cells['Fullname'].Value))
}
}
#region Control Helper Functions
function ConvertTo-DataTable {
<#
.SYNOPSIS
Converts objects into a DataTable.
.DESCRIPTION
Converts objects into a DataTable, which are used for DataBinding.
.PARAMETER InputObject
The input to convert into a DataTable.
.PARAMETER Table
The DataTable you wish to load the input into.
.PARAMETER RetainColumns
This switch tells the function to keep the DataTable's existing columns.
.PARAMETER FilterWMIProperties
This switch removes WMI properties that start with an underline.
.EXAMPLE
$DataTable = ConvertTo-DataTable -InputObject (Get-Process)
#>
[OutputType([System.Data.DataTable])]
param (
[ValidateNotNull()]
$InputObject,
[ValidateNotNull()]
[System.Data.DataTable]$Table,
[switch]$RetainColumns,
[switch]$FilterWMIProperties)
if ($null -eq $Table) {
$Table = New-Object System.Data.DataTable
}
if ($InputObject -is [System.Data.DataTable]) {
$Table = $InputObject
} elseif ($InputObject -is [System.Data.DataSet] -and $InputObject.Tables.Count -gt 0) {
$Table = $InputObject.Tables[0]
} else {
if (-not $RetainColumns -or $Table.Columns.Count -eq 0) {
#Clear out the Table Contents
$Table.Clear()
if ($null -eq $InputObject) { return } #Empty Data
$object = $null
#find the first non null value
foreach ($item in $InputObject) {
if ($null -ne $item) {
$object = $item
break
}
}
if ($null -eq $object) { return } #All null then empty
#Get all the properties in order to create the columns
foreach ($prop in $object.PSObject.Get_Properties()) {
if (-not $FilterWMIProperties -or -not $prop.Name.StartsWith('__')) #filter out WMI properties
{
#Get the type from the Definition string
$type = $null
if ($null -ne $prop.Value) {
try { $type = $prop.Value.GetType() } catch { Out-Null }
}
if ($null -ne $type) # -and [System.Type]::GetTypeCode($type) -ne 'Object')
{
[void]$table.Columns.Add($prop.Name, $type)
} else #Type info not found
{
[void]$table.Columns.Add($prop.Name)
}
}
}
if ($object -is [System.Data.DataRow]) {
foreach ($item in $InputObject) {
$Table.Rows.Add($item)
}
return @( ,$Table)
}
} else {
$Table.Rows.Clear()
}
foreach ($item in $InputObject) {
$row = $table.NewRow()
if ($item) {
foreach ($prop in $item.PSObject.Get_Properties()) {
if ($table.Columns.Contains($prop.Name)) {
$row.Item($prop.Name) = $prop.Value
}
}
}
[void]$table.Rows.Add($row)
}
}
return @( ,$Table)
}
#endregion
]]>
1
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089