boris 1.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
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>