boris 1.0.0.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE.md +9 -0
- data/README.md +94 -0
- data/boris.gemspec +28 -0
- data/doc/Array.html +437 -0
- data/doc/Boris.html +230 -0
- data/doc/Boris/ConnectionAlreadyActive.html +123 -0
- data/doc/Boris/ConnectionFailed.html +127 -0
- data/doc/Boris/Connector.html +794 -0
- data/doc/Boris/InvalidCredentials.html +131 -0
- data/doc/Boris/InvalidOption.html +123 -0
- data/doc/Boris/InvalidTargetName.html +123 -0
- data/doc/Boris/Lumberjack.html +466 -0
- data/doc/Boris/MissingCredentials.html +123 -0
- data/doc/Boris/NoActiveConnection.html +123 -0
- data/doc/Boris/NoProfileDetected.html +123 -0
- data/doc/Boris/Options.html +783 -0
- data/doc/Boris/Profiles.html +117 -0
- data/doc/Boris/Profiles/Linux.html +1151 -0
- data/doc/Boris/Profiles/RedHat.html +875 -0
- data/doc/Boris/Profiles/Solaris.html +1230 -0
- data/doc/Boris/Profiles/Structure.html +2050 -0
- data/doc/Boris/Profiles/UNIX.html +893 -0
- data/doc/Boris/Profiles/Windows.html +1846 -0
- data/doc/Boris/Profiles/Windows/Windows2003.html +304 -0
- data/doc/Boris/Profiles/Windows/Windows2008.html +379 -0
- data/doc/Boris/Profiles/Windows/Windows2012.html +304 -0
- data/doc/Boris/SNMPConnector.html +512 -0
- data/doc/Boris/SSHConnector.html +633 -0
- data/doc/Boris/Target.html +2002 -0
- data/doc/Boris/WMIConnector.html +1134 -0
- data/doc/BorisLogger.html +217 -0
- data/doc/Hash.html +195 -0
- data/doc/String.html +1246 -0
- data/doc/_index.html +420 -0
- data/doc/class_list.html +53 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +328 -0
- data/doc/file.README.html +183 -0
- data/doc/file_list.html +55 -0
- data/doc/frames.html +28 -0
- data/doc/index.html +183 -0
- data/doc/js/app.js +214 -0
- data/doc/js/full_list.js +173 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +1468 -0
- data/doc/top-level-namespace.html +126 -0
- data/lib/boris.rb +30 -0
- data/lib/boris/connectors.rb +47 -0
- data/lib/boris/connectors/snmp.rb +56 -0
- data/lib/boris/connectors/ssh.rb +110 -0
- data/lib/boris/connectors/wmi.rb +186 -0
- data/lib/boris/errors.rb +17 -0
- data/lib/boris/helpers/array.rb +63 -0
- data/lib/boris/helpers/constants.rb +20 -0
- data/lib/boris/helpers/hash.rb +8 -0
- data/lib/boris/helpers/scrubber.rb +51 -0
- data/lib/boris/helpers/string.rb +130 -0
- data/lib/boris/lumberjack.rb +47 -0
- data/lib/boris/options.rb +86 -0
- data/lib/boris/profiles/linux/redhat.rb +77 -0
- data/lib/boris/profiles/linux_core.rb +216 -0
- data/lib/boris/profiles/unix/solaris.rb +307 -0
- data/lib/boris/profiles/unix_core.rb +85 -0
- data/lib/boris/profiles/windows/windows2003.rb +15 -0
- data/lib/boris/profiles/windows/windows2008.rb +23 -0
- data/lib/boris/profiles/windows/windows2012.rb +15 -0
- data/lib/boris/profiles/windows_core.rb +530 -0
- data/lib/boris/structure.rb +167 -0
- data/lib/boris/target.rb +340 -0
- data/test/connector_tests/test_snmp.rb +35 -0
- data/test/connector_tests/test_ssh.rb +51 -0
- data/test/connector_tests/test_wmi.rb +129 -0
- data/test/helper_tests/test_array.rb +25 -0
- data/test/helper_tests/test_hash.rb +10 -0
- data/test/helper_tests/test_string.rb +136 -0
- data/test/profile_tests/test_core_skeleton +107 -0
- data/test/profile_tests/test_linux_core.rb +331 -0
- data/test/profile_tests/test_redhat.rb +134 -0
- data/test/profile_tests/test_solaris.rb +523 -0
- data/test/profile_tests/test_unix_core.rb +117 -0
- data/test/profile_tests/test_windows.rb +536 -0
- data/test/setup_tests.rb +14 -0
- data/test/test_all.rb +8 -0
- data/test/test_options.rb +44 -0
- data/test/test_structure.rb +136 -0
- data/test/test_target.rb +146 -0
- 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
|
+
— 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> »
|
35
|
+
<span class='title'><span class='object_link'><a href="../../Boris.html" title="Boris (module)">Boris</a></span></span> » <span class='title'><span class='object_link'><a href="../Profiles.html" title="Boris::Profiles (module)">Profiles</a></span></span>
|
36
|
+
»
|
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'>\"</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'>\"</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'><<</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'><<</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'>&&</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'><<</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'><<</span> <span class='lbrace'>{</span><span class='symbol'>:key_path</span><span class='op'>=></span><span class='id identifier rubyid_app_key'>app_key</span><span class='comma'>,</span> <span class='symbol'>:values</span><span class='op'>=></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'>"</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'>"</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'><<</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'><<</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'><<</span> <span class='lbrace'>{</span><span class='symbol'>:key_path</span><span class='op'>=></span><span class='id identifier rubyid_app_key'>app_key</span><span class='comma'>,</span> <span class='symbol'>:values</span><span class='op'>=></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'><<</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'><<</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'>"</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'>"</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'><<</span> <span class='lbrace'>{</span><span class='symbol'>:name</span><span class='op'>=></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'>=></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'>"</span><span class='tstring_content'>SELECT * FROM Win32_GroupUser WHERE GroupComponent = \"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'>'\"</span><span class='tstring_end'>"</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'><<</span> <span class='tstring'><span class='tstring_beg'>"</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'>"</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'>"</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'>"</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'><<</span> <span class='lbrace'>{</span><span class='symbol'>:ip_address</span><span class='op'>=></span><span class='id identifier rubyid_ip_address'>ip_address</span><span class='comma'>,</span> <span class='symbol'>:subnet</span><span class='op'>=></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'>"</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'>"</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'>"</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'>"</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'>"</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'>"</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'>"</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'>"</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'>"</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'>"</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'><<</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'>"</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'>"</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'><<</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|(?<=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'>"</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'>"</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'>"</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'>"</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'>"</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'>"</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'>"</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'>"</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'>"</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'>"</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>
|