boris 1.0.0.beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. data/LICENSE.md +9 -0
  2. data/README.md +94 -0
  3. data/boris.gemspec +28 -0
  4. data/doc/Array.html +437 -0
  5. data/doc/Boris.html +230 -0
  6. data/doc/Boris/ConnectionAlreadyActive.html +123 -0
  7. data/doc/Boris/ConnectionFailed.html +127 -0
  8. data/doc/Boris/Connector.html +794 -0
  9. data/doc/Boris/InvalidCredentials.html +131 -0
  10. data/doc/Boris/InvalidOption.html +123 -0
  11. data/doc/Boris/InvalidTargetName.html +123 -0
  12. data/doc/Boris/Lumberjack.html +466 -0
  13. data/doc/Boris/MissingCredentials.html +123 -0
  14. data/doc/Boris/NoActiveConnection.html +123 -0
  15. data/doc/Boris/NoProfileDetected.html +123 -0
  16. data/doc/Boris/Options.html +783 -0
  17. data/doc/Boris/Profiles.html +117 -0
  18. data/doc/Boris/Profiles/Linux.html +1151 -0
  19. data/doc/Boris/Profiles/RedHat.html +875 -0
  20. data/doc/Boris/Profiles/Solaris.html +1230 -0
  21. data/doc/Boris/Profiles/Structure.html +2050 -0
  22. data/doc/Boris/Profiles/UNIX.html +893 -0
  23. data/doc/Boris/Profiles/Windows.html +1846 -0
  24. data/doc/Boris/Profiles/Windows/Windows2003.html +304 -0
  25. data/doc/Boris/Profiles/Windows/Windows2008.html +379 -0
  26. data/doc/Boris/Profiles/Windows/Windows2012.html +304 -0
  27. data/doc/Boris/SNMPConnector.html +512 -0
  28. data/doc/Boris/SSHConnector.html +633 -0
  29. data/doc/Boris/Target.html +2002 -0
  30. data/doc/Boris/WMIConnector.html +1134 -0
  31. data/doc/BorisLogger.html +217 -0
  32. data/doc/Hash.html +195 -0
  33. data/doc/String.html +1246 -0
  34. data/doc/_index.html +420 -0
  35. data/doc/class_list.html +53 -0
  36. data/doc/css/common.css +1 -0
  37. data/doc/css/full_list.css +57 -0
  38. data/doc/css/style.css +328 -0
  39. data/doc/file.README.html +183 -0
  40. data/doc/file_list.html +55 -0
  41. data/doc/frames.html +28 -0
  42. data/doc/index.html +183 -0
  43. data/doc/js/app.js +214 -0
  44. data/doc/js/full_list.js +173 -0
  45. data/doc/js/jquery.js +4 -0
  46. data/doc/method_list.html +1468 -0
  47. data/doc/top-level-namespace.html +126 -0
  48. data/lib/boris.rb +30 -0
  49. data/lib/boris/connectors.rb +47 -0
  50. data/lib/boris/connectors/snmp.rb +56 -0
  51. data/lib/boris/connectors/ssh.rb +110 -0
  52. data/lib/boris/connectors/wmi.rb +186 -0
  53. data/lib/boris/errors.rb +17 -0
  54. data/lib/boris/helpers/array.rb +63 -0
  55. data/lib/boris/helpers/constants.rb +20 -0
  56. data/lib/boris/helpers/hash.rb +8 -0
  57. data/lib/boris/helpers/scrubber.rb +51 -0
  58. data/lib/boris/helpers/string.rb +130 -0
  59. data/lib/boris/lumberjack.rb +47 -0
  60. data/lib/boris/options.rb +86 -0
  61. data/lib/boris/profiles/linux/redhat.rb +77 -0
  62. data/lib/boris/profiles/linux_core.rb +216 -0
  63. data/lib/boris/profiles/unix/solaris.rb +307 -0
  64. data/lib/boris/profiles/unix_core.rb +85 -0
  65. data/lib/boris/profiles/windows/windows2003.rb +15 -0
  66. data/lib/boris/profiles/windows/windows2008.rb +23 -0
  67. data/lib/boris/profiles/windows/windows2012.rb +15 -0
  68. data/lib/boris/profiles/windows_core.rb +530 -0
  69. data/lib/boris/structure.rb +167 -0
  70. data/lib/boris/target.rb +340 -0
  71. data/test/connector_tests/test_snmp.rb +35 -0
  72. data/test/connector_tests/test_ssh.rb +51 -0
  73. data/test/connector_tests/test_wmi.rb +129 -0
  74. data/test/helper_tests/test_array.rb +25 -0
  75. data/test/helper_tests/test_hash.rb +10 -0
  76. data/test/helper_tests/test_string.rb +136 -0
  77. data/test/profile_tests/test_core_skeleton +107 -0
  78. data/test/profile_tests/test_linux_core.rb +331 -0
  79. data/test/profile_tests/test_redhat.rb +134 -0
  80. data/test/profile_tests/test_solaris.rb +523 -0
  81. data/test/profile_tests/test_unix_core.rb +117 -0
  82. data/test/profile_tests/test_windows.rb +536 -0
  83. data/test/setup_tests.rb +14 -0
  84. data/test/test_all.rb +8 -0
  85. data/test/test_options.rb +44 -0
  86. data/test/test_structure.rb +136 -0
  87. data/test/test_target.rb +146 -0
  88. metadata +241 -0
