-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfromsccm.psf
955 lines (817 loc) · 34.9 KB
/
fromsccm.psf
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
<File version="3.2">
<FileID>37610e7f-4548-4774-be31-339a1d8ce5db</FileID>
<Preview>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
xgCwinrZBwF+m9nz+Tafl2972cvunLeptbVFLa1tz53uZbfBAEBEbo0BYBVlBwC7+NtXtrN7y/ZV
7lxfS6vazF5+u7m+LQt9/2uyr5poXzZ5/gBg/9HYfzDx8fF6+PAhEdGKLCoqSlevXtWBAwcYANye
XcTsnm95ebkzBNDXZ98PoLm5+bkBwP6jeffdd7V161Zt3ryZiGjFtm7dOu3bt48BYDXk9/udxcx+
pK9v7mc19/Ozbw9sH59gb0mxdw0QEa3k6urqnMdovfjW5/NjACCazQ4EgUCAiMgVzd3CuVgMAERE
RKswBgAiIqJVGAMAERHRKowBgIiIaBXGAEBERLQK+0YDgK3B61ez2QgRERGtnOpn1/FXHgBqbWaC
ICIiopXT3Dr+0gPAmZDQ8MEZOScgIiKilV3b0FPVtvV9/QCwd/+BxI7eUWdaICIiopWdXfyLKxq/
fgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACv5Hvf+//4
Di/ZOEi1RwAAAABJRU5ErkJggg==</Preview>
<Form>P6Tz1HDOfR8AACODCAAAAAAABADVWW1P4zgQ/n7S/QcrnyPIS0vbVYm0ZJdjdfQWEY79uHISw/pI7Mpxl3Z/
/Y3jFgoprd3XRVRRXzKe8czzPJkx/a/pfySTVfTnHwj19QckJ0Ny6iSTSpLy6BtlOX+sjs65KPXV
RYt+ctEtERXl7LR15Kk/F8WjQo4EOWVkJAUuXHQ1Sgua/U0mN/yBsNO008HtrH3i98IW8bo9BzFc
guc7WO9jnp8LXiZxPHBQ9oMWuQALJ+ZMCl5UTh0whHwl+JAIOZmafhxJnmS4IJ9oSZgKB271IZbA
6x/P7l1lO+A5caJzcLXSJi4oYTKhv8DAD72ui9ped6XVAIt7ypyo46ITF6nrSpN/4OpErzKz0iqR
WMgrXlEJmXCiGGIl4gpDKldv7YaMpROBN3QH7tBif59/wlJTg0uO80aI39W3/eP6vpnRapgp32d8
vHOkybFM+Tguv2HBKLtfhrRmgs5w9hDzggtIrL65kZ+mkUKVEw1oJnjF7yRKMKtQQgS9c1F32KzK
ohUEmbq9JrmBwSXPsK5/EAIRer6BzQyhbQC0fpkYQRVoQRkA9UaMiIGFRvWrKhjYacK1QqCO7zeZ
vQDMOP3CcjKGHLSaKD7WiDTHZ8zLlO8DoJlyBMmB9WFNO3yqWLCUkNHPDKcFyY3L8gW2NLcw3KC+
eZmQRApY2UVllXFR0HQbm478rtfrHytnh3DeO6DzwDukc//CP6Tz4HDOg4ZzK0UN2/DIb/nBriRV
C+RLFTDWR98LQO+b7chSeQy3II+XOCXFzrWxSIt1ZLFu8+r8GKrh3POzE6pqm2R0Vm2AB2xRXY2r
/bQv40Kf9BY2uEvrbAJZ3QLqYD5sARdnIyk52zkwUsmgA40H16SCFSrJr8mQ24FkruY1w9vNrmGr
DF8YsnH9Aw+chSbengFgJAtPI8A0LiQ5Mozs34rc0mqEi0ROCjLXK7/FuvlRAsaq7OGNrHyvf3w1
UlhD8ROW+C9B81tKHnffxZVC7+AePK6nVpC8Ucmq6WhKC5NZQ9tcEJzDRi4Ivf9RT6p6jdnCVgLY
UgLo75gLL7JlYHXNH6d7BMBRaHQhQbioTHam6dP1Ib5Wx44/nXelh2oKVyP58tOUpZ1OPWwZicxm
OvgcqnmjE9jrX/PI5S390ycY+xK85+1vR+j2fJQyUHWshjgj6wLND+GB27PRmG7dYKmX7ZHDc7TG
WAsD1VQboecJa01k/rY9tfKyZgk3aazVY8Uz6WA36atf7M1iigqtu2sT9GpxeYpnG/31vrmeUAmN
Sb4Z1a1a6w2oPgt2p0x/R9Oz8rJeATck+sk+eG5d7W7HfoY2ZrmKBqlw3iXLifhpe8jyiuNWI8Mm
HK9D3SnDm/89+b0ZrjKyV3oHNiPC2vRW2zI/H7N/ghvdrbldY24Fsec+zN5W0f85a30qfR8AAA==</Form>
<Code><![CDATA[
$formAddFromSCCM_Load = {
$labelGridAddedToRepo.Visible = $false
$script:cmresultsdatatable = [System.Data.DataTable]::New()
#create driver column with check box
$drivercolumn = New-Object System.Data.DataColumn;
$drivercolumn.DataType = [System.Type]::GetType("System.Boolean");
$drivercolumn.ColumnName = "Add";
$cmresultsdatatable.Columns.Add($drivercolumn);
$cmresultsdatatable.Columns.Add('Platform')
$cmresultsdatatable.Columns.Add('Model')
#create driver column with check box
$drivercolumn = New-Object System.Data.DataColumn;
$drivercolumn.DataType = [System.Type]::GetType("System.Boolean");
$drivercolumn.ColumnName = "Drivers";
$cmresultsdatatable.Columns.Add($drivercolumn);
#create bios column with check box
$bioscolumn = New-Object System.Data.DataColumn;
$bioscolumn.DataType = [System.Type]::GetType("System.Boolean");
$bioscolumn.ColumnName = "Bios";
$cmresultsdatatable.Columns.Add($bioscolumn);
#create firmware column with check box
$firmwarecolumn = New-Object System.Data.DataColumn;
$firmwarecolumn.DataType = [System.Type]::GetType("System.Boolean");
$firmwarecolumn.ColumnName = "Firmware";
$cmresultsdatatable.Columns.Add($firmwarecolumn);
#create software column with check box
$softwarecolumn = New-Object System.Data.DataColumn;
$softwarecolumn.DataType = [System.Type]::GetType("System.Boolean");
$softwarecolumn.ColumnName = "Software";
$cmresultsdatatable.Columns.Add($softwarecolumn);
#create addons column with check box
$addonscolumn = New-Object System.Data.DataColumn;
$addonscolumn.DataType = [System.Type]::GetType("System.Boolean");
$addonscolumn.ColumnName = "Addons";
$cmresultsdatatable.Columns.Add($addonscolumn);
#assign the data table to the datagrid
$cmresultsgrid.DataSource = $cmresultsdatatable
$cmresultsgrid.AllowUserToAddRows = $false;
$cmresultsgrid.AutoSizeColumnsMode = 'AllCells'
$txtboxCmWarning.Text = "If you click add to repository it will clear all current filters from the repository and replace them with these. This can take a while to run, up to a few minutes depending on how large your database is and during this time the form will freeze."
}
#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 ValueMember
Indicates the property to use for the value of the 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,
[Parameter(Mandatory = $false)]
[string]$ValueMember,
[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)
}
if ($DisplayMember)
{
$ComboBox.DisplayMember = $DisplayMember
}
if ($ValueMember)
{
$ComboBox.ValueMember = $ValueMember
}
}
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.DataGridViewAutoSizeColumnsMode]$AutoSizeColumns = 'None'
)
$DataGridView.SuspendLayout()
$DataGridView.DataMember = $DataMember
if ($null -eq $Item)
{
$DataGridView.DataSource = $null
}
elseif ($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 FilterCIMProperties
This switch removes CIM properties that start with an underline.
.EXAMPLE
$DataTable = ConvertTo-DataTable -InputObject (Get-Process)
#>
[OutputType([System.Data.DataTable])]
param(
$InputObject,
[ValidateNotNull()]
[System.Data.DataTable]$Table,
[switch]$RetainColumns,
[switch]$FilterCIMProperties)
if($null -eq $Table)
{
$Table = New-Object System.Data.DataTable
}
if ($null -eq $InputObject)
{
$Table.Clear()
return @( ,$Table)
}
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 $FilterCIMProperties -or -not $prop.Name.StartsWith('__')) #filter out CIM 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)
}
function Update-Chart
{
<#
.SYNOPSIS
This functions helps you plot points on a chart.
.DESCRIPTION
Use the function to plot points on a chart or add more charts to a chart control.
.PARAMETER ChartControl
The Chart Control you when to add points to.
.PARAMETER XPoints
Set the X Axis Points. These can be strings or numerical values.
.PARAMETER YPoints
Set the Y Axis Points. These can be strings or numerical values.
.PARAMETER XTitle
Set the Title for the X Axis.
.PARAMETER YTitle
Set the Title for the Y Axis.
.PARAMETER Title
Set the Title for the chart.
.PARAMETER ChartType
Set the Style of the chart. See System.Windows.Forms.DataVisualization.Charting.SeriesChartType Enum.
.PARAMETER SeriesIndex
Set the settings of a particular Series and corresponding ChartArea.
.PARAMETER TitleIndex
Set the settings of a particular Title.
.PARAMETER SeriesName
Set the settings of a particular Series using its name and corresponding ChartArea.
The Series will be created if not found.
If SeriesIndex is set, it will replace the Series' name if the Series does not exist.
.PARAMETER Enable3D
The chart will be rendered in 3D.
.PARAMETER Disable3D
The chart will be rendered in 2D.
.PARAMETER AppendNew
When this switch is used, a new ChartArea is added to Chart Control.
.NOTES
Additional information about the function.
.LINK
http://www.sapien.com/blog/2011/05/05/primalforms-2011-designing-charts-for-powershell/
#>
param
(
[Parameter(Mandatory = $true, Position = 1)]
[ValidateNotNull()]
[System.Windows.Forms.DataVisualization.Charting.Chart]$ChartControl,
[Parameter(Mandatory = $true, Position = 2)]
[ValidateNotNull()]
$XPoints,
[Parameter(Mandatory = $true, Position = 3)]
[ValidateNotNull()]
$YPoints,
[Parameter(Mandatory = $false, Position = 4)]
[string]$XTitle,
[Parameter(Mandatory = $false, Position = 5)]
[string]$YTitle,
[Parameter(Mandatory = $false, Position = 6)]
[string]$Title,
[Parameter(Mandatory = $false, Position = 7)]
[System.Windows.Forms.DataVisualization.Charting.SeriesChartType]$ChartType,
[Parameter(Mandatory = $false, Position = 8)]
[int]$SeriesIndex = -1,
[Parameter(Mandatory = $false, Position = 9)]
[int]$TitleIndex = 0,
[Parameter(Mandatory = $false)]
[string]$SeriesName = $null,
[switch]$Enable3D,
[switch]$Disable3D,
[switch]$AppendNew
)
$ChartAreaIndex = 0
if ($AppendNew)
{
$name = "ChartArea " + ($ChartControl.ChartAreas.Count + 1).ToString();
$ChartArea = $ChartControl.ChartAreas.Add($name)
$ChartAreaIndex = $ChartControl.ChartAreas.Count - 1
$name = "Series " + ($ChartControl.Series.Count + 1).ToString();
$Series = $ChartControl.Series.Add($name)
$SeriesIndex = $ChartControl.Series.Count - 1
$Series.ChartArea = $ChartArea.Name
}
else
{
if ($ChartControl.ChartAreas.Count -eq 0)
{
$name = "ChartArea " + ($ChartControl.ChartAreas.Count + 1).ToString();
[void]$ChartControl.ChartAreas.Add($name)
$ChartAreaIndex = $ChartControl.ChartAreas.Count - 1
}
if ($ChartControl.Series.Count -eq 0)
{
if (-not $SeriesName)
{
$SeriesName = "Series " + ($ChartControl.Series.Count + 1).ToString();
}
$Series = $ChartControl.Series.Add($SeriesName)
$SeriesIndex = $ChartControl.Series.Count - 1
$Series.ChartArea = $ChartControl.ChartAreas[$ChartAreaIndex].Name
}
elseif ($SeriesName)
{
$Series = $ChartControl.Series.FindByName($SeriesName)
if ($null -eq $Series)
{
if (($SeriesIndex -gt -1) -and ($SeriesIndex -lt $ChartControl.Series.Count))
{
$Series = $ChartControl.Series[$SeriesIndex]
$Series.Name = $SeriesName
}
else
{
$Series = $ChartControl.Series.Add($SeriesName)
$SeriesIndex = $ChartControl.Series.Count - 1
}
$Series.ChartArea = $ChartControl.ChartAreas[$ChartAreaIndex].Name
}
else
{
$SeriesIndex = $ChartControl.Series.IndexOf($Series)
$ChartAreaIndex = $ChartControl.ChartAreas.IndexOf($Series.ChartArea)
}
}
}
if (($SeriesIndex -lt 0) -or ($SeriesIndex -ge $ChartControl.Series.Count))
{
$SeriesIndex = 0
}
$Series = $ChartControl.Series[$SeriesIndex]
$Series.Points.Clear()
$ChartArea = $ChartControl.ChartAreas[$Series.ChartArea]
if ($Enable3D)
{
$ChartArea.Area3DStyle.Enable3D = $true
}
elseif ($Disable3D)
{
$ChartArea.Area3DStyle.Enable3D = $false
}
if ($Title)
{
if ($ChartControl.Titles.Count -eq 0)
{
#$name = "Title " + ($ChartControl.Titles.Count + 1).ToString();
$TitleObj = $ChartControl.Titles.Add($Title)
$TitleIndex = $ChartControl.Titles.Count - 1
$TitleObj.DockedToChartArea = $ChartArea.Name
$TitleObj.IsDockedInsideChartArea = $false
}
$ChartControl.Titles[$TitleIndex].Text = $Title
}
if ($ChartType)
{
$Series.ChartType = $ChartType
}
if ($XTitle)
{
$ChartArea.AxisX.Title = $XTitle
}
if ($YTitle)
{
$ChartArea.AxisY.Title = $YTitle
}
if ($XPoints -isnot [Array] -or $XPoints -isnot [System.Collections.IEnumerable])
{
$array = New-Object System.Collections.ArrayList
$array.Add($XPoints)
$XPoints = $array
}
if ($YPoints -isnot [Array] -or $YPoints -isnot [System.Collections.IEnumerable])
{
$array = New-Object System.Collections.ArrayList
$array.Add($YPoints)
$YPoints = $array
}
$Series.Points.DataBindXY($XPoints, $YPoints)
}
function Clear-Chart
{
<#
.SYNOPSIS
This function clears the contents of the chart.
.DESCRIPTION
Use the function to remove contents from the chart control.
.PARAMETER ChartControl
The Chart Control to clear.
.PARAMETER LeaveSingleChart
Leaves the first chart and removes all others from the control.
.LINK
http://www.sapien.com/blog/2011/05/05/primalforms-2011-designing-charts-for-powershell/
#>
Param (
[ValidateNotNull()]
[Parameter(Position=1,Mandatory=$true)]
[System.Windows.Forms.DataVisualization.Charting.Chart]$ChartControl
,
[Parameter(Position=2, Mandatory=$false)]
[Switch]$LeaveSingleChart
)
$count = 0
if($LeaveSingleChart)
{
$count = 1
}
while($ChartControl.Series.Count -gt $count)
{
$ChartControl.Series.RemoveAt($ChartControl.Series.Count - 1)
}
while($ChartControl.ChartAreas.Count -gt $count)
{
$ChartControl.ChartAreas.RemoveAt($ChartControl.ChartAreas.Count - 1)
}
while($ChartControl.Titles.Count -gt $count)
{
$ChartControl.Titles.RemoveAt($ChartControl.Titles.Count - 1)
}
if($ChartControl.Series.Count -gt 0)
{
$ChartControl.Series[0].Points.Clear()
}
}
#endregion
$btnLoadFromCM_Click = {
$SiteCode = $txtboxCMSiteCode.Text
$sccmNameSpace = $txtboxCMNamespace.Text
$sccmServer = $txtboxCMServer.Text
$WQLquery = "SELECT * FROM SMS_G_System_COMPUTER_SYSTEM WHERE Manufacturer = 'HP'"
$modelnames = Get-WmiObject -Query $WQLquery -ComputerName "apwmad0p2147" -Namespace "root\sms\site_1NR" | Select-Object -ExpandProperty "Model" -Unique
foreach ($device in $modelnames)
{
$platform = get-hpdevicedetails -name "*$device*" | Select-Object -ExpandProperty Systemid
foreach ($name in $platform)
{
$model = $device
$platform = $name
$cmresultsdatatable.Rows.Add($true, $platform, $model, $true, $true, $true, $false, $false)
}
}
}
$btnAddCMResultstoRepo_Click={
$currentfilters = (Get-RepositoryInfo).Filters
foreach ($filter in $currentfilters)
{
Set-Location -Path $repositorypath
$platform = $filter.platform
Remove-RepositoryFilter -Platform $platform -Yes
}
foreach ($pc in $cmresultsdatatable)
{
if (($pc.add) -eq $true)
{
$catarray = @()
if (($pc.Drivers) -eq $true)
{
$catarray += "Driver"
}
if (($pc.BIOS) -eq $true)
{
$catarray += "BIOS"
}
if (($pc.Firmware) -eq $true)
{
$catarray += "Firmware"
}
if (($pc.Software) -eq $true)
{
$catarray += "Software"
}
if (($pc.Addons) -eq $true)
{
$catarray += "Addons"
}
$platform = $pc.platform
$osver = $comboboxWinVer.SelectedItem
Add-RepositoryFilter -Platform $platform -os "win10" -OsVer $osver -Category $catarray
Add-Logs "$platform added to repo..."
}
}
$formAddFromSCCM.Close()
}
]]></Code>
<Mode>1</Mode>
<Assemblies />
</File>