但随着Windows 7和Windows Server 2008 R2的发布,PowerShell对AD彻底支持的期待告一段落。微软在新的版本中已经发布了一个AD模块和PowerShell驱动提供程序,使得能够经过PowerShell管理单元管理AD。服务器
如何安装ide
若是你安装一个Windows Server 2008 R2与控制器经过使用服务器管理添加活动目录服务角色,AD PowerShell模块将被默认安装。可是,若是你想在你的Windows 7工做站上安装这个模块(模块是PowerShell cmdlet、提供程序、脚本等的集合),你须要安装服务器远程管理工具(RSAT)。工具
一旦你安装完毕RSAT,请打开控制面板的程序和功能类别,选择打开或关闭Windows功能的RSAT节点。展开,转到Windows PowerShell活动目录模块节点,如图所示。选择复选框,点击是添加该模块。学习
模块被安装以后,你既能够从开始菜单、程序、管理工具组选择Windows PowerShell活动目录模块,又能够经过键入以下命令很容易的把它添加到你现有的PowerShell会话中:spa
Import-module ActiveDirectory对象
在短暂的闪烁以后,提示符将返回,而后你将能够访问PowerShell和AD所提供的全部强大功能。不过,在咱们开始使用PowerShell的AD模块以前,让我再来补充一条重要信息。不一样于以前任何基于PowerShell的AD自动化实现,这个新的模块要求在你的域中至少有一台域控制器运行新的活动目录Web服务(ADWS)。ADWS默认在R2的域控制器上安装,但你在Windows Server 2003或Windows Server 2008域控制器上须要特殊的附件才能使用这个模块。blog
若是你在你的域中没有ADWS服务器,当你在PowerShell中试图导入AD模块时会出现错误。通常而言,对ADWS和这些PowerShell cmdlet最有趣的事,是它们都不使用LDAP和AD沟通。具体而言,它们使用基于XML Web服务的协议与AD交互。对之前的AD管理工具集而言,这是一个意义重大的改变,而且观察微软在将来的AD管理工具中是否延续这个趋势是颇有趣的。注意若是你在非R2的域控制器中安装了ADWS,你将依然可使用常规的基于LDAP的工具如‘活动目录用户和计算机’来管理这些服务器。资源
使用cmdletget
在你安装完成这些cmdlet并有一台运行ADWS的DC以后,你就能够开始探索PowerShell对AD的强大威力。微软为使用PowerShell对AD进行自动化管理提供了两个主要工具。第一个工具是一系列cmdlet,可让你经过查找AD对象作你想作的一切,如建立计算机帐号、更改帐号等。第二个工具是一个针对AD的PowerShell驱动提供程序,可让你像一个文件系统同样导航AD。这个工具交互式使用具备强大的能力,我将为你展现一些你能够对AD进行的很棒的操做。cmd
让咱们开始看看一些AD cmdlet。若是你想获得一个活动目录 PowerShell模块中全部AD相关的cmdlet列表,打开PowerShell并键入以下命令:
get-command -module ActiveDirectory
这将返回一个有76个cmdlet名字的清单,它们是AD模块的一部分。正如你从清单中看到的,有一些显眼的cmdlet,如检索组成员的Get-ADGroupMember和为域添加计算机帐号的New-ADComputer。让咱们看看你如何使用这几个命令。比方说,你想快速检索你域中“Marketing Users”组的成员列表。你可使用以下cmdlet轻松完成:
get-ADGroupMember -identity "Marketing Users"
参数identity做为引用一个特定对象的方式在整个AD cmdlet中很常见。Identity参数能够采起一个可分辨名称(如,DC=cpand1,DC=com),一个对象GUID或者samAccountName的形式。
PowerShell和这些AD cmdlet的另外一个强大特性,是可以经过管道把输出从一个cmdlet传递到另外一个。例如,假设你想在AD中查找一个用户对象,而后禁用该用户对象。你知道用户的samAccountName是kmyer,因此你可使用下面的两个cmdlet完成这个任务:
get-ADUser -identity kmyer | Set-ADUser -enabled $false
在这个例子中,咱们使用get-ADUser cmdlet搜索samAccounName为kmyer的用户帐号。只要咱们找到那个用户,咱们使用管道把它传递给Set-ADUser cmdlet,并给他赋予带有$false标记的-enabled参数来禁用帐号。
这是一个简单的例子,说明了PowerShell和AD cmdlet的威力和简洁。因为这个模块中有76个cmdlet,你能够想一想你能使用这个功能作得更多。让咱们来看看另外一个功能更多更值得讨论的模块:活动目录PowerShell驱动提供程序。
活动目录PowerShell驱动提供程序
什么是活动目录PowerShell驱动提供程序?PowerShell支持资源管理的概念,这就像驱动器卷同样。正如你可使用cd进入一个文件夹同样,PowerShell驱动提供程序可让你以一样的方式浏览其余类型的资源。例如,在PowerShell 1中,微软提供了一个注册表PowerShell驱动,所以你能够像对待文件夹和文件同样对待注册表键。你能够在PowerShell中改变路径到HKEY_LOCAL_MACHINE,而后导航到键,使用相似于你在文件系统中使用的命令添加或删除键和值。微软已经提供了一个AD的PowerShell驱动程序和cmdlet共同使用。这个PowerShell驱动提供程序让你像对待文件系统同样对待你的AD层次结构。要使用这个功能,打开PowerShell并加载AD模块,而后键入:
Cd AD:
你会发现驱动提示发生了改变以反映你新的工做路径。若是今后处键入dir,你会获得你当前AD林全部分区的列表。咱们假设你想导航到你的域,并建立一个新的OU。在AD的最高层次:驱动提示上下文中键入(以你AD域的目录名称取代DC=cpandl,DC=com):
cd “DC=cpandl,DC=com”
如今假设咱们想在Marketing OU下建立一个新的HR OU。更改到Marketing OU文件夹,键入:
cd “OU=Marketing”
最后,在Marketing OU下建立HR OU,键入:
Md “OU=HR”