@@ -0,0 +1,1846 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: Boris::Profiles::Windows
8
+
9
+ &mdash; Documentation by YARD 0.8.3
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '../../';
20
+ framesUrl = "../../frames.html#!" + escape(window.location.href);
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="../../_index.html">Index (W)</a> &raquo;
35
+ <span class='title'><span class='object_link'><a href="../../Boris.html" title="Boris (module)">Boris</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Profiles.html" title="Boris::Profiles (module)">Profiles</a></span></span>
36
+ &raquo;
37
+ <span class="title">Windows</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="../../class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="../../method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="../../file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Module: Boris::Profiles::Windows
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+
75
+
76
+
77
+
78
+ <dt class="r1">Includes:</dt>
79
+ <dd class="r1"><span class='object_link'><a href="Structure.html" title="Boris::Profiles::Structure (module)">Structure</a></span></dd>
80
+
81
+
82
+
83
+
84
+ <dt class="r2">Included in:</dt>
85
+ <dd class="r2"><span class='object_link'><a href="Windows/Windows2003.html" title="Boris::Profiles::Windows::Windows2003 (module)">Windows2003</a></span>, <span class='object_link'><a href="Windows/Windows2008.html" title="Boris::Profiles::Windows::Windows2008 (module)">Windows2008</a></span>, <span class='object_link'><a href="Windows/Windows2012.html" title="Boris::Profiles::Windows::Windows2012 (module)">Windows2012</a></span></dd>
86
+
87
+
88
+
89
+ <dt class="r1 last">Defined in:</dt>
90
+ <dd class="r1 last">lib/boris/profiles/windows_core.rb<span class="defines">,<br />
91
+ lib/boris/profiles/windows/windows2008.rb,<br /> lib/boris/profiles/windows/windows2003.rb,<br /> lib/boris/profiles/windows/windows2012.rb</span>
92
+ </dd>
93
+
94
+ </dl>
95
+ <div class="clear"></div>
96
+
97
+ <h2>Defined Under Namespace</h2>
98
+ <p class="children">
99
+
100
+
101
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="Windows/Windows2003.html" title="Boris::Profiles::Windows::Windows2003 (module)">Windows2003</a></span>, <span class='object_link'><a href="Windows/Windows2008.html" title="Boris::Profiles::Windows::Windows2008 (module)">Windows2008</a></span>, <span class='object_link'><a href="Windows/Windows2012.html" title="Boris::Profiles::Windows::Windows2012 (module)">Windows2012</a></span>
102
+
103
+
104
+
105
+
106
+ </p>
107
+
108
+ <h2>Constant Summary</h2>
109
+
110
+ <dl class="constants">
111
+
112
+ <dt id="APP32_KEYPATH-constant" class="">APP32_KEYPATH =
113
+
114
+ </dt>
115
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall</span><span class='tstring_end'>'</span></span></pre></dd>
116
+
117
+ <dt id="APP64_KEYPATH-constant" class="">APP64_KEYPATH =
118
+
119
+ </dt>
120
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall</span><span class='tstring_end'>'</span></span></pre></dd>
121
+
122
+ <dt id="NIC_CFG_KEYPATH-constant" class="">NIC_CFG_KEYPATH =
123
+
124
+ </dt>
125
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}</span><span class='tstring_end'>'</span></span></pre></dd>
126
+
127
+ <dt id="TCPIP_CFG_KEYPATH-constant" class="">TCPIP_CFG_KEYPATH =
128
+
129
+ </dt>
130
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces</span><span class='tstring_end'>'</span></span></pre></dd>
131
+
132
+ <dt id="ORACLE_KEYPATH-constant" class="">ORACLE_KEYPATH =
133
+
134
+ </dt>
135
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SOFTWARE\ORACLE</span><span class='tstring_end'>'</span></span></pre></dd>
136
+
137
+ <dt id="IIS_KEYPATH-constant" class="">IIS_KEYPATH =
138
+
139
+ </dt>
140
+ <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SOFTWARE\Microsoft\INetStp</span><span class='tstring_end'>'</span></span></pre></dd>
141
+
142
+ <dt id="DUPLEX_REG_VALS-constant" class="">DUPLEX_REG_VALS =
143
+
144
+ </dt>
145
+ <dd><pre class="code"><span class='lbracket'>[</span>
146
+ <span class='symbol'>:autonegadvertised</span><span class='comma'>,</span>
147
+ <span class='symbol'>:duplexmode</span><span class='comma'>,</span>
148
+ <span class='symbol'>:forcedspeedduplex</span><span class='comma'>,</span>
149
+ <span class='symbol'>:media_type</span><span class='comma'>,</span>
150
+ <span class='symbol'>:mediaselect</span><span class='comma'>,</span>
151
+ <span class='symbol'>:req_medium</span><span class='comma'>,</span>
152
+ <span class='symbol'>:requestedmediatype</span><span class='comma'>,</span>
153
+ <span class='symbol'>:speedduplex</span>
154
+ <span class='rbracket'>]</span></pre></dd>
155
+
156
+ </dl>
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+ <h2>Instance Attribute Summary</h2>
165
+
166
+ <h3 class="inherited">Attributes included from <span class='object_link'><a href="Structure.html" title="Boris::Profiles::Structure (module)">Structure</a></span></h3>
167
+ <p class="inherited"><span class='object_link'><a href="Structure.html#file_systems-instance_method" title="Boris::Profiles::Structure#file_systems (method)">#file_systems</a></span>, <span class='object_link'><a href="Structure.html#hardware-instance_method" title="Boris::Profiles::Structure#hardware (method)">#hardware</a></span>, <span class='object_link'><a href="Structure.html#hosted_shares-instance_method" title="Boris::Profiles::Structure#hosted_shares (method)">#hosted_shares</a></span>, <span class='object_link'><a href="Structure.html#installed_applications-instance_method" title="Boris::Profiles::Structure#installed_applications (method)">#installed_applications</a></span>, <span class='object_link'><a href="Structure.html#installed_patches-instance_method" title="Boris::Profiles::Structure#installed_patches (method)">#installed_patches</a></span>, <span class='object_link'><a href="Structure.html#installed_services-instance_method" title="Boris::Profiles::Structure#installed_services (method)">#installed_services</a></span>, <span class='object_link'><a href="Structure.html#local_user_groups-instance_method" title="Boris::Profiles::Structure#local_user_groups (method)">#local_user_groups</a></span>, <span class='object_link'><a href="Structure.html#network_id-instance_method" title="Boris::Profiles::Structure#network_id (method)">#network_id</a></span>, <span class='object_link'><a href="Structure.html#network_interfaces-instance_method" title="Boris::Profiles::Structure#network_interfaces (method)">#network_interfaces</a></span>, <span class='object_link'><a href="Structure.html#operating_system-instance_method" title="Boris::Profiles::Structure#operating_system (method)">#operating_system</a></span></p>
168
+
169
+
170
+
171
+ <h3 class="inherited">Attributes included from <span class='object_link'><a href="../Lumberjack.html" title="Boris::Lumberjack (module)">Lumberjack</a></span></h3>
172
+ <p class="inherited"><span class='object_link'><a href="../Lumberjack.html#logger-instance_method" title="Boris::Lumberjack#logger (method)">#logger</a></span></p>
173
+
174
+
175
+
176
+ <h2>
177
+ Class Method Summary
178
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
179
+ </h2>
180
+
181
+ <ul class="summary">
182
+
183
+ <li class="public ">
184
+ <span class="summary_signature">
185
+
186
+ <a href="#connection_type-class_method" title="connection_type (class method)">+ (Object) <strong>connection_type</strong> </a>
187
+
188
+
189
+
190
+ </span>
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+ <span class="summary_desc"><div class='inline'></div></span>
201
+
202
+ </li>
203
+
204
+
205
+ <li class="public ">
206
+ <span class="summary_signature">
207
+
208
+ <a href="#matches_target%3F-class_method" title="matches_target? (class method)">+ (Boolean) <strong>matches_target?</strong>(connector) </a>
209
+
210
+
211
+
212
+ </span>
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+ <span class="summary_desc"><div class='inline'></div></span>
223
+
224
+ </li>
225
+
226
+
227
+ </ul>
228
+
229
+ <h2>
230
+ Instance Method Summary
231
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
232
+ </h2>
233
+
234
+ <ul class="summary">
235
+
236
+ <li class="public ">
237
+ <span class="summary_signature">
238
+
239
+ <a href="#get_file_systems-instance_method" title="#get_file_systems (instance method)">- (Object) <strong>get_file_systems</strong> </a>
240
+
241
+
242
+
243
+ </span>
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+ <span class="summary_desc"><div class='inline'></div></span>
254
+
255
+ </li>
256
+
257
+
258
+ <li class="public ">
259
+ <span class="summary_signature">
260
+
261
+ <a href="#get_hardware-instance_method" title="#get_hardware (instance method)">- (Object) <strong>get_hardware</strong> </a>
262
+
263
+
264
+
265
+ </span>
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+ <span class="summary_desc"><div class='inline'></div></span>
276
+
277
+ </li>
278
+
279
+
280
+ <li class="public ">
281
+ <span class="summary_signature">
282
+
283
+ <a href="#get_hosted_shares-instance_method" title="#get_hosted_shares (instance method)">- (Object) <strong>get_hosted_shares</strong> </a>
284
+
285
+
286
+
287
+ </span>
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+ <span class="summary_desc"><div class='inline'></div></span>
298
+
299
+ </li>
300
+
301
+
302
+ <li class="public ">
303
+ <span class="summary_signature">
304
+
305
+ <a href="#get_installed_applications-instance_method" title="#get_installed_applications (instance method)">- (Object) <strong>get_installed_applications</strong> </a>
306
+
307
+
308
+
309
+ </span>
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+ <span class="summary_desc"><div class='inline'></div></span>
320
+
321
+ </li>
322
+
323
+
324
+ <li class="public ">
325
+ <span class="summary_signature">
326
+
327
+ <a href="#get_installed_patches-instance_method" title="#get_installed_patches (instance method)">- (Object) <strong>get_installed_patches</strong> </a>
328
+
329
+
330
+
331
+ </span>
332
+
333
+
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+ <span class="summary_desc"><div class='inline'></div></span>
342
+
343
+ </li>
344
+
345
+
346
+ <li class="public ">
347
+ <span class="summary_signature">
348
+
349
+ <a href="#get_installed_services-instance_method" title="#get_installed_services (instance method)">- (Object) <strong>get_installed_services</strong> </a>
350
+
351
+
352
+
353
+ </span>
354
+
355
+
356
+
357
+
358
+
359
+
360
+
361
+
362
+
363
+ <span class="summary_desc"><div class='inline'></div></span>
364
+
365
+ </li>
366
+
367
+
368
+ <li class="public ">
369
+ <span class="summary_signature">
370
+
371
+ <a href="#get_local_user_groups-instance_method" title="#get_local_user_groups (instance method)">- (Object) <strong>get_local_user_groups</strong> </a>
372
+
373
+
374
+
375
+ </span>
376
+
377
+
378
+
379
+
380
+
381
+
382
+
383
+
384
+
385
+ <span class="summary_desc"><div class='inline'></div></span>
386
+
387
+ </li>
388
+
389
+
390
+ <li class="public ">
391
+ <span class="summary_signature">
392
+
393
+ <a href="#get_network_id-instance_method" title="#get_network_id (instance method)">- (Object) <strong>get_network_id</strong> </a>
394
+
395
+
396
+
397
+ </span>
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+ <span class="summary_desc"><div class='inline'></div></span>
408
+
409
+ </li>
410
+
411
+
412
+ <li class="public ">
413
+ <span class="summary_signature">
414
+
415
+ <a href="#get_network_interfaces-instance_method" title="#get_network_interfaces (instance method)">- (Object) <strong>get_network_interfaces</strong> </a>
416
+
417
+
418
+
419
+ </span>
420
+
421
+
422
+
423
+
424
+
425
+
426
+
427
+
428
+
429
+ <span class="summary_desc"><div class='inline'></div></span>
430
+
431
+ </li>
432
+
433
+
434
+ <li class="public ">
435
+ <span class="summary_signature">
436
+
437
+ <a href="#get_operating_system-instance_method" title="#get_operating_system (instance method)">- (Object) <strong>get_operating_system</strong> </a>
438
+
439
+
440
+
441
+ </span>
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+ <span class="summary_desc"><div class='inline'></div></span>
452
+
453
+ </li>
454
+
455
+
456
+ <li class="public ">
457
+ <span class="summary_signature">
458
+
459
+ <a href="#get_product_key-instance_method" title="#get_product_key (instance method)">- (Object) <strong>get_product_key</strong>(app_name, guid = nil) </a>
460
+
461
+
462
+
463
+ </span>
464
+
465
+
466
+
467
+
468
+
469
+
470
+
471
+
472
+
473
+ <span class="summary_desc"><div class='inline'></div></span>
474
+
475
+ </li>
476
+
477
+
478
+ <li class="public ">
479
+ <span class="summary_signature">
480
+
481
+ <a href="#get_username-instance_method" title="#get_username (instance method)">- (Object) <strong>get_username</strong>(guid) </a>
482
+
483
+
484
+
485
+ </span>
486
+
487
+
488
+
489
+
490
+
491
+
492
+
493
+
494
+
495
+ <span class="summary_desc"><div class='inline'></div></span>
496
+
497
+ </li>
498
+
499
+
500
+ </ul>
501
+
502
+
503
+
504
+
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="Structure.html" title="Boris::Profiles::Structure (module)">Structure</a></span></h3>
513
+ <p class="inherited"><span class='object_link'><a href="Structure.html#file_system_template-instance_method" title="Boris::Profiles::Structure#file_system_template (method)">#file_system_template</a></span>, <span class='object_link'><a href="Structure.html#hosted_share_template-instance_method" title="Boris::Profiles::Structure#hosted_share_template (method)">#hosted_share_template</a></span>, <span class='object_link'><a href="Structure.html#installed_application_template-instance_method" title="Boris::Profiles::Structure#installed_application_template (method)">#installed_application_template</a></span>, <span class='object_link'><a href="Structure.html#installed_patch_template-instance_method" title="Boris::Profiles::Structure#installed_patch_template (method)">#installed_patch_template</a></span>, <span class='object_link'><a href="Structure.html#installed_service_template-instance_method" title="Boris::Profiles::Structure#installed_service_template (method)">#installed_service_template</a></span>, <span class='object_link'><a href="Structure.html#local_user_groups_template-instance_method" title="Boris::Profiles::Structure#local_user_groups_template (method)">#local_user_groups_template</a></span>, <span class='object_link'><a href="Structure.html#network_interface_template-instance_method" title="Boris::Profiles::Structure#network_interface_template (method)">#network_interface_template</a></span>, <span class='object_link'><a href="Structure.html#scrub_data%21-instance_method" title="Boris::Profiles::Structure#scrub_data! (method)">#scrub_data!</a></span></p>
514
+
515
+
516
+
517
+
518
+
519
+
520
+
521
+
522
+
523
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="../Lumberjack.html" title="Boris::Lumberjack (module)">Lumberjack</a></span></h3>
524
+ <p class="inherited"><span class='object_link'><a href="../Lumberjack.html#debug-instance_method" title="Boris::Lumberjack#debug (method)">#debug</a></span>, <span class='object_link'><a href="../Lumberjack.html#error-instance_method" title="Boris::Lumberjack#error (method)">#error</a></span>, <span class='object_link'><a href="../Lumberjack.html#fatal-instance_method" title="Boris::Lumberjack#fatal (method)">#fatal</a></span>, <span class='object_link'><a href="../Lumberjack.html#info-instance_method" title="Boris::Lumberjack#info (method)">#info</a></span>, <span class='object_link'><a href="../Lumberjack.html#warn-instance_method" title="Boris::Lumberjack#warn (method)">#warn</a></span></p>
525
+
526
+
527
+ <div id="class_method_details" class="method_details_list">
528
+ <h2>Class Method Details</h2>
529
+
530
+
531
+ <div class="method_details first">
532
+ <h3 class="signature first" id="connection_type-class_method">
533
+
534
+ + (<tt>Object</tt>) <strong>connection_type</strong>
535
+
536
+
537
+
538
+
539
+
540
+ </h3><table class="source_code">
541
+ <tr>
542
+ <td>
543
+ <pre class="lines">
544
+
545
+
546
+ 27
547
+ 28
548
+ 29</pre>
549
+ </td>
550
+ <td>
551
+ <pre class="code"><span class="info file"># File 'lib/boris/profiles/windows_core.rb', line 27</span>
552
+
553
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_connection_type'>connection_type</span>
554
+ <span class='const'>Boris</span><span class='op'>::</span><span class='const'>WMIConnector</span>
555
+ <span class='kw'>end</span></pre>
556
+ </td>
557
+ </tr>
558
+ </table>
559
+ </div>
560
+
561
+ <div class="method_details ">
562
+ <h3 class="signature " id="matches_target?-class_method">
563
+
564
+ + (<tt>Boolean</tt>) <strong>matches_target?</strong>(connector)
565
+
566
+
567
+
568
+
569
+
570
+ </h3><div class="docstring">
571
+ <div class="discussion">
572
+
573
+
574
+ </div>
575
+ </div>
576
+ <div class="tags">
577
+
578
+ <p class="tag_title">Returns:</p>
579
+ <ul class="return">
580
+
581
+ <li>
582
+
583
+
584
+ <span class='type'>(<tt>Boolean</tt>)</span>
585
+
586
+
587
+
588
+ </li>
589
+
590
+ </ul>
591
+
592
+ </div><table class="source_code">
593
+ <tr>
594
+ <td>
595
+ <pre class="lines">
596
+
597
+
598
+ 31
599
+ 32
600
+ 33</pre>
601
+ </td>
602
+ <td>
603
+ <pre class="code"><span class="info file"># File 'lib/boris/profiles/windows_core.rb', line 31</span>
604
+
605
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_matches_target?'>matches_target?</span><span class='lparen'>(</span><span class='id identifier rubyid_connector'>connector</span><span class='rparen'>)</span>
606
+ <span class='kw'>return</span> <span class='kw'>true</span> <span class='kw'>if</span> <span class='id identifier rubyid_connector'>connector</span><span class='period'>.</span><span class='id identifier rubyid_value_at'>value_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT Name FROM Win32_OperatingSystem</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>windows</span><span class='regexp_end'>/i</span></span>
607
+ <span class='kw'>end</span></pre>
608
+ </td>
609
+ </tr>
610
+ </table>
611
+ </div>
612
+
613
+ </div>
614
+
615
+ <div id="instance_method_details" class="method_details_list">
616
+ <h2>Instance Method Details</h2>
617
+
618
+
619
+ <div class="method_details first">
620
+ <h3 class="signature first" id="get_file_systems-instance_method">
621
+
622
+ - (<tt>Object</tt>) <strong>get_file_systems</strong>
623
+
624
+
625
+
626
+
627
+
628
+ </h3><table class="source_code">
629
+ <tr>
630
+ <td>
631
+ <pre class="lines">
632
+
633
+
634
+ 35
635
+ 36
636
+ 37
637
+ 38
638
+ 39
639
+ 40
640
+ 41
641
+ 42
642
+ 43
643
+ 44
644
+ 45
645
+ 46
646
+ 47
647
+ 48
648
+ 49
649
+ 50
650
+ 51
651
+ 52
652
+ 53
653
+ 54
654
+ 55
655
+ 56
656
+ 57
657
+ 58
658
+ 59
659
+ 60</pre>
660
+ </td>
661
+ <td>
662
+ <pre class="code"><span class="info file"># File 'lib/boris/profiles/windows_core.rb', line 35</span>
663
+
664
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_file_systems'>get_file_systems</span>
665
+ <span class='kw'>super</span>
666
+
667
+ <span class='id identifier rubyid_logical_disks'>logical_disks</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_values_at'>values_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT Antecedent, Dependent FROM Win32_LogicalDiskToPartition</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
668
+ <span class='id identifier rubyid_disk_partitions'>disk_partitions</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_values_at'>values_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT Antecedent, Dependent FROM Win32_DiskDriveToDiskPartition</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
669
+ <span class='id identifier rubyid_physical_drives'>physical_drives</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_values_at'>values_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT DeviceID, Model FROM Win32_DiskDrive</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
670
+ <span class='id identifier rubyid_disk_space'>disk_space</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_values_at'>values_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT FreeSpace, Name, Size FROM Win32_LogicalDisk WHERE DriveType=3</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
671
+
672
+ <span class='id identifier rubyid_disk_space'>disk_space</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_ds'>ds</span><span class='op'>|</span>
673
+ <span class='id identifier rubyid_h'>h</span> <span class='op'>=</span> <span class='id identifier rubyid_file_system_template'>file_system_template</span>
674
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:mount_point</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span>
675
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:capacity_mb</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:size</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='op'>/</span> <span class='int'>1024</span>
676
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:used_space_mb</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:capacity_mb</span><span class='rbracket'>]</span> <span class='op'>-</span> <span class='lparen'>(</span><span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:freespace</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='op'>/</span> <span class='int'>1024</span><span class='rparen'>)</span>
677
+
678
+ <span class='id identifier rubyid_ld'>ld</span> <span class='op'>=</span> <span class='id identifier rubyid_logical_disks'>logical_disks</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_ld'>ld</span><span class='op'>|</span> <span class='id identifier rubyid_ld'>ld</span><span class='lbracket'>[</span><span class='symbol'>:dependent</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:mount_point</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
679
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:file_system</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_ld'>ld</span><span class='lbracket'>[</span><span class='symbol'>:antecedent</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\&quot;</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span>
680
+
681
+ <span class='id identifier rubyid_dp'>dp</span> <span class='op'>=</span> <span class='id identifier rubyid_disk_partitions'>disk_partitions</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_dp'>dp</span><span class='op'>|</span> <span class='id identifier rubyid_dp'>dp</span><span class='lbracket'>[</span><span class='symbol'>:dependent</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:file_system</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
682
+ <span class='id identifier rubyid_drive_id'>drive_id</span> <span class='op'>=</span> <span class='id identifier rubyid_dp'>dp</span><span class='lbracket'>[</span><span class='symbol'>:antecedent</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>\\</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>\&quot;</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
683
+
684
+ <span class='id identifier rubyid_physical_drive'>physical_drive</span> <span class='op'>=</span> <span class='id identifier rubyid_physical_drives'>physical_drives</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_pd'>pd</span><span class='op'>|</span> <span class='id identifier rubyid_pd'>pd</span><span class='lbracket'>[</span><span class='symbol'>:deviceid</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_drive_id'>drive_id</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
685
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:san_storage</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='kw'>if</span> <span class='id identifier rubyid_physical_drive'>physical_drive</span><span class='lbracket'>[</span><span class='symbol'>:model</span><span class='rbracket'>]</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>open-v</span><span class='regexp_end'>/i</span></span>
686
+
687
+ <span class='ivar'>@file_systems</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_h'>h</span> <span class='kw'>unless</span> <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:file_system</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
688
+ <span class='kw'>end</span>
689
+ <span class='kw'>end</span></pre>
690
+ </td>
691
+ </tr>
692
+ </table>
693
+ </div>
694
+
695
+ <div class="method_details ">
696
+ <h3 class="signature " id="get_hardware-instance_method">
697
+
698
+ - (<tt>Object</tt>) <strong>get_hardware</strong>
699
+
700
+
701
+
702
+
703
+
704
+ </h3><table class="source_code">
705
+ <tr>
706
+ <td>
707
+ <pre class="lines">
708
+
709
+
710
+ 62
711
+ 63
712
+ 64
713
+ 65
714
+ 66
715
+ 67
716
+ 68
717
+ 69
718
+ 70
719
+ 71
720
+ 72
721
+ 73
722
+ 74
723
+ 75
724
+ 76
725
+ 77
726
+ 78
727
+ 79
728
+ 80
729
+ 81
730
+ 82
731
+ 83
732
+ 84
733
+ 85
734
+ 86</pre>
735
+ </td>
736
+ <td>
737
+ <pre class="code"><span class="info file"># File 'lib/boris/profiles/windows_core.rb', line 62</span>
738
+
739
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_hardware'>get_hardware</span>
740
+ <span class='kw'>super</span>
741
+
742
+ <span class='id identifier rubyid_serial_data'>serial_data</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_value_at'>value_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT SerialNumber, SMBIOSBIOSVersion FROM Win32_BIOS</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
743
+ <span class='ivar'>@hardware</span><span class='lbracket'>[</span><span class='symbol'>:serial</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_serial_data'>serial_data</span><span class='lbracket'>[</span><span class='symbol'>:serialnumber</span><span class='rbracket'>]</span>
744
+ <span class='ivar'>@hardware</span><span class='lbracket'>[</span><span class='symbol'>:firmware_version</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_serial_data'>serial_data</span><span class='lbracket'>[</span><span class='symbol'>:smbiosbiosversion</span><span class='rbracket'>]</span>
745
+
746
+ <span class='id identifier rubyid_system_data'>system_data</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_value_at'>value_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT Manufacturer, Model, TotalPhysicalMemory FROM Win32_ComputerSystem</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
747
+ <span class='ivar'>@hardware</span><span class='lbracket'>[</span><span class='symbol'>:vendor</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_system_data'>system_data</span><span class='lbracket'>[</span><span class='symbol'>:manufacturer</span><span class='rbracket'>]</span>
748
+ <span class='ivar'>@hardware</span><span class='lbracket'>[</span><span class='symbol'>:model</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_system_data'>system_data</span><span class='lbracket'>[</span><span class='symbol'>:model</span><span class='rbracket'>]</span>
749
+ <span class='ivar'>@hardware</span><span class='lbracket'>[</span><span class='symbol'>:memory_installed_mb</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_system_data'>system_data</span><span class='lbracket'>[</span><span class='symbol'>:totalphysicalmemory</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='op'>/</span> <span class='int'>1024</span> <span class='op'>/</span> <span class='int'>1024</span>
750
+
751
+ <span class='id identifier rubyid_cpu_data'>cpu_data</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_values_at'>values_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT * FROM Win32_Processor</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
752
+
753
+ <span class='ivar'>@hardware</span><span class='lbracket'>[</span><span class='symbol'>:cpu_physical_count</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_cpu_data'>cpu_data</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span>
754
+
755
+ <span class='id identifier rubyid_cpu'>cpu</span> <span class='op'>=</span> <span class='id identifier rubyid_cpu_data'>cpu_data</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
756
+
757
+ <span class='ivar'>@hardware</span><span class='lbracket'>[</span><span class='symbol'>:cpu_architecture</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_cpu'>cpu</span><span class='lbracket'>[</span><span class='symbol'>:datawidth</span><span class='rbracket'>]</span>
758
+ <span class='ivar'>@hardware</span><span class='lbracket'>[</span><span class='symbol'>:cpu_core_count</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_cpu'>cpu</span><span class='lbracket'>[</span><span class='symbol'>:numberofcores</span><span class='rbracket'>]</span>
759
+
760
+ <span class='ivar'>@hardware</span><span class='lbracket'>[</span><span class='symbol'>:cpu_model</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_cpu'>cpu</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span>
761
+ <span class='ivar'>@hardware</span><span class='lbracket'>[</span><span class='symbol'>:cpu_speed_mhz</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_cpu'>cpu</span><span class='lbracket'>[</span><span class='symbol'>:maxclockspeed</span><span class='rbracket'>]</span>
762
+ <span class='ivar'>@hardware</span><span class='lbracket'>[</span><span class='symbol'>:cpu_vendor</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_cpu'>cpu</span><span class='lbracket'>[</span><span class='symbol'>:manufacturer</span><span class='rbracket'>]</span>
763
+ <span class='kw'>end</span></pre>
764
+ </td>
765
+ </tr>
766
+ </table>
767
+ </div>
768
+
769
+ <div class="method_details ">
770
+ <h3 class="signature " id="get_hosted_shares-instance_method">
771
+
772
+ - (<tt>Object</tt>) <strong>get_hosted_shares</strong>
773
+
774
+
775
+
776
+
777
+
778
+ </h3><table class="source_code">
779
+ <tr>
780
+ <td>
781
+ <pre class="lines">
782
+
783
+
784
+ 88
785
+ 89
786
+ 90
787
+ 91
788
+ 92
789
+ 93
790
+ 94
791
+ 95
792
+ 96
793
+ 97
794
+ 98</pre>
795
+ </td>
796
+ <td>
797
+ <pre class="code"><span class="info file"># File 'lib/boris/profiles/windows_core.rb', line 88</span>
798
+
799
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_hosted_shares'>get_hosted_shares</span>
800
+ <span class='kw'>super</span>
801
+
802
+ <span class='id identifier rubyid_share_data'>share_data</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_values_at'>values_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT Name, Path FROM Win32_Share WHERE Type = 0</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
803
+ <span class='id identifier rubyid_share_data'>share_data</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_share'>share</span><span class='op'>|</span>
804
+ <span class='id identifier rubyid_h'>h</span> <span class='op'>=</span> <span class='id identifier rubyid_hosted_share_template'>hosted_share_template</span>
805
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_share'>share</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span>
806
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_share'>share</span><span class='lbracket'>[</span><span class='symbol'>:path</span><span class='rbracket'>]</span>
807
+ <span class='ivar'>@hosted_shares</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_h'>h</span>
808
+ <span class='kw'>end</span>
809
+ <span class='kw'>end</span></pre>
810
+ </td>
811
+ </tr>
812
+ </table>
813
+ </div>
814
+
815
+ <div class="method_details ">
816
+ <h3 class="signature " id="get_installed_applications-instance_method">
817
+
818
+ - (<tt>Object</tt>) <strong>get_installed_applications</strong>
819
+
820
+
821
+
822
+
823
+
824
+ </h3><table class="source_code">
825
+ <tr>
826
+ <td>
827
+ <pre class="lines">
828
+
829
+
830
+ 100
831
+ 101
832
+ 102
833
+ 103
834
+ 104
835
+ 105
836
+ 106
837
+ 107
838
+ 108
839
+ 109
840
+ 110
841
+ 111
842
+ 112
843
+ 113
844
+ 114
845
+ 115
846
+ 116
847
+ 117
848
+ 118
849
+ 119
850
+ 120
851
+ 121
852
+ 122
853
+ 123
854
+ 124
855
+ 125
856
+ 126
857
+ 127
858
+ 128
859
+ 129
860
+ 130
861
+ 131
862
+ 132
863
+ 133
864
+ 134
865
+ 135
866
+ 136
867
+ 137
868
+ 138
869
+ 139
870
+ 140
871
+ 141
872
+ 142
873
+ 143
874
+ 144
875
+ 145</pre>
876
+ </td>
877
+ <td>
878
+ <pre class="code"><span class="info file"># File 'lib/boris/profiles/windows_core.rb', line 100</span>
879
+
880
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_installed_applications'>get_installed_applications</span>
881
+ <span class='kw'>super</span>
882
+
883
+ <span class='ivar'>@patches_from_registry</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
884
+
885
+ <span class='lbracket'>[</span><span class='const'>APP32_KEYPATH</span><span class='comma'>,</span> <span class='const'>APP64_KEYPATH</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_app_path'>app_path</span><span class='op'>|</span>
886
+ <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_subkeys_at'>registry_subkeys_at</span><span class='lparen'>(</span><span class='id identifier rubyid_app_path'>app_path</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_app_key'>app_key</span><span class='op'>|</span>
887
+ <span class='id identifier rubyid_h'>h</span> <span class='op'>=</span> <span class='id identifier rubyid_installed_application_template'>installed_application_template</span>
888
+
889
+ <span class='id identifier rubyid_app_values'>app_values</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_values_at'>registry_values_at</span><span class='lparen'>(</span><span class='id identifier rubyid_app_key'>app_key</span><span class='rparen'>)</span>
890
+
891
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:date_installed</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_app_values'>app_values</span><span class='lbracket'>[</span><span class='symbol'>:installdate</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_app_values'>app_values</span><span class='lbracket'>[</span><span class='symbol'>:installdate</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_kind_of?'>kind_of?</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span>
892
+
893
+ <span class='kw'>if</span> <span class='id identifier rubyid_app_values'>app_values</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='symbol'>:displayname</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='lparen'>(</span><span class='id identifier rubyid_app_values'>app_values</span><span class='lbracket'>[</span><span class='symbol'>:displayname</span><span class='rbracket'>]</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^kb|\(kb\d+</span><span class='regexp_end'>/i</span></span><span class='rparen'>)</span>
894
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:install_location</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_app_values'>app_values</span><span class='lbracket'>[</span><span class='symbol'>:installlocation</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_app_values'>app_values</span><span class='lbracket'>[</span><span class='symbol'>:installlocation</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
895
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:license_key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_get_product_key'>get_product_key</span><span class='lparen'>(</span><span class='id identifier rubyid_app_values'>app_values</span><span class='lbracket'>[</span><span class='symbol'>:displayname</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_app_key'>app_key</span><span class='rparen'>)</span>
896
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_concat_app_edition'>concat_app_edition</span><span class='lparen'>(</span><span class='id identifier rubyid_app_values'>app_values</span><span class='lbracket'>[</span><span class='symbol'>:displayname</span><span class='rbracket'>]</span><span class='rparen'>)</span>
897
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:vendor</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_app_values'>app_values</span><span class='lbracket'>[</span><span class='symbol'>:publisher</span><span class='rbracket'>]</span>
898
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:version</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_app_values'>app_values</span><span class='lbracket'>[</span><span class='symbol'>:displayversion</span><span class='rbracket'>]</span>
899
+
900
+ <span class='ivar'>@installed_applications</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_h'>h</span>
901
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_app_values'>app_values</span><span class='lbracket'>[</span><span class='symbol'>:displayname</span><span class='rbracket'>]</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^kb|\(kb\d+</span><span class='regexp_end'>/i</span></span>
902
+ <span class='comment'># likely a ms patch, so we'll save this data to parse later in #get_installed_patches
903
+ </span> <span class='ivar'>@patches_from_registry</span> <span class='op'>&lt;&lt;</span> <span class='lbrace'>{</span><span class='symbol'>:key_path</span><span class='op'>=&gt;</span><span class='id identifier rubyid_app_key'>app_key</span><span class='comma'>,</span> <span class='symbol'>:values</span><span class='op'>=&gt;</span><span class='id identifier rubyid_app_values'>app_values</span><span class='rbrace'>}</span>
904
+ <span class='kw'>end</span>
905
+ <span class='kw'>end</span>
906
+ <span class='kw'>end</span>
907
+
908
+ <span class='comment'># look for some other popular applications not found in the usual spots
909
+ </span>
910
+ <span class='comment'># Oracle (RDMS, AppServer (AS), Client)
911
+ </span> <span class='id identifier rubyid_oracle_keys'>oracle_keys</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_subkeys_at'>registry_subkeys_at</span><span class='lparen'>(</span><span class='const'>ORACLE_KEYPATH</span><span class='rparen'>)</span>
912
+ <span class='id identifier rubyid_oracle_keys'>oracle_keys</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_app_key'>app_key</span><span class='op'>|</span>
913
+ <span class='kw'>if</span> <span class='id identifier rubyid_app_key'>app_key</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^key_ora(db|home)</span><span class='regexp_end'>/i</span></span>
914
+ <span class='id identifier rubyid_app_values'>app_values</span> <span class='op'>=</span> <span class='id identifier rubyid_registry_values_at'>registry_values_at</span><span class='lparen'>(</span><span class='id identifier rubyid_app_key'>app_key</span><span class='rparen'>)</span>
915
+ <span class='kw'>if</span> <span class='id identifier rubyid_app_values'>app_values</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='symbol'>:oracle_group_name</span><span class='rparen'>)</span>
916
+ <span class='id identifier rubyid_h'>h</span> <span class='op'>=</span> <span class='id identifier rubyid_installed_application_template'>installed_application_template</span>
917
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:install_location</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_app_values'>app_values</span><span class='lbracket'>[</span><span class='symbol'>:oracle_home</span><span class='rbracket'>]</span>
918
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_app_values'>app_values</span><span class='lbracket'>[</span><span class='symbol'>:oracle_group_name</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>_</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_app_values'>app_values</span><span class='lbracket'>[</span><span class='symbol'>:oracle_bundle_name</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
919
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:vendor</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>VENDOR_ORACLE</span>
920
+
921
+ <span class='ivar'>@installed_applications</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_h'>h</span>
922
+ <span class='kw'>end</span>
923
+ <span class='kw'>end</span>
924
+ <span class='kw'>end</span>
925
+ <span class='kw'>end</span></pre>
926
+ </td>
927
+ </tr>
928
+ </table>
929
+ </div>
930
+
931
+ <div class="method_details ">
932
+ <h3 class="signature " id="get_installed_patches-instance_method">
933
+
934
+ - (<tt>Object</tt>) <strong>get_installed_patches</strong>
935
+
936
+
937
+
938
+
939
+
940
+ </h3><table class="source_code">
941
+ <tr>
942
+ <td>
943
+ <pre class="lines">
944
+
945
+
946
+ 147
947
+ 148
948
+ 149
949
+ 150
950
+ 151
951
+ 152
952
+ 153
953
+ 154
954
+ 155
955
+ 156
956
+ 157
957
+ 158
958
+ 159
959
+ 160
960
+ 161
961
+ 162
962
+ 163
963
+ 164
964
+ 165
965
+ 166
966
+ 167
967
+ 168
968
+ 169
969
+ 170
970
+ 171
971
+ 172
972
+ 173
973
+ 174
974
+ 175
975
+ 176
976
+ 177
977
+ 178
978
+ 179
979
+ 180
980
+ 181
981
+ 182
982
+ 183
983
+ 184
984
+ 185
985
+ 186
986
+ 187
987
+ 188
988
+ 189
989
+ 190
990
+ 191
991
+ 192
992
+ 193
993
+ 194
994
+ 195
995
+ 196
996
+ 197
997
+ 198
998
+ 199
999
+ 200
1000
+ 201
1001
+ 202</pre>
1002
+ </td>
1003
+ <td>
1004
+ <pre class="code"><span class="info file"># File 'lib/boris/profiles/windows_core.rb', line 147</span>
1005
+
1006
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_installed_patches'>get_installed_patches</span>
1007
+ <span class='kw'>super</span>
1008
+
1009
+ <span class='comment'># get patches via wmi
1010
+ </span> <span class='id identifier rubyid_patch_data'>patch_data</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_values_at'>values_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT Description, HotFixID, InstalledBy, InstalledOn, ServicePackInEffect
1011
+ FROM Win32_QuickFixEngineering</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1012
+
1013
+ <span class='id identifier rubyid_patch_data'>patch_data</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_patch'>patch</span><span class='op'>|</span>
1014
+ <span class='kw'>if</span> <span class='op'>!</span><span class='lparen'>(</span><span class='id identifier rubyid_patch'>patch</span><span class='lbracket'>[</span><span class='symbol'>:hotfixid</span><span class='rbracket'>]</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\{</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
1015
+
1016
+ <span class='id identifier rubyid_h'>h</span> <span class='op'>=</span> <span class='id identifier rubyid_installed_patch_template'>installed_patch_template</span>
1017
+
1018
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:patch_code</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_patch'>patch</span><span class='lbracket'>[</span><span class='symbol'>:hotfixid</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>File 1</span><span class='tstring_end'>'</span></span> <span class='op'>?</span> <span class='id identifier rubyid_patch'>patch</span><span class='lbracket'>[</span><span class='symbol'>:servicepackineffect</span><span class='rbracket'>]</span> <span class='op'>:</span> <span class='id identifier rubyid_patch'>patch</span><span class='lbracket'>[</span><span class='symbol'>:hotfixid</span><span class='rbracket'>]</span>
1019
+
1020
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:installed_by</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_patch'>patch</span><span class='lbracket'>[</span><span class='symbol'>:installedby</span><span class='rbracket'>]</span> <span class='kw'>unless</span> <span class='id identifier rubyid_patch'>patch</span><span class='lbracket'>[</span><span class='symbol'>:installedby</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
1021
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:installed_by</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_get_username'>get_username</span><span class='lparen'>(</span><span class='id identifier rubyid_patch'>patch</span><span class='lbracket'>[</span><span class='symbol'>:installedby</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_patch'>patch</span><span class='lbracket'>[</span><span class='symbol'>:installedby</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>4</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>S-1-</span><span class='tstring_end'>'</span></span>
1022
+
1023
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:date_installed</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_patch'>patch</span><span class='lbracket'>[</span><span class='symbol'>:installedon</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>%m/%d/%Y</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_patch'>patch</span><span class='lbracket'>[</span><span class='symbol'>:installedon</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
1024
+
1025
+ <span class='ivar'>@installed_patches</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_h'>h</span>
1026
+ <span class='kw'>end</span>
1027
+ <span class='kw'>end</span>
1028
+
1029
+ <span class='comment'># get patches from the registry (under the application keys) if necessary
1030
+ </span> <span class='kw'>if</span> <span class='ivar'>@patches_from_registry</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1031
+ <span class='ivar'>@patches_from_registry</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1032
+
1033
+ <span class='lbracket'>[</span><span class='const'>APP32_KEYPATH</span><span class='comma'>,</span> <span class='const'>APP64_KEYPATH</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_app_path'>app_path</span><span class='op'>|</span>
1034
+ <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_subkeys_at'>registry_subkeys_at</span><span class='lparen'>(</span><span class='id identifier rubyid_app_path'>app_path</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_app_key'>app_key</span><span class='op'>|</span>
1035
+ <span class='id identifier rubyid_app_values'>app_values</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_values_at'>registry_values_at</span><span class='lparen'>(</span><span class='id identifier rubyid_app_key'>app_key</span><span class='rparen'>)</span>
1036
+ <span class='kw'>if</span> <span class='id identifier rubyid_app_values'>app_values</span><span class='lbracket'>[</span><span class='symbol'>:displayname</span><span class='rbracket'>]</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^kb|\(kb\d+</span><span class='regexp_end'>/i</span></span>
1037
+ <span class='ivar'>@patches_from_registry</span> <span class='op'>&lt;&lt;</span> <span class='lbrace'>{</span><span class='symbol'>:key_path</span><span class='op'>=&gt;</span><span class='id identifier rubyid_app_key'>app_key</span><span class='comma'>,</span> <span class='symbol'>:values</span><span class='op'>=&gt;</span><span class='id identifier rubyid_app_values'>app_values</span><span class='rbrace'>}</span>
1038
+ <span class='kw'>end</span>
1039
+ <span class='kw'>end</span>
1040
+ <span class='kw'>end</span>
1041
+ <span class='kw'>end</span>
1042
+
1043
+ <span class='ivar'>@patches_from_registry</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_patch_hash'>patch_hash</span><span class='op'>|</span>
1044
+ <span class='id identifier rubyid_h'>h</span> <span class='op'>=</span> <span class='id identifier rubyid_installed_patch_template'>installed_patch_template</span>
1045
+
1046
+ <span class='id identifier rubyid_key_path'>key_path</span> <span class='op'>=</span> <span class='id identifier rubyid_patch_hash'>patch_hash</span><span class='lbracket'>[</span><span class='symbol'>:key_path</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_after_slash'>after_slash</span>
1047
+ <span class='id identifier rubyid_patch'>patch</span> <span class='op'>=</span> <span class='id identifier rubyid_patch_hash'>patch_hash</span><span class='lbracket'>[</span><span class='symbol'>:values</span><span class='rbracket'>]</span>
1048
+
1049
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:date_installed</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_strptime'>strptime</span><span class='lparen'>(</span><span class='id identifier rubyid_patch'>patch</span><span class='lbracket'>[</span><span class='symbol'>:installdate</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>%Y%m%d</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_patch'>patch</span><span class='lbracket'>[</span><span class='symbol'>:installdate</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_kind_of?'>kind_of?</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span>
1050
+
1051
+ <span class='kw'>if</span> <span class='id identifier rubyid_key_path'>key_path</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^kb</span><span class='regexp_end'>/i</span></span>
1052
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:patch_code</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_key_path'>key_path</span>
1053
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_key_path'>key_path</span><span class='period'>.</span><span class='id identifier rubyid_after_period'>after_period</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^kb</span><span class='regexp_end'>/i</span></span>
1054
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:patch_code</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_key_path'>key_path</span><span class='period'>.</span><span class='id identifier rubyid_after_period'>after_period</span>
1055
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_patch'>patch</span><span class='lbracket'>[</span><span class='symbol'>:displayname</span><span class='rbracket'>]</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\(kb\d+</span><span class='regexp_end'>/i</span></span>
1056
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:patch_code</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_patch'>patch</span><span class='lbracket'>[</span><span class='symbol'>:displayname</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_between_parenthesis'>between_parenthesis</span>
1057
+ <span class='kw'>end</span>
1058
+
1059
+ <span class='ivar'>@installed_patches</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_h'>h</span> <span class='kw'>if</span> <span class='ivar'>@installed_patches</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_p'>p</span><span class='op'>|</span> <span class='id identifier rubyid_p'>p</span><span class='lbracket'>[</span><span class='symbol'>:patch_code</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:patch_code</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
1060
+ <span class='kw'>end</span>
1061
+ <span class='kw'>end</span></pre>
1062
+ </td>
1063
+ </tr>
1064
+ </table>
1065
+ </div>
1066
+
1067
+ <div class="method_details ">
1068
+ <h3 class="signature " id="get_installed_services-instance_method">
1069
+
1070
+ - (<tt>Object</tt>) <strong>get_installed_services</strong>
1071
+
1072
+
1073
+
1074
+
1075
+
1076
+ </h3><table class="source_code">
1077
+ <tr>
1078
+ <td>
1079
+ <pre class="lines">
1080
+
1081
+
1082
+ 204
1083
+ 205
1084
+ 206
1085
+ 207
1086
+ 208
1087
+ 209
1088
+ 210
1089
+ 211
1090
+ 212
1091
+ 213
1092
+ 214
1093
+ 215</pre>
1094
+ </td>
1095
+ <td>
1096
+ <pre class="code"><span class="info file"># File 'lib/boris/profiles/windows_core.rb', line 204</span>
1097
+
1098
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_installed_services'>get_installed_services</span>
1099
+ <span class='kw'>super</span>
1100
+
1101
+ <span class='id identifier rubyid_service_data'>service_data</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_values_at'>values_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT Name, PathName, StartMode FROM Win32_Service</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1102
+ <span class='id identifier rubyid_service_data'>service_data</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_service'>service</span><span class='op'>|</span>
1103
+ <span class='id identifier rubyid_h'>h</span> <span class='op'>=</span> <span class='id identifier rubyid_installed_service_template'>installed_service_template</span>
1104
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span>
1105
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:install_location</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:pathname</span><span class='rbracket'>]</span>
1106
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:start_mode</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_service'>service</span><span class='lbracket'>[</span><span class='symbol'>:startmode</span><span class='rbracket'>]</span>
1107
+ <span class='ivar'>@installed_services</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_h'>h</span>
1108
+ <span class='kw'>end</span>
1109
+ <span class='kw'>end</span></pre>
1110
+ </td>
1111
+ </tr>
1112
+ </table>
1113
+ </div>
1114
+
1115
+ <div class="method_details ">
1116
+ <h3 class="signature " id="get_local_user_groups-instance_method">
1117
+
1118
+ - (<tt>Object</tt>) <strong>get_local_user_groups</strong>
1119
+
1120
+
1121
+
1122
+
1123
+
1124
+ </h3><table class="source_code">
1125
+ <tr>
1126
+ <td>
1127
+ <pre class="lines">
1128
+
1129
+
1130
+ 217
1131
+ 218
1132
+ 219
1133
+ 220
1134
+ 221
1135
+ 222
1136
+ 223
1137
+ 224
1138
+ 225
1139
+ 226
1140
+ 227
1141
+ 228
1142
+ 229
1143
+ 230
1144
+ 231
1145
+ 232
1146
+ 233
1147
+ 234
1148
+ 235
1149
+ 236
1150
+ 237
1151
+ 238
1152
+ 239
1153
+ 240
1154
+ 241
1155
+ 242
1156
+ 243
1157
+ 244
1158
+ 245
1159
+ 246
1160
+ 247
1161
+ 248</pre>
1162
+ </td>
1163
+ <td>
1164
+ <pre class="code"><span class="info file"># File 'lib/boris/profiles/windows_core.rb', line 217</span>
1165
+
1166
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_local_user_groups'>get_local_user_groups</span>
1167
+ <span class='kw'>super</span>
1168
+
1169
+ <span class='comment'># first, retrieve the network id if necessary (will be used in later wmi queries)
1170
+ </span> <span class='id identifier rubyid_get_network_id'>get_network_id</span> <span class='kw'>if</span> <span class='op'>!</span><span class='ivar'>@network_id</span> <span class='op'>||</span> <span class='op'>!</span><span class='ivar'>@network_id</span><span class='lbracket'>[</span><span class='symbol'>:hostname</span><span class='rbracket'>]</span>
1171
+
1172
+ <span class='comment'># next, let's check if this system is a domain controller, otherwise, our query results
1173
+ </span> <span class='comment'># may return all user accounts associated with the domain
1174
+ </span> <span class='kw'>if</span> <span class='ivar'>@operating_system</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1175
+ <span class='id identifier rubyid_system_roles'>system_roles</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_value_at'>value_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT Roles FROM Win32_ComputerSystem</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='symbol'>:roles</span><span class='rbracket'>]</span>
1176
+ <span class='kw'>else</span>
1177
+ <span class='id identifier rubyid_system_roles'>system_roles</span> <span class='op'>=</span> <span class='ivar'>@operating_system</span><span class='lbracket'>[</span><span class='symbol'>:roles</span><span class='rbracket'>]</span>
1178
+ <span class='kw'>end</span>
1179
+
1180
+ <span class='kw'>if</span> <span class='id identifier rubyid_system_roles'>system_roles</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_role'>role</span><span class='op'>|</span> <span class='id identifier rubyid_role'>role</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>domaincontroller</span><span class='regexp_end'>/i</span></span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
1181
+ <span class='comment'># not a domain controller, so move on with retrieving users
1182
+ </span> <span class='id identifier rubyid_groups'>groups</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1183
+
1184
+ <span class='id identifier rubyid_group_data'>group_data</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_values_at'>values_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>SELECT Name FROM Win32_Group WHERE Domain = '</span><span class='embexpr_beg'>#{</span><span class='ivar'>@network_id</span><span class='lbracket'>[</span><span class='symbol'>:hostname</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>'</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1185
+ <span class='id identifier rubyid_group_data'>group_data</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_group'>group</span><span class='op'>|</span> <span class='ivar'>@local_user_groups</span> <span class='op'>&lt;&lt;</span> <span class='lbrace'>{</span><span class='symbol'>:name</span><span class='op'>=&gt;</span><span class='id identifier rubyid_group'>group</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:members</span><span class='op'>=&gt;</span><span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='rbrace'>}</span>
1186
+
1187
+ <span class='ivar'>@local_user_groups</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_group'>group</span><span class='op'>|</span>
1188
+
1189
+ <span class='id identifier rubyid_members'>members</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_values_at'>values_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>SELECT * FROM Win32_GroupUser WHERE GroupComponent = \&quot;Win32_Group.Domain='</span><span class='embexpr_beg'>#{</span><span class='ivar'>@network_id</span><span class='lbracket'>[</span><span class='symbol'>:hostname</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>',Name='</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_group'>group</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>'\&quot;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1190
+
1191
+ <span class='id identifier rubyid_members'>members</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_member'>member</span><span class='op'>|</span>
1192
+ <span class='id identifier rubyid_hostname'>hostname</span><span class='comma'>,</span> <span class='id identifier rubyid_username'>username</span> <span class='op'>=</span> <span class='id identifier rubyid_member'>member</span><span class='lbracket'>[</span><span class='symbol'>:partcomponent</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_within_quotes'>within_quotes</span>
1193
+ <span class='id identifier rubyid_group'>group</span><span class='lbracket'>[</span><span class='symbol'>:members</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_hostname'>hostname</span><span class='rbrace'>}</span><span class='tstring_content'>\\</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_username'>username</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1194
+ <span class='kw'>end</span>
1195
+ <span class='kw'>end</span>
1196
+ <span class='kw'>end</span>
1197
+ <span class='kw'>end</span></pre>
1198
+ </td>
1199
+ </tr>
1200
+ </table>
1201
+ </div>
1202
+
1203
+ <div class="method_details ">
1204
+ <h3 class="signature " id="get_network_id-instance_method">
1205
+
1206
+ - (<tt>Object</tt>) <strong>get_network_id</strong>
1207
+
1208
+
1209
+
1210
+
1211
+
1212
+ </h3><table class="source_code">
1213
+ <tr>
1214
+ <td>
1215
+ <pre class="lines">
1216
+
1217
+
1218
+ 250
1219
+ 251
1220
+ 252
1221
+ 253
1222
+ 254
1223
+ 255
1224
+ 256</pre>
1225
+ </td>
1226
+ <td>
1227
+ <pre class="code"><span class="info file"># File 'lib/boris/profiles/windows_core.rb', line 250</span>
1228
+
1229
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_network_id'>get_network_id</span>
1230
+ <span class='kw'>super</span>
1231
+
1232
+ <span class='id identifier rubyid_network_data'>network_data</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_value_at'>value_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT Domain, Name FROM Win32_ComputerSystem</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1233
+ <span class='ivar'>@network_id</span><span class='lbracket'>[</span><span class='symbol'>:domain</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_network_data'>network_data</span><span class='lbracket'>[</span><span class='symbol'>:domain</span><span class='rbracket'>]</span>
1234
+ <span class='ivar'>@network_id</span><span class='lbracket'>[</span><span class='symbol'>:hostname</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_network_data'>network_data</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span>
1235
+ <span class='kw'>end</span></pre>
1236
+ </td>
1237
+ </tr>
1238
+ </table>
1239
+ </div>
1240
+
1241
+ <div class="method_details ">
1242
+ <h3 class="signature " id="get_network_interfaces-instance_method">
1243
+
1244
+ - (<tt>Object</tt>) <strong>get_network_interfaces</strong>
1245
+
1246
+
1247
+
1248
+
1249
+
1250
+ </h3><table class="source_code">
1251
+ <tr>
1252
+ <td>
1253
+ <pre class="lines">
1254
+
1255
+
1256
+ 258
1257
+ 259
1258
+ 260
1259
+ 261
1260
+ 262
1261
+ 263
1262
+ 264
1263
+ 265
1264
+ 266
1265
+ 267
1266
+ 268
1267
+ 269
1268
+ 270
1269
+ 271
1270
+ 272
1271
+ 273
1272
+ 274
1273
+ 275
1274
+ 276
1275
+ 277
1276
+ 278
1277
+ 279
1278
+ 280
1279
+ 281
1280
+ 282
1281
+ 283
1282
+ 284
1283
+ 285
1284
+ 286
1285
+ 287
1286
+ 288
1287
+ 289
1288
+ 290
1289
+ 291
1290
+ 292
1291
+ 293
1292
+ 294
1293
+ 295
1294
+ 296
1295
+ 297
1296
+ 298
1297
+ 299
1298
+ 300
1299
+ 301
1300
+ 302
1301
+ 303
1302
+ 304
1303
+ 305
1304
+ 306
1305
+ 307
1306
+ 308
1307
+ 309
1308
+ 310
1309
+ 311
1310
+ 312
1311
+ 313
1312
+ 314
1313
+ 315
1314
+ 316
1315
+ 317
1316
+ 318
1317
+ 319
1318
+ 320
1319
+ 321
1320
+ 322
1321
+ 323
1322
+ 324
1323
+ 325
1324
+ 326
1325
+ 327
1326
+ 328
1327
+ 329
1328
+ 330
1329
+ 331
1330
+ 332
1331
+ 333
1332
+ 334
1333
+ 335
1334
+ 336
1335
+ 337
1336
+ 338
1337
+ 339
1338
+ 340
1339
+ 341
1340
+ 342
1341
+ 343
1342
+ 344
1343
+ 345
1344
+ 346
1345
+ 347
1346
+ 348
1347
+ 349
1348
+ 350
1349
+ 351
1350
+ 352
1351
+ 353
1352
+ 354
1353
+ 355
1354
+ 356
1355
+ 357
1356
+ 358
1357
+ 359
1358
+ 360
1359
+ 361
1360
+ 362
1361
+ 363
1362
+ 364
1363
+ 365
1364
+ 366
1365
+ 367
1366
+ 368
1367
+ 369
1368
+ 370
1369
+ 371
1370
+ 372
1371
+ 373
1372
+ 374
1373
+ 375
1374
+ 376
1375
+ 377
1376
+ 378
1377
+ 379
1378
+ 380
1379
+ 381
1380
+ 382
1381
+ 383
1382
+ 384
1383
+ 385
1384
+ 386
1385
+ 387</pre>
1386
+ </td>
1387
+ <td>
1388
+ <pre class="code"><span class="info file"># File 'lib/boris/profiles/windows_core.rb', line 258</span>
1389
+
1390
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_network_interfaces'>get_network_interfaces</span>
1391
+ <span class='kw'>super</span>
1392
+
1393
+ <span class='comment'># retrieve ethernet interfaces
1394
+ </span> <span class='id identifier rubyid_ethernet_interfaces'>ethernet_interfaces</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_values_at'>values_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT Index, MACAddress, Manufacturer, NetConnectionID, NetConnectionStatus, ProductName FROM Win32_NetworkAdapter WHERE NetConnectionID IS NOT NULL</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1395
+
1396
+ <span class='id identifier rubyid_ethernet_interfaces'>ethernet_interfaces</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_interface_profile'>interface_profile</span><span class='op'>|</span>
1397
+ <span class='id identifier rubyid_h'>h</span> <span class='op'>=</span> <span class='id identifier rubyid_network_interface_template'>network_interface_template</span>
1398
+
1399
+ <span class='id identifier rubyid_index'>index</span> <span class='op'>=</span> <span class='id identifier rubyid_interface_profile'>interface_profile</span><span class='lbracket'>[</span><span class='symbol'>:index</span><span class='rbracket'>]</span>
1400
+ <span class='id identifier rubyid_padded_index'>padded_index</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>%04d</span><span class='tstring_end'>'</span></span> <span class='op'>%</span> <span class='id identifier rubyid_index'>index</span>
1401
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:is_uplink</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>false</span>
1402
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:mac_address</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_interface_profile'>interface_profile</span><span class='lbracket'>[</span><span class='symbol'>:macaddress</span><span class='rbracket'>]</span>
1403
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:model</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_interface_profile'>interface_profile</span><span class='lbracket'>[</span><span class='symbol'>:productname</span><span class='rbracket'>]</span>
1404
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_interface_profile'>interface_profile</span><span class='lbracket'>[</span><span class='symbol'>:netconnectionid</span><span class='rbracket'>]</span>
1405
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:status</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>case</span> <span class='id identifier rubyid_interface_profile'>interface_profile</span><span class='lbracket'>[</span><span class='symbol'>:netconnectionstatus</span><span class='rbracket'>]</span>
1406
+ <span class='kw'>when</span> <span class='int'>1</span><span class='comma'>,</span> <span class='int'>2</span><span class='semicolon'>;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>up</span><span class='tstring_end'>'</span></span>
1407
+ <span class='kw'>else</span><span class='semicolon'>;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>down</span><span class='tstring_end'>'</span></span>
1408
+ <span class='kw'>end</span>
1409
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>ethernet</span><span class='tstring_end'>'</span></span>
1410
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:vendor</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_interface_profile'>interface_profile</span><span class='lbracket'>[</span><span class='symbol'>:manufacturer</span><span class='rbracket'>]</span>
1411
+
1412
+ <span class='comment'># retrieve config for this interface
1413
+ </span> <span class='id identifier rubyid_interface_config'>interface_config</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_value_at'>value_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>SELECT DNSServerSearchOrder, IPAddress, IPSubnet, SettingID FROM Win32_NetworkAdapterConfiguration WHERE Index = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_index'>index</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1414
+ <span class='id identifier rubyid_guid'>guid</span> <span class='op'>=</span> <span class='id identifier rubyid_interface_config'>interface_config</span><span class='lbracket'>[</span><span class='symbol'>:settingid</span><span class='rbracket'>]</span>
1415
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:dns_servers</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_interface_config'>interface_config</span><span class='lbracket'>[</span><span class='symbol'>:dnsserversearchorder</span><span class='rbracket'>]</span>
1416
+
1417
+ <span class='id identifier rubyid_subnet'>subnet</span> <span class='op'>=</span> <span class='id identifier rubyid_interface_config'>interface_config</span><span class='lbracket'>[</span><span class='symbol'>:ipsubnet</span><span class='rbracket'>]</span>
1418
+ <span class='id identifier rubyid_interface_config'>interface_config</span><span class='lbracket'>[</span><span class='symbol'>:ipaddress</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_ip_address'>ip_address</span><span class='op'>|</span>
1419
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:ip_addresses</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='lbrace'>{</span><span class='symbol'>:ip_address</span><span class='op'>=&gt;</span><span class='id identifier rubyid_ip_address'>ip_address</span><span class='comma'>,</span> <span class='symbol'>:subnet</span><span class='op'>=&gt;</span><span class='id identifier rubyid_subnet'>subnet</span><span class='rbrace'>}</span>
1420
+ <span class='kw'>end</span>
1421
+
1422
+ <span class='id identifier rubyid_cfg_keypath'>cfg_keypath</span> <span class='op'>=</span> <span class='const'>NIC_CFG_KEYPATH</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\\</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_padded_index'>padded_index</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1423
+
1424
+ <span class='comment'># retrieve auto negotiate/duplex setting. tricky to get because this is very driver-specific.
1425
+ </span> <span class='comment'># basically we have some known duplex values in DUPLEX_REG_VALS, then we search in the registry
1426
+ </span> <span class='comment'># for each value and see if it exists. if it exists, then we dig deeper into the subkeys
1427
+ </span> <span class='comment'># of this NIC's driver registry key and get the translated value from the list of options
1428
+ </span> <span class='comment'># (found in the \Enum subkey)
1429
+ </span> <span class='id identifier rubyid_interface_driver_config'>interface_driver_config</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_values_at'>registry_values_at</span><span class='lparen'>(</span><span class='id identifier rubyid_cfg_keypath'>cfg_keypath</span><span class='rparen'>)</span>
1430
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:auto_negotiate</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>false</span>
1431
+ <span class='id identifier rubyid_duplex_reg_value'>duplex_reg_value</span> <span class='op'>=</span> <span class='id identifier rubyid_interface_driver_config'>interface_driver_config</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='op'>|</span> <span class='const'>DUPLEX_REG_VALS</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span><span class='rbrace'>}</span>
1432
+
1433
+ <span class='kw'>if</span> <span class='id identifier rubyid_duplex_reg_value'>duplex_reg_value</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
1434
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:auto_negotiate</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
1435
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:duplex</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>auto</span><span class='tstring_end'>'</span></span>
1436
+ <span class='kw'>else</span>
1437
+ <span class='id identifier rubyid_duplex_value'>duplex_value</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_values_at'>registry_values_at</span><span class='lparen'>(</span><span class='id identifier rubyid_cfg_keypath'>cfg_keypath</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\\Ndi\\params\\</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_duplex_reg_value'>duplex_reg_value</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>\\Enum</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1438
+ <span class='id identifier rubyid_duplex_value'>duplex_value</span> <span class='op'>=</span> <span class='id identifier rubyid_duplex_value'>duplex_value</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='op'>|</span> <span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>==</span> <span class='id identifier rubyid_duplex_reg_value'>duplex_reg_value</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
1439
+
1440
+ <span class='kw'>if</span> <span class='id identifier rubyid_duplex_value'>duplex_value</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>auto|default</span><span class='regexp_end'>/i</span></span>
1441
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:auto_negotiate</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>true</span>
1442
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:duplex</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>auto</span><span class='tstring_end'>'</span></span>
1443
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_duplex_value'>duplex_value</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>1000|full</span><span class='regexp_end'>/i</span></span>
1444
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:duplex</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>full</span><span class='tstring_end'>'</span></span>
1445
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_duplex_value'>duplex_value</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>half</span><span class='regexp_end'>/i</span></span>
1446
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:duplex</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>half</span><span class='tstring_end'>'</span></span>
1447
+ <span class='kw'>end</span>
1448
+ <span class='kw'>end</span>
1449
+
1450
+ <span class='comment'># get model/vendor ids
1451
+ </span> <span class='id identifier rubyid_hardware_ids'>hardware_ids</span> <span class='op'>=</span> <span class='id identifier rubyid_interface_driver_config'>interface_driver_config</span><span class='lbracket'>[</span><span class='symbol'>:matchingdeviceid</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>[ven|dev]_(\d{4})</span><span class='regexp_end'>/i</span></span><span class='rparen'>)</span>
1452
+
1453
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:vendor_id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>0x</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_hardware_ids'>hardware_ids</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span> <span class='kw'>unless</span> <span class='id identifier rubyid_hardware_ids'>hardware_ids</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1454
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:model_id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>0x</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_hardware_ids'>hardware_ids</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span> <span class='kw'>unless</span> <span class='id identifier rubyid_hardware_ids'>hardware_ids</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1455
+
1456
+ <span class='comment'># retrieve mtu
1457
+ </span> <span class='id identifier rubyid_mtu_data'>mtu_data</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_values_at'>registry_values_at</span><span class='lparen'>(</span><span class='const'>TCPIP_CFG_KEYPATH</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\\</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_guid'>guid</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1458
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:mtu</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_mtu_data'>mtu_data</span><span class='lbracket'>[</span><span class='symbol'>:mtu</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_mtu_data'>mtu_data</span><span class='period'>.</span><span class='id identifier rubyid_has_key?'>has_key?</span><span class='lparen'>(</span><span class='symbol'>:mtu</span><span class='rparen'>)</span>
1459
+
1460
+ <span class='comment'># translate the adapter guid to it's internal device name (usually prefixed with \\DEVICE)
1461
+ </span> <span class='id identifier rubyid_device_guid'>device_guid</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_values_at'>registry_values_at</span><span class='lparen'>(</span><span class='id identifier rubyid_cfg_keypath'>cfg_keypath</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>\\Linkage</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='symbol'>:export</span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\\</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>\\\\\\</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1462
+
1463
+ <span class='id identifier rubyid_adapter_name_data'>adapter_name_data</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_value_at'>value_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>SELECT InstanceName FROM MSNdis_EnumerateAdapter WHERE DeviceName = '</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_device_guid'>device_guid</span><span class='rbrace'>}</span><span class='tstring_content'>'</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:root_wmi</span><span class='rparen'>)</span>
1464
+ <span class='id identifier rubyid_internal_adapter_name'>internal_adapter_name</span> <span class='op'>=</span> <span class='id identifier rubyid_adapter_name_data'>adapter_name_data</span><span class='lbracket'>[</span><span class='symbol'>:instancename</span><span class='rbracket'>]</span>
1465
+
1466
+ <span class='comment'># now with the internal adapter name, we can grab the connection speed.
1467
+ </span> <span class='id identifier rubyid_speed_data'>speed_data</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_value_at'>value_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>SELECT NdisLinkSpeed FROM MSNdis_LinkSpeed WHERE InstanceName = '</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_internal_adapter_name'>internal_adapter_name</span><span class='rbrace'>}</span><span class='tstring_content'>'</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:root_wmi</span><span class='rparen'>)</span>
1468
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:current_speed_mbps</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_speed_data'>speed_data</span><span class='lbracket'>[</span><span class='symbol'>:ndislinkspeed</span><span class='rbracket'>]</span> <span class='op'>/</span> <span class='int'>10000</span>
1469
+
1470
+ <span class='ivar'>@network_interfaces</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_h'>h</span>
1471
+ <span class='kw'>end</span>
1472
+
1473
+ <span class='comment'># retrieve fibre channel interfaces. for windows 2003, this only works if the hbaapi is
1474
+ </span> <span class='comment'># available, which can be installed by the fibre controller software provided by the
1475
+ </span> <span class='comment'># vendor, or is installed as a separate package (fcinfo from microsoft). newer versions
1476
+ </span> <span class='comment'># should have it built-in by default.
1477
+ </span> <span class='id identifier rubyid_fibre_interface_profiles'>fibre_interface_profiles</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_values_at'>values_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT Attributes, InstanceName FROM MSFC_FibrePortHBAAttributes</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='symbol'>:root_wmi</span><span class='rparen'>)</span>
1478
+
1479
+ <span class='id identifier rubyid_fibre_interfaces'>fibre_interfaces</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_values_at'>values_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT InstanceName, Manufacturer, ModelDescription FROM MSFC_FCAdapterHBAAttributes</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='symbol'>:root_wmi</span><span class='rparen'>)</span>
1480
+
1481
+ <span class='id identifier rubyid_fibre_interfaces'>fibre_interfaces</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_fibre_interface'>fibre_interface</span><span class='op'>|</span>
1482
+ <span class='id identifier rubyid_h'>h</span> <span class='op'>=</span> <span class='id identifier rubyid_network_interface_template'>network_interface_template</span>
1483
+
1484
+ <span class='id identifier rubyid_index'>index</span> <span class='op'>=</span> <span class='id identifier rubyid_fibre_interface_profiles'>fibre_interface_profiles</span><span class='period'>.</span><span class='id identifier rubyid_index'>index</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_profile'>profile</span><span class='op'>|</span> <span class='id identifier rubyid_profile'>profile</span><span class='lbracket'>[</span><span class='symbol'>:instancename</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_fibre_interface'>fibre_interface</span><span class='lbracket'>[</span><span class='symbol'>:instancename</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
1485
+ <span class='id identifier rubyid_profile'>profile</span> <span class='op'>=</span> <span class='id identifier rubyid_fibre_interface_profiles'>fibre_interface_profiles</span><span class='lbracket'>[</span><span class='id identifier rubyid_index'>index</span><span class='rbracket'>]</span>
1486
+
1487
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:fabric_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_profile'>profile</span><span class='lbracket'>[</span><span class='symbol'>:fabricname</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_wwn'>to_wwn</span>
1488
+
1489
+ <span class='kw'>if</span> <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:fabric_name</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>0000000000000000</span><span class='tstring_end'>'</span></span>
1490
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:fabric_name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>nil</span>
1491
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:status</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>down</span><span class='tstring_end'>'</span></span>
1492
+ <span class='kw'>else</span>
1493
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:current_speed_mbps</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>case</span> <span class='id identifier rubyid_profile'>profile</span><span class='lbracket'>[</span><span class='symbol'>:portspeed</span><span class='rbracket'>]</span>
1494
+ <span class='kw'>when</span> <span class='int'>1</span><span class='semicolon'>;</span> <span class='int'>1000</span>
1495
+ <span class='kw'>when</span> <span class='int'>2</span><span class='semicolon'>;</span> <span class='int'>2000</span>
1496
+ <span class='kw'>when</span> <span class='int'>4</span><span class='semicolon'>;</span> <span class='int'>10000</span>
1497
+ <span class='kw'>when</span> <span class='int'>8</span><span class='semicolon'>;</span> <span class='int'>4000</span>
1498
+ <span class='kw'>when</span> <span class='int'>16</span><span class='semicolon'>;</span> <span class='int'>8000</span>
1499
+ <span class='kw'>when</span> <span class='int'>32</span><span class='semicolon'>;</span> <span class='int'>16000</span>
1500
+ <span class='kw'>end</span>
1501
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:status</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>up</span><span class='tstring_end'>'</span></span>
1502
+ <span class='kw'>end</span>
1503
+
1504
+ <span class='id identifier rubyid_hardware_ids'>hardware_ids</span> <span class='op'>=</span> <span class='id identifier rubyid_fibre_interface'>fibre_interface</span><span class='lbracket'>[</span><span class='symbol'>:instancename</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>[ven|dev]_(\d{4})</span><span class='regexp_end'>/i</span></span><span class='rparen'>)</span>
1505
+
1506
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:vendor_id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>0x</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_hardware_ids'>hardware_ids</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span>
1507
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:model_id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>0x</span><span class='tstring_end'>'</span></span> <span class='op'>+</span> <span class='id identifier rubyid_hardware_ids'>hardware_ids</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span>
1508
+
1509
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:is_uplink</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>false</span>
1510
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:model</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_fibre_interface'>fibre_interface</span><span class='lbracket'>[</span><span class='symbol'>:modeldescription</span><span class='rbracket'>]</span>
1511
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>fc</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_index'>index</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1512
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:node_wwn</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_profile'>profile</span><span class='lbracket'>[</span><span class='symbol'>:nodewwn</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_wwn'>to_wwn</span>
1513
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:port_wwn</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_profile'>profile</span><span class='lbracket'>[</span><span class='symbol'>:portwwn</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_wwn'>to_wwn</span>
1514
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:type</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>fibre</span><span class='tstring_end'>'</span></span>
1515
+ <span class='id identifier rubyid_h'>h</span><span class='lbracket'>[</span><span class='symbol'>:vendor</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_fibre_interface'>fibre_interface</span><span class='lbracket'>[</span><span class='symbol'>:manufacturer</span><span class='rbracket'>]</span>
1516
+
1517
+ <span class='ivar'>@network_interfaces</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_h'>h</span>
1518
+ <span class='kw'>end</span>
1519
+ <span class='kw'>end</span></pre>
1520
+ </td>
1521
+ </tr>
1522
+ </table>
1523
+ </div>
1524
+
1525
+ <div class="method_details ">
1526
+ <h3 class="signature " id="get_operating_system-instance_method">
1527
+
1528
+ - (<tt>Object</tt>) <strong>get_operating_system</strong>
1529
+
1530
+
1531
+
1532
+
1533
+
1534
+ </h3><table class="source_code">
1535
+ <tr>
1536
+ <td>
1537
+ <pre class="lines">
1538
+
1539
+
1540
+ 389
1541
+ 390
1542
+ 391
1543
+ 392
1544
+ 393
1545
+ 394
1546
+ 395
1547
+ 396
1548
+ 397
1549
+ 398
1550
+ 399
1551
+ 400
1552
+ 401
1553
+ 402
1554
+ 403
1555
+ 404
1556
+ 405
1557
+ 406
1558
+ 407</pre>
1559
+ </td>
1560
+ <td>
1561
+ <pre class="code"><span class="info file"># File 'lib/boris/profiles/windows_core.rb', line 389</span>
1562
+
1563
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_operating_system'>get_operating_system</span>
1564
+ <span class='kw'>super</span>
1565
+
1566
+ <span class='id identifier rubyid_os_data'>os_data</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_value_at'>value_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT Caption, CSDVersion, InstallDate, OtherTypeDescription, Version FROM Win32_OperatingSystem</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1567
+ <span class='ivar'>@operating_system</span><span class='lbracket'>[</span><span class='symbol'>:date_installed</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_os_data'>os_data</span><span class='lbracket'>[</span><span class='symbol'>:installdate</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1568
+ <span class='ivar'>@operating_system</span><span class='lbracket'>[</span><span class='symbol'>:kernel</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_os_data'>os_data</span><span class='lbracket'>[</span><span class='symbol'>:version</span><span class='rbracket'>]</span>
1569
+ <span class='ivar'>@operating_system</span><span class='lbracket'>[</span><span class='symbol'>:license_key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_get_product_key'>get_product_key</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>microsoft windows</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1570
+ <span class='ivar'>@operating_system</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Microsoft Windows</span><span class='tstring_end'>'</span></span>
1571
+ <span class='ivar'>@operating_system</span><span class='lbracket'>[</span><span class='symbol'>:service_pack</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_os_data'>os_data</span><span class='lbracket'>[</span><span class='symbol'>:csdversion</span><span class='rbracket'>]</span>
1572
+
1573
+ <span class='id identifier rubyid_role_data'>role_data</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_value_at'>value_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SELECT Roles FROM Win32_ComputerSystem</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
1574
+ <span class='ivar'>@operating_system</span><span class='lbracket'>[</span><span class='symbol'>:roles</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_role_data'>role_data</span><span class='lbracket'>[</span><span class='symbol'>:roles</span><span class='rbracket'>]</span>
1575
+
1576
+ <span class='id identifier rubyid_os_data'>os_data</span><span class='lbracket'>[</span><span class='symbol'>:caption</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_gsub!'>gsub!</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>microsoftr*|windows|(?&lt;=server)r|\(r\)|edition|,</span><span class='regexp_end'>/i</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_strip!'>strip!</span>
1577
+ <span class='id identifier rubyid_edition'>edition</span> <span class='op'>=</span> <span class='id identifier rubyid_os_data'>os_data</span><span class='lbracket'>[</span><span class='symbol'>:othertypedescription</span><span class='rbracket'>]</span>
1578
+ <span class='id identifier rubyid_os_data'>os_data</span><span class='lbracket'>[</span><span class='symbol'>:caption</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_sub!'>sub!</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>20[0-9]*</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_y'>y</span><span class='op'>|</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_y'>y</span><span class='rbrace'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_edition'>edition</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='id identifier rubyid_edition'>edition</span>
1579
+
1580
+ <span class='ivar'>@operating_system</span><span class='lbracket'>[</span><span class='symbol'>:version</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_os_data'>os_data</span><span class='lbracket'>[</span><span class='symbol'>:caption</span><span class='rbracket'>]</span>
1581
+ <span class='kw'>end</span></pre>
1582
+ </td>
1583
+ </tr>
1584
+ </table>
1585
+ </div>
1586
+
1587
+ <div class="method_details ">
1588
+ <h3 class="signature " id="get_product_key-instance_method">
1589
+
1590
+ - (<tt>Object</tt>) <strong>get_product_key</strong>(app_name, guid = nil)
1591
+
1592
+
1593
+
1594
+
1595
+
1596
+ </h3><table class="source_code">
1597
+ <tr>
1598
+ <td>
1599
+ <pre class="lines">
1600
+
1601
+
1602
+ 409
1603
+ 410
1604
+ 411
1605
+ 412
1606
+ 413
1607
+ 414
1608
+ 415
1609
+ 416
1610
+ 417
1611
+ 418
1612
+ 419
1613
+ 420
1614
+ 421
1615
+ 422
1616
+ 423
1617
+ 424
1618
+ 425
1619
+ 426
1620
+ 427
1621
+ 428
1622
+ 429
1623
+ 430
1624
+ 431
1625
+ 432
1626
+ 433
1627
+ 434
1628
+ 435
1629
+ 436
1630
+ 437
1631
+ 438
1632
+ 439
1633
+ 440
1634
+ 441
1635
+ 442
1636
+ 443
1637
+ 444
1638
+ 445
1639
+ 446
1640
+ 447
1641
+ 448
1642
+ 449
1643
+ 450
1644
+ 451
1645
+ 452
1646
+ 453
1647
+ 454
1648
+ 455
1649
+ 456
1650
+ 457
1651
+ 458
1652
+ 459
1653
+ 460
1654
+ 461
1655
+ 462
1656
+ 463
1657
+ 464
1658
+ 465
1659
+ 466
1660
+ 467
1661
+ 468
1662
+ 469
1663
+ 470
1664
+ 471
1665
+ 472
1666
+ 473
1667
+ 474
1668
+ 475
1669
+ 476
1670
+ 477
1671
+ 478
1672
+ 479
1673
+ 480
1674
+ 481
1675
+ 482
1676
+ 483
1677
+ 484
1678
+ 485
1679
+ 486
1680
+ 487
1681
+ 488
1682
+ 489
1683
+ 490
1684
+ 491
1685
+ 492
1686
+ 493
1687
+ 494
1688
+ 495
1689
+ 496
1690
+ 497
1691
+ 498
1692
+ 499
1693
+ 500</pre>
1694
+ </td>
1695
+ <td>
1696
+ <pre class="code"><span class="info file"># File 'lib/boris/profiles/windows_core.rb', line 409</span>
1697
+
1698
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_product_key'>get_product_key</span><span class='lparen'>(</span><span class='id identifier rubyid_app_name'>app_name</span><span class='comma'>,</span> <span class='id identifier rubyid_guid'>guid</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
1699
+
1700
+ <span class='id identifier rubyid_product_key'>product_key</span> <span class='op'>=</span> <span class='kw'>nil</span>
1701
+
1702
+ <span class='kw'>if</span> <span class='id identifier rubyid_app_name'>app_name</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>microsoft</span><span class='regexp_end'>/i</span></span>
1703
+
1704
+ <span class='id identifier rubyid_app_name'>app_name</span><span class='period'>.</span><span class='id identifier rubyid_remove_arch'>remove_arch</span>
1705
+
1706
+ <span class='kw'>case</span>
1707
+ <span class='kw'>when</span> <span class='id identifier rubyid_app_name'>app_name</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>microsoft exchange</span><span class='regexp_end'>/i</span></span>
1708
+
1709
+ <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>attempting to retrieve ms exchange product key</span><span class='tstring_end'>'</span></span>
1710
+
1711
+ <span class='id identifier rubyid_key_path'>key_path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SOFTWARE\Microsoft\Exchange\Setup</span><span class='tstring_end'>'</span></span>
1712
+ <span class='id identifier rubyid_product_key'>product_key</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_values_at'>registry_values_at</span><span class='lparen'>(</span><span class='id identifier rubyid_key_path'>key_path</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='symbol'>:digitalproductid</span><span class='rbracket'>]</span>
1713
+ <span class='id identifier rubyid_product_key'>product_key</span> <span class='op'>=</span> <span class='id identifier rubyid_product_key'>product_key</span><span class='period'>.</span><span class='id identifier rubyid_to_ms_product_key'>to_ms_product_key</span> <span class='kw'>unless</span> <span class='id identifier rubyid_product_key'>product_key</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1714
+
1715
+ <span class='kw'>when</span> <span class='id identifier rubyid_app_name'>app_name</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>office</span><span class='regexp_end'>/i</span></span>
1716
+
1717
+ <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>attempting to retrieve ms office product key</span><span class='tstring_end'>'</span></span>
1718
+
1719
+ <span class='id identifier rubyid_version_code'>version_code</span> <span class='op'>=</span> <span class='kw'>case</span>
1720
+ <span class='kw'>when</span> <span class='id identifier rubyid_app_name'>app_name</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>2003</span><span class='regexp_end'>/</span></span><span class='semicolon'>;</span> <span class='int'>11</span>
1721
+ <span class='kw'>when</span> <span class='id identifier rubyid_app_name'>app_name</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>2007|server 12</span><span class='regexp_end'>/</span></span><span class='semicolon'>;</span> <span class='int'>12</span>
1722
+ <span class='kw'>when</span> <span class='id identifier rubyid_app_name'>app_name</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>2010</span><span class='regexp_end'>/</span></span><span class='semicolon'>;</span> <span class='int'>14</span>
1723
+ <span class='kw'>when</span> <span class='id identifier rubyid_app_name'>app_name</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>2013</span><span class='regexp_end'>/</span></span><span class='semicolon'>;</span> <span class='int'>15</span>
1724
+ <span class='kw'>end</span>
1725
+
1726
+ <span class='id identifier rubyid_key_path'>key_path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>SOFTWARE\\Microsoft\\Office\\</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_version_code'>version_code</span><span class='rbrace'>}</span><span class='tstring_content'>.0\\Registration\\</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_guid'>guid</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
1727
+ <span class='id identifier rubyid_product_key'>product_key</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_values_at'>registry_values_at</span><span class='lparen'>(</span><span class='id identifier rubyid_key_path'>key_path</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='symbol'>:digitalproductid</span><span class='rbracket'>]</span>
1728
+ <span class='id identifier rubyid_product_key'>product_key</span> <span class='op'>=</span> <span class='id identifier rubyid_product_key'>product_key</span><span class='period'>.</span><span class='id identifier rubyid_to_ms_product_key'>to_ms_product_key</span> <span class='kw'>unless</span> <span class='id identifier rubyid_product_key'>product_key</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1729
+
1730
+ <span class='kw'>when</span> <span class='id identifier rubyid_app_name'>app_name</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>sql server</span><span class='regexp_end'>/i</span></span>
1731
+
1732
+ <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>attempting to retrieve ms sqlserver product key</span><span class='tstring_end'>'</span></span>
1733
+
1734
+ <span class='id identifier rubyid_app_edition'>app_edition</span> <span class='op'>=</span> <span class='kw'>nil</span>
1735
+
1736
+ <span class='id identifier rubyid_key_path'>key_path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SOFTWARE\Microsoft\Microsoft SQL Server</span><span class='tstring_end'>'</span></span>
1737
+
1738
+ <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_subkeys_at'>registry_subkeys_at</span><span class='lparen'>(</span><span class='id identifier rubyid_key_path'>key_path</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='op'>|</span>
1739
+
1740
+ <span class='kw'>if</span> <span class='id identifier rubyid_key'>key</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>mssql(\.|10|11)</span><span class='regexp_end'>/i</span></span>
1741
+
1742
+ <span class='id identifier rubyid_version_code'>version_code</span> <span class='op'>=</span> <span class='kw'>case</span>
1743
+ <span class='kw'>when</span> <span class='id identifier rubyid_key'>key</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>_50</span><span class='regexp_end'>/i</span></span><span class='semicolon'>;</span> <span class='kw'>nil</span> <span class='comment'># express edition (use nil to avoid detection of product key)
1744
+ </span> <span class='kw'>when</span> <span class='id identifier rubyid_key'>key</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>mssql\.</span><span class='regexp_end'>/i</span></span><span class='semicolon'>;</span> <span class='int'>90</span> <span class='comment'># 2005
1745
+ </span> <span class='kw'>when</span> <span class='id identifier rubyid_key'>key</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>mssql10</span><span class='regexp_end'>/i</span></span><span class='semicolon'>;</span> <span class='int'>100</span> <span class='comment'># 2008
1746
+ </span> <span class='kw'>when</span> <span class='id identifier rubyid_key'>key</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>mssql11</span><span class='regexp_end'>/i</span></span><span class='semicolon'>;</span> <span class='int'>110</span> <span class='comment'># 2012
1747
+ </span> <span class='kw'>end</span>
1748
+
1749
+ <span class='kw'>if</span> <span class='id identifier rubyid_version_code'>version_code</span>
1750
+ <span class='id identifier rubyid_key_path'>key_path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_key_path'>key_path</span><span class='rbrace'>}</span><span class='tstring_content'>\\</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_version_code'>version_code</span><span class='rbrace'>}</span><span class='tstring_content'>\\ProductID</span><span class='tstring_end'>&quot;</span></span>
1751
+ <span class='id identifier rubyid_product_key'>product_key</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_values_at'>registry_values_at</span><span class='lparen'>(</span><span class='id identifier rubyid_key_path'>key_path</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='symbol'>:digitalproductid</span><span class='rbracket'>]</span>
1752
+ <span class='id identifier rubyid_product_key'>product_key</span> <span class='op'>=</span> <span class='id identifier rubyid_product_key'>product_key</span><span class='period'>.</span><span class='id identifier rubyid_to_ms_product_key'>to_ms_product_key</span> <span class='kw'>unless</span> <span class='id identifier rubyid_product_key'>product_key</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1753
+ <span class='kw'>end</span>
1754
+ <span class='kw'>end</span>
1755
+ <span class='kw'>end</span>
1756
+
1757
+ <span class='kw'>when</span> <span class='id identifier rubyid_app_name'>app_name</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>visual studio</span><span class='regexp_end'>/i</span></span>
1758
+
1759
+ <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>attempting to retrieve ms visual studio product key</span><span class='tstring_end'>'</span></span>
1760
+
1761
+ <span class='id identifier rubyid_version_code'>version_code</span> <span class='op'>=</span> <span class='kw'>case</span>
1762
+ <span class='kw'>when</span> <span class='id identifier rubyid_app_name'>app_name</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>2005</span><span class='regexp_end'>/</span></span><span class='semicolon'>;</span> <span class='int'>8</span>
1763
+ <span class='kw'>when</span> <span class='id identifier rubyid_app_name'>app_name</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>2008</span><span class='regexp_end'>/</span></span><span class='semicolon'>;</span> <span class='int'>9</span>
1764
+ <span class='kw'>when</span> <span class='id identifier rubyid_app_name'>app_name</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>2010</span><span class='regexp_end'>/</span></span><span class='semicolon'>;</span> <span class='int'>10</span>
1765
+ <span class='kw'>when</span> <span class='id identifier rubyid_app_name'>app_name</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>2012</span><span class='regexp_end'>/</span></span><span class='semicolon'>;</span> <span class='int'>11</span>
1766
+ <span class='kw'>end</span>
1767
+
1768
+ <span class='id identifier rubyid_key_path'>key_path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>SOFTWARE\\Microsoft\\VisualStudio\\</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_version_code'>version_code</span><span class='rbrace'>}</span><span class='tstring_content'>.0\\Registration</span><span class='tstring_end'>&quot;</span></span>
1769
+ <span class='id identifier rubyid_product_key'>product_key</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_values_at'>registry_values_at</span><span class='lparen'>(</span><span class='id identifier rubyid_key_path'>key_path</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='symbol'>:pidkey</span><span class='rbracket'>]</span>
1770
+ <span class='id identifier rubyid_product_key'>product_key</span> <span class='op'>=</span> <span class='id identifier rubyid_product_key'>product_key</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>.{5}</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>-</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_product_key'>product_key</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1771
+
1772
+ <span class='kw'>when</span> <span class='id identifier rubyid_app_name'>app_name</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^microsoft windows$</span><span class='regexp_end'>/i</span></span>
1773
+
1774
+ <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>attempting to retrieve ms windows product key</span><span class='tstring_end'>'</span></span>
1775
+
1776
+ <span class='id identifier rubyid_key_path'>key_path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>SOFTWARE\Microsoft\Windows NT\CurrentVersion</span><span class='tstring_end'>'</span></span>
1777
+ <span class='id identifier rubyid_product_key'>product_key</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_registry_values_at'>registry_values_at</span><span class='lparen'>(</span><span class='id identifier rubyid_key_path'>key_path</span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='symbol'>:digitalproductid</span><span class='rbracket'>]</span>
1778
+ <span class='id identifier rubyid_product_key'>product_key</span> <span class='op'>=</span> <span class='id identifier rubyid_product_key'>product_key</span><span class='period'>.</span><span class='id identifier rubyid_to_ms_product_key'>to_ms_product_key</span> <span class='kw'>unless</span> <span class='id identifier rubyid_product_key'>product_key</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1779
+ <span class='kw'>end</span>
1780
+
1781
+ <span class='kw'>if</span> <span class='id identifier rubyid_product_key'>product_key</span>
1782
+ <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>product key retrieved</span><span class='tstring_end'>'</span></span>
1783
+ <span class='kw'>return</span> <span class='id identifier rubyid_product_key'>product_key</span>
1784
+ <span class='kw'>else</span>
1785
+ <span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>product key could not be retrieved</span><span class='tstring_end'>'</span></span>
1786
+ <span class='kw'>end</span>
1787
+
1788
+ <span class='kw'>end</span>
1789
+ <span class='kw'>end</span></pre>
1790
+ </td>
1791
+ </tr>
1792
+ </table>
1793
+ </div>
1794
+
1795
+ <div class="method_details ">
1796
+ <h3 class="signature " id="get_username-instance_method">
1797
+
1798
+ - (<tt>Object</tt>) <strong>get_username</strong>(guid)
1799
+
1800
+
1801
+
1802
+
1803
+
1804
+ </h3><table class="source_code">
1805
+ <tr>
1806
+ <td>
1807
+ <pre class="lines">
1808
+
1809
+
1810
+ 502
1811
+ 503
1812
+ 504
1813
+ 505
1814
+ 506
1815
+ 507
1816
+ 508
1817
+ 509</pre>
1818
+ </td>
1819
+ <td>
1820
+ <pre class="code"><span class="info file"># File 'lib/boris/profiles/windows_core.rb', line 502</span>
1821
+
1822
+ <span class='kw'>def</span> <span class='id identifier rubyid_get_username'>get_username</span><span class='lparen'>(</span><span class='id identifier rubyid_guid'>guid</span><span class='rparen'>)</span>
1823
+ <span class='id identifier rubyid_username'>username</span> <span class='op'>=</span> <span class='id identifier rubyid_guid'>guid</span>
1824
+
1825
+ <span class='id identifier rubyid_user'>user</span> <span class='op'>=</span> <span class='ivar'>@connector</span><span class='period'>.</span><span class='id identifier rubyid_value_at'>value_at</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>SELECT Caption, SID FROM Win32_UserAccount WHERE SID = '</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_guid'>guid</span><span class='rbrace'>}</span><span class='tstring_content'>'</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1826
+ <span class='id identifier rubyid_username'>username</span> <span class='op'>=</span> <span class='id identifier rubyid_user'>user</span><span class='lbracket'>[</span><span class='symbol'>:caption</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_user'>user</span><span class='lbracket'>[</span><span class='symbol'>:sid</span><span class='rbracket'>]</span> <span class='op'>==</span> <span class='id identifier rubyid_guid'>guid</span>
1827
+
1828
+ <span class='kw'>return</span> <span class='id identifier rubyid_username'>username</span>
1829
+ <span class='kw'>end</span></pre>
1830
+ </td>
1831
+ </tr>
1832
+ </table>
1833
+ </div>
1834
+
1835
+ </div>
1836
+
1837
+ </div>
1838
+
1839
+ <div id="footer">
1840
+ Generated on Sun Feb 3 16:32:42 2013 by
1841
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1842
+ 0.8.3 (ruby-1.9.3).
1843
+ </div>
1844
+
1845
+ </body>
1846
+ </html>