-
Notifications
You must be signed in to change notification settings - Fork 1
/
Windows-Patching-Assistant-3.2.Export.ps1
8704 lines (8455 loc) · 519 KB
/
Windows-Patching-Assistant-3.2.Export.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#------------------------------------------------------------------------
# Source File Information (DO NOT MODIFY)
# Source ID: ec428877-151e-4707-ab93-de5ec4e952b3
# Source File: Windows-Patching-Assistant-3.2.psf
#------------------------------------------------------------------------
#region File Recovery Data (DO NOT MODIFY)
<#RecoveryData:
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#>
#endregion
<#
.NOTES
--------------------------------------------------------------------------------
Code generated by: SAPIEN Technologies, Inc., PowerShell Studio 2017 v5.4.140
Generated on: 9/17/2017 11:55 PM
Generated by: Administrator
--------------------------------------------------------------------------------
.DESCRIPTION
GUI script generated by PowerShell Studio 2017
#>
#----------------------------------------------
#region Application Functions
#----------------------------------------------
#endregion Application Functions
#----------------------------------------------
# Generated Form Function
#----------------------------------------------
function Show-Windows-Patching-Assistant-3_2_psf {
#----------------------------------------------
#region Import the Assemblies
#----------------------------------------------
[void][reflection.assembly]::Load('System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089')
[void][reflection.assembly]::Load('System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
[void][reflection.assembly]::Load('System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a')
#endregion Import Assemblies
#----------------------------------------------
#region Define SAPIEN Types
#----------------------------------------------
try{
[ProgressBarOverlay] | Out-Null
}
catch
{
Add-Type -ReferencedAssemblies ('System.Windows.Forms', 'System.Drawing') -TypeDefinition @"
using System;
using System.Windows.Forms;
using System.Drawing;
namespace SAPIENTypes
{
public class ProgressBarOverlay : System.Windows.Forms.ProgressBar
{
public ProgressBarOverlay() : base() { SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); }
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == 0x000F)// WM_PAINT
{
if (Style != System.Windows.Forms.ProgressBarStyle.Marquee || !string.IsNullOrEmpty(this.Text))
{
using (Graphics g = this.CreateGraphics())
{
using (StringFormat stringFormat = new StringFormat(StringFormatFlags.NoWrap))
{
stringFormat.Alignment = StringAlignment.Center;
stringFormat.LineAlignment = StringAlignment.Center;
if (!string.IsNullOrEmpty(this.Text))
g.DrawString(this.Text, this.Font, Brushes.Black, this.ClientRectangle, stringFormat);
else
{
int percent = (int)(((double)Value / (double)Maximum) * 100);
g.DrawString(percent.ToString() + "%", this.Font, Brushes.Black, this.ClientRectangle, stringFormat);
}
}
}
}
}
}
public string TextOverlay
{
get
{
return base.Text;
}
set
{
base.Text = value;
Invalidate();
}
}
}
}
"@ -IgnoreWarnings | Out-Null
}
#endregion Define SAPIEN Types
#----------------------------------------------
#region Generated Form Objects
#----------------------------------------------
[System.Windows.Forms.Application]::EnableVisualStyles()
$formMain = New-Object 'System.Windows.Forms.Form'
$progressbaroverlayExiting = New-Object 'SAPIENTypes.ProgressBarOverlay'
$panel1 = New-Object 'System.Windows.Forms.Panel'
$checkboxAutoCCMClientActions = New-Object 'System.Windows.Forms.CheckBox'
$checkboxEnableCellHighlight = New-Object 'System.Windows.Forms.CheckBox'
$checkboxEnableOptions = New-Object 'System.Windows.Forms.CheckBox'
$groupboxOptions = New-Object 'System.Windows.Forms.GroupBox'
$checkboxRebootOptions = New-Object 'System.Windows.Forms.CheckBox'
$groupboxRebootOptions = New-Object 'System.Windows.Forms.GroupBox'
$checkboxAutoReboot = New-Object 'System.Windows.Forms.CheckBox'
$checkboxAutoPushSC = New-Object 'System.Windows.Forms.CheckBox'
$labelSetLoopRefreshInterv = New-Object 'System.Windows.Forms.Label'
$progressbaroverlay1 = New-Object 'SAPIENTypes.ProgressBarOverlay'
$UpdownRefresh = New-Object 'System.Windows.Forms.NumericUpDown'
$buttonExportResults = New-Object 'System.Windows.Forms.Button'
$groupboxStats = New-Object 'System.Windows.Forms.GroupBox'
$labelIteration = New-Object 'System.Windows.Forms.Label'
$textboxMemory = New-Object 'System.Windows.Forms.TextBox'
$richtextboxIteration = New-Object 'System.Windows.Forms.RichTextBox'
$textboxThreads = New-Object 'System.Windows.Forms.TextBox'
$labelMemory = New-Object 'System.Windows.Forms.Label'
$labelThreads = New-Object 'System.Windows.Forms.Label'
$groupboxLegend = New-Object 'System.Windows.Forms.GroupBox'
$richtextboxLegend = New-Object 'System.Windows.Forms.RichTextBox'
$labelDevelopedByRohinSidh = New-Object 'System.Windows.Forms.Label'
$splitcontainer1 = New-Object 'System.Windows.Forms.SplitContainer'
$textboxServerList = New-Object 'System.Windows.Forms.TextBox'
$buttonStop = New-Object 'System.Windows.Forms.Button'
$buttonBrowse = New-Object 'System.Windows.Forms.Button'
$labelServerList = New-Object 'System.Windows.Forms.Label'
$buttonStartJob = New-Object 'System.Windows.Forms.Button'
$textboxSearch = New-Object 'System.Windows.Forms.TextBox'
$buttonSearch = New-Object 'System.Windows.Forms.Button'
$buttonExit = New-Object 'System.Windows.Forms.Button'
$menustrip1 = New-Object 'System.Windows.Forms.MenuStrip'
$labelInstructions = New-Object 'System.Windows.Forms.Label'
$datagridviewResults = New-Object 'System.Windows.Forms.DataGridView'
$groupboxServerControl = New-Object 'System.Windows.Forms.GroupBox'
$buttonServerControlClose = New-Object 'System.Windows.Forms.Button'
$tabcontrolServerControl = New-Object 'System.Windows.Forms.TabControl'
$tabpageServerSelection = New-Object 'System.Windows.Forms.TabPage'
$progressbaroverlayMS = New-Object 'SAPIENTypes.ProgressBarOverlay'
$labelRDP = New-Object 'System.Windows.Forms.Label'
$comboboxRDP = New-Object 'System.Windows.Forms.ComboBox'
$buttonRDP = New-Object 'System.Windows.Forms.Button'
$labelAnyActionTakenOnThis = New-Object 'System.Windows.Forms.Label'
$richtextboxRebootComment = New-Object 'System.Windows.Forms.RichTextBox'
$buttonViewInstalledUpdates = New-Object 'System.Windows.Forms.Button'
$buttonForceReboot = New-Object 'System.Windows.Forms.Button'
$buttonUpdateHistory = New-Object 'System.Windows.Forms.Button'
$buttonInstallAllPatches = New-Object 'System.Windows.Forms.Button'
$datagridviewServerDetails = New-Object 'System.Windows.Forms.DataGridView'
$tabpageSoftwareCenter = New-Object 'System.Windows.Forms.TabPage'
$buttonSCData = New-Object 'System.Windows.Forms.Button'
$buttonRefreshClient = New-Object 'System.Windows.Forms.Button'
$labelNoDataToShow = New-Object 'System.Windows.Forms.Label'
$progressbaroverlaySC = New-Object 'SAPIENTypes.ProgressBarOverlay'
$buttonInstallAll = New-Object 'System.Windows.Forms.Button'
$buttonInstallSelected = New-Object 'System.Windows.Forms.Button'
$buttonRebootViaSC = New-Object 'System.Windows.Forms.Button'
$datagridviewSoftwareCenter = New-Object 'System.Windows.Forms.DataGridView'
$timerJobTracker = New-Object 'System.Windows.Forms.Timer'
$imagelistButtonBusyAnimation = New-Object 'System.Windows.Forms.ImageList'
$fileToolStripMenuItem = New-Object 'System.Windows.Forms.ToolStripMenuItem'
$toolsToolStripMenuItem = New-Object 'System.Windows.Forms.ToolStripMenuItem'
$exportTemplateFileToolStripMenuItem = New-Object 'System.Windows.Forms.ToolStripMenuItem'
$helpToolStripMenuItem = New-Object 'System.Windows.Forms.ToolStripMenuItem'
$instructionsToolStripMenuItem = New-Object 'System.Windows.Forms.ToolStripMenuItem'
$aboutToolStripMenuItem = New-Object 'System.Windows.Forms.ToolStripMenuItem'
$exitToolStripMenuItem = New-Object 'System.Windows.Forms.ToolStripMenuItem'
$clearAllCredentialsToolStripMenuItem = New-Object 'System.Windows.Forms.ToolStripMenuItem'
$labelScreenInfo = New-Object 'System.Windows.Forms.Label'
$InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState'
#endregion Generated Form Objects
#----------------------------------------------
# User Generated Script
#----------------------------------------------
#region Control Helper Functions
function Update-ComboBox
{
<#
.SYNOPSIS
This functions helps you load items into a ComboBox.
.DESCRIPTION
Use this function to dynamically load items into the ComboBox control.
.PARAMETER ComboBox
The ComboBox control you want to add items to.
.PARAMETER Items
The object or objects you wish to load into the ComboBox's Items collection.
.PARAMETER DisplayMember
Indicates the property to display for the items in this control.
.PARAMETER Append
Adds the item(s) to the ComboBox without clearing the Items collection.
.EXAMPLE
Update-ComboBox $combobox1 "Red", "White", "Blue"
.EXAMPLE
Update-ComboBox $combobox1 "Red" -Append
Update-ComboBox $combobox1 "White" -Append
Update-ComboBox $combobox1 "Blue" -Append
.EXAMPLE
Update-ComboBox $combobox1 (Get-Process) "ProcessName"
.NOTES
Additional information about the function.
#>
param
(
[Parameter(Mandatory = $true)]
[ValidateNotNull()]
[System.Windows.Forms.ComboBox]
$ComboBox,
[Parameter(Mandatory = $true)]
[ValidateNotNull()]
$Items,
[Parameter(Mandatory = $false)]
[string]
$DisplayMember,
[switch]
$Append
)
if (-not $Append)
{
$ComboBox.Items.Clear()
}
if ($Items -is [Object[]])
{
$ComboBox.Items.AddRange($Items)
}
elseif ($Items -is [System.Collections.IEnumerable])
{
$ComboBox.BeginUpdate()
foreach ($obj in $Items)
{
$ComboBox.Items.Add($obj)
}
$ComboBox.EndUpdate()
}
else
{
$ComboBox.Items.Add($Items)
}
$ComboBox.DisplayMember = $DisplayMember
}
function Update-DataGridView
{
<#
.SYNOPSIS
This functions helps you load items into a DataGridView.
.DESCRIPTION
Use this function to dynamically load items into the DataGridView control.
.PARAMETER DataGridView
The DataGridView control you want to add items to.
.PARAMETER Item
The object or objects you wish to load into the DataGridView's items collection.
.PARAMETER DataMember
Sets the name of the list or table in the data source for which the DataGridView is displaying data.
.PARAMETER AutoSizeColumns
Resizes DataGridView control's columns after loading the items.
#>
Param (
[ValidateNotNull()]
[Parameter(Mandatory = $true)]
[System.Windows.Forms.DataGridView]$DataGridView,
[ValidateNotNull()]
[Parameter(Mandatory = $true)]
$Item,
[Parameter(Mandatory = $false)]
[string]$DataMember,
[System.Windows.Forms.DataGridViewAutoSizeColumnMode]$AutoSizeColumns = 'None'
)
$DataGridView.SuspendLayout()
$DataGridView.DataMember = $DataMember
if ($Item -is [System.Data.DataSet] -and $Item.Tables.Count -gt 0)
{
$DataGridView.DataSource = $Item.Tables[0]
}
elseif ($Item -is [System.ComponentModel.IListSource]`
-or $Item -is [System.ComponentModel.IBindingList] -or $Item -is [System.ComponentModel.IBindingListView])
{
$DataGridView.DataSource = $Item
}
else
{
$array = New-Object System.Collections.ArrayList
if ($Item -is [System.Collections.IList])
{
$array.AddRange($Item)
}
else
{
$array.Add($Item)
}
$DataGridView.DataSource = $array
}
if ($AutoSizeColumns -ne 'None')
{
$DataGridView.AutoResizeColumns($AutoSizeColumns)
}
$DataGridView.ResumeLayout()
}
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
#region Search Function
function SearchGrid()
{
$RowIndex = 0
$ColumnIndex = 0
$seachString = $textboxSearch.Text
if($seachString -eq "")
{
return
}
<#
if($datagridviewResults.SelectedCells.Count -ne 0)
{
$startCell = $datagridviewResults.SelectedCells[0];
$RowIndex = $startCell.RowIndex
$ColumnIndex = $startCell.ColumnIndex + 1
}
#>
$columnCount = $datagridviewResults.ColumnCount
$rowCount = $datagridviewResults.RowCount
for(;$RowIndex -lt $rowCount; $RowIndex++)
{
$Row = $datagridviewResults.Rows[$RowIndex]
for(;$ColumnIndex -lt $columnCount; $ColumnIndex++)
{
$cell = $Row.Cells[$ColumnIndex]
if($null -ne $cell.Value -and $cell.Value.ToString().IndexOf($seachString, [StringComparison]::OrdinalIgnoreCase) -ne -1)
{
$datagridviewResults.CurrentCell = $cell
return
}
}
$ColumnIndex = 0
}
$datagridviewResults.CurrentCell = $null
[void][System.Windows.Forms.MessageBox]::Show("The search has reached the end of the grid.","String not Found")
}
#endregion
#region Local Functions
Function Select-Files ($StartDir)
{
$FList = New-Object system.windows.forms.openfiledialog
$FList.InitialDirectory = $StartDir
$FList.MultiSelect = $False
$FList.Filter = "CSV File (*.csv) | *.csv"
$FList.Title = "Please Select the FQDN List"
$FList.showdialog() | Out-Null
$FList.filenames
#$FileList = Select-Files -StartDir "C:\Downloads" -Filter "Excel Files (*.csv, *.xlsx)| *.csv; *.xlsx" -Multi $True
}
Function Save-Files
{
param (
[Parameter(Mandatory = $true,
Position = 0)]
$StartDir,
[Parameter(Mandatory = $false,
Position = 1)]
$DefaultName
)
$FList = New-Object System.Windows.Forms.SaveFileDialog
$FList.InitialDirectory = $StartDir
$FList.Filter = "CSV File (*.csv) | *.csv"
$FList.Title = "Save CSV File"
$FList.FileName = $DefaultName
$Selection = $FList.showdialog()
if ($Selection -ne "Cancel")
{
$FList.FileName
}
else
{
Return;
}
}
function Extract-Credentials ($ServerName)
{
$ServerInfoLine = $global:PatchingTable | Where-Object -Property FQDN -EQ $ServerName
$Credential = $ServerInfoLine.Credential
if ($Credential -ne $null)
{
Return $Credential
}
else
{
foreach ($Line in $global:InputInfo)
{
if ($Line.FQDN -eq $ServerName)
{
if ($Line.DomainUser -and $Line.Password)
{
#Create PSCredential Object
$Password = $Line.Password
$DomainUser = $Line.Domainuser
$SecurePassword = ConvertTo-SecureString "$Password" -AsPlainText -Force
$PSCredential = New-Object System.Management.Automation.PSCredential ($DomainUser, $SecurePassword)
Return $PSCredential
}
else
{
Return;
}
}
}
}
}
function Refresh-SoftwareCenterView ($ServerName)
{
$ServerInfoLine = $global:PatchingTable | Where-Object -Property FQDN -EQ $ServerName
$CCM_Data = $ServerInfoLine.SoftCenterData
$datagridviewSoftwareCenter.DataSource = $null
#Software Center Table
if ($CCM_Data -ne $null)
{
$labelNoDataToShow.Visible = $false
$x = Get-WmiObject Win32_OperatingSystem #for the convertodatetime() function
$i = 1
$SoftCenterTable = foreach ($Update in $CCM_Data)
{
$UpdateObj = New-Object -TypeName System.Management.Automation.PSObject
Add-Member -InputObject $UpdateObj -MemberType NoteProperty -Name Sl# -Value $i
Add-Member -InputObject $UpdateObj -MemberType NoteProperty -Name Select -Value $false
Add-Member -InputObject $UpdateObj -MemberType NoteProperty -Name ComputerName -Value $ServerInfoLine.FQDN
Add-Member -InputObject $UpdateObj -MemberType NoteProperty -Name Name -Value $Update.Name
Add-Member -InputObject $UpdateObj -MemberType NoteProperty -Name "Type" -Value "Update"
Add-Member -InputObject $UpdateObj -MemberType NoteProperty -Name Publisher -Value $Update.Publisher
$StartTime = $x.ConvertToDateTime($Update.StartTime)
$AvailableAfter = ($StartTime | Get-Date).ToShortDateString()
Add-Member -InputObject $UpdateObj -MemberType NoteProperty -Name AvailableAfter -Value $AvailableAfter
$Code = $Update.EvaluationState
$Status = Switch -Regex ($Code)
{
{ 0 .. 3 -contains $_ } { "Available" }
{ 4 .. 7 -contains $_ } { "Installing..." }
{ 8 .. 12 -contains $_ } { "Completed" }
{ 13 -contains $_ } { "Failed" }
{ 14 .. 23 -contains $Code } { "Waiting..." }
}
Add-Member -InputObject $UpdateObj -MemberType NoteProperty -Name Status -Value $Status