通常我们在.NET查询一台计算机的站点服务器名称使用的是 ActiveDirectorySite 这个类。
1
<code>[System.DirectoryServices.ActiveDirectory.ActiveDirectorySite]</code><code>::GetComputerSite().Name</code>
但是,有时候我们要查询远程计算机的站点名称,这个ActiveDirectorySite类不允许我们查询。
通常我们都是去远程计算机进入后查询注册表(这单非常麻烦)
(HKLM:\SYSTEM\CurrentControlSet\services\Netlogon\Parameters).
另一种方法是使用NLTEST的命令来进行查询或者命令第一站点的名称
2
3
<code>PS> nltest /server:server1 /dsgetsite</code>
<code>Default</code><code>-First-Site-Name</code>
<code>The command completed successfully</code>
如果命令完成我们得到的是默认的域的第一站点名称
最后包含的那个函数我们可以重复使用
4
5
6
7
8
9
<code>function</code> <code>Get-ComputerSite</code><code>(</code><code>$ComputerName</code><code>)</code>
<code>{</code>
<code> </code><code>$site</code> <code>= nltest /server:</code><code>$ComputerName</code> <code>/dsgetsite 2></code><code>$null</code>
<code> </code><code>if</code><code>(</code><code>$LASTEXITCODE</code> <code>-eq</code> <code>0){ </code><code>$site</code><code>[0] }</code>
<code>}</code>
<code> </code>
<code>PS> </code><code>Get-ComputerSite</code> <code>server1(服务器或者计算机)</code>
这个非常有用,对于部署systemcenter的企业管理员,有效的远程查看相关的信息。
本文转自cantgis 51CTO博客,原文链接:http://blog.51cto.com/cantgis/1225640,如需转载请自行联系原作者