用PowerShell来查看AD的构架版本 (Schema Version)

本篇将介绍如何使用PowerShell来查看Active Directory (简称:域,AD)的构架版本。

如果你需要同时管理很多域,有些时候你管理的域并不是由你建立的,在这个时候有必要搞清楚AD的构架版本,以至于对管理的环境有所理解。

这个时候只要你登陆到任意一台有PowerShell的PC,且这台PC是你所要查看域中,你就可以通过PowerShell来查看当前AD的构架版本:

Get-ADObject -Identity “cn=Schema,cn=Configuration,dc=%dcname1%,dc=%dcname2” -Properties * | Select objectVersion

其中name1,name2是基于你的域名城,剩下其他的脚本均是固定的。

命令正确,你将会看到一个objectversion:数值。

具体数字代表什么,请参阅下表:

13 – Windows 2000 Server
30 – Windows Server 2003
31 – Windows Server 2003 R2
44 – Windows Server 2008
47 – Windows Server 2008 R2
51 – Windows Server 8 Developers Preview
52 – Windows Server 8 Beta
56 – Windows Server 2012
69 – Windows Server 2012 R2

如果想要脚本更全面且复杂一点的话,可以用以下PowerShell代码:

Import-Module ActiveDirectory

Clear-Host
Write-Host “”

Write-Host “Schema version is ” -ForegroundColor Green -NoNewLine

$schema_ver=Get-ADObject -Identity “cn=Schema,cn=Configuration,dc=%dcname1%,dc=%dcname2%” -Properties * | Select objectVersion

switch ($schema_ver.objectVersion)
{

13 { Write-Host “Windows 2000 Server”}
30 { Write-Host “Windows Server 2003”}
31 { Write-Host “Windows Server 2003 R2”}
44 { Write-Host “Windows Server 2008”}
47 { Write-Host “Windows Server 2008 R2”}
51 { Write-Host “Windows Server 8 Developers Preview”}
52 { Write-Host “Windows Server 8 Beta”}
56 { Write-Host “Windows Server 2012”}
69 { Write-Host “Windows Server 2012 R2”}
default { Write-Host “unknown version – “$schema_ver.objectVersion}

}

Write-Host “”

想要用以上代码,需要确保你有Active Directory Module。

没有安装Active Directory Module怎么办?

你需要在控制面板中找到Administrative Tools,然后开启Active Directory PowerShell,如果仍然行不通,你则需要安装RSAT Tool。

可以肯定的是,如果你的Windows是以下版本,你将肯定可以使用Active Directory Module。

Windows Server 2012 Foundation,Standard,Datacenter

Windows Server 2008 R2 Standard,Enterprise,Datacenter

Windows 7

Windows 8