因為本人技術提升了,是以這個腳本又改進了,得益于同僚給我悉心教導c#文法,這個腳本更好用了。廢話不多說,直接上代碼。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<code>#powerd by 九叔</code>
<code>#批量從VMM和Hyper-V中擷取IP位址,友善比對。更準确。</code>
<code>#轉載必須注明出處,可以以此做改進。</code>
<code>param</code><code>(</code>
<code> </code><code>[String]</code><code>$vmmServer</code> <code>= </code><code>"sc-vmmsp1"</code>
<code> </code><code>)</code>
<code>Import-Module</code> <code>virtualmachinemanager</code>
<code>Get-SCVMMServer</code> <code>-ComputerName </code><code>$vmmServer</code> <code>-SetAsDefault | </code><code>Out-Null</code>
<code>$VMs</code> <code>= </code><code>Get-vm</code> <code>-All</code>
<code>foreach</code><code>( </code><code>$VM</code> <code>in</code> <code>$VMs</code> <code>)</code>
<code>{</code>
<code> </code><code>$info_name</code> <code>= </code><code>$vm</code><code>.Name</code>
<code> </code><code>$allVMS</code> <code>= </code><code>Get-SCIPAddress</code>
<code> </code><code>foreach</code><code>(</code><code>$item</code> <code>in</code> <code>$allVMS</code><code>)</code>
<code> </code><code>{</code>
<code> </code><code>if</code><code>(</code><code>$VM</code><code>.Name </code><code>-eq</code> <code>$item</code><code>.Description </code><code>-and</code> <code>(</code><code>$vm</code><code>.IsPrimaryVM </code><code>-eq</code> <code>"false"</code><code>) )</code>
<code> </code><code>{ </code>
<code> </code><code>Write-Host</code> <code>"============================="</code> <code>-foregroundcolor </code><code>'Red'</code>
<code> </code><code>Write-Host</code> <code>1名字: </code><code>$info_name</code><code>;</code>
<code> </code><code>Write-Host</code> <code>2所在實體主機: (</code><code>$vm</code><code>.vmhost.FQDN)</code>
<code> </code><code>$vvmmhhss</code> <code>= </code><code>$vm</code><code>.vmhost.ComputerName</code>
<code> </code><code>$nb</code> <code>= </code><code>"invoke-command -computername $vvmmhhss -command{(Get-VMNetworkAdapter -VMName '$info_name').ipaddresses}"</code>
<code> </code><code>Write-Host</code> <code>3從VMM中擷取的IP </code><code>$item</code><code>.Address;</code>
<code> </code><code>Write-Host</code> <code>4從Hyper-V中擷取的IP </code>
<code> </code><code>powershell </code><code>$nb</code>
<code> </code>
<code> </code><code>}</code>
<code> </code><code>}}</code>
具體效果如下
<a href="http://s3.51cto.com/wyfs02/M00/6E/07/wKiom1VxS2vC_qLFAAJKUG4aX2c793.jpg" target="_blank"></a>
那麼這裡我其實發現了一個更有趣的地方,上面的例子也用到了
<code>echo 如果有兩個變量相加,那麼它實際上預設是寫在兩行的。</code>
<code>Write-Host</code> <code>但是不要用别名echo,用wr這句,多個變量是可以在一行顯示的。</code>
<code>另外,在wr的後面加 -nonewline 可以不換行</code>
<code>加 -foregroundcolor </code><code>'Blue'</code> <code>可以變顔色</code>
<code></code>
本文轉自 九叔 51CTO部落格,原文連結:http://blog.51cto.com/jiushu/1658890,如需轉載請自行聯系原作者