WindowsServer 2008 R2 Active Directory PowerShell

【前言】

上一篇文章我们共同了解了Windows Server 2008 R2的AD回收站功能。接下来让我们探讨一下对于AD管理的新功能—PowerShell。其实对于PoweShell大家也许并不陌生,在Exchange Server 2007中我们已经广泛的使用,并已经预见PowerShell带来的全新功能。下面就让我们去探知如何基于PowerShell实现对于活动目录管理。

【正文】

在 Windows Server 2000、2003 和2008 中,管理员使用各种命令行工具和管理控制台管理单元连接到其 Active Directory 域进行管理工作,通常我们习惯于使用MMC界面,但是很多高级管理操作只能在CMD下完成,而CMD下的命令经常成为我们的困惑。并且基于CMD的脚本的编写对于系统管理员要求很高。为了解决这种情况Windows Server 2008 R2 中的 Active Directory 模块合并了一组 cmdlet的Windows PowerShell 模块.通过使用这些cmdlet,可在单一的独立程序包中管理您的 Active Directory 域、Active Directory 轻型目录服务 (AD LDS) 配置集和 Active Directory 数据库装载工具实例。

首先让我们了解一下PowerShell的功能,系统维护、管理中大家常在命令提示符(cmd.exe)下进行操作,对Windows PowerShell可能还是比较陌生。Windows PowerShell将成为CDM的继任者,是下一代命令行工具。Windows PowerShell目前最高版本为2.0,并且已经集成到Windows Server 2008及Windows 7中。Windows PowerShell使得IT管理员更容易地控制系统管理和加速自动化,作为系统管理员应该掌握和使用它。Windows PowerShell 是一种新的交互式的命令行和基于任务脚本编写技术,它使信息技术 (IT) 管理员能够全面地自动操作和控制系统管理任务,从而提高了管理员的生产力。Windows PowerShell 包括多个系统管理实用工具、一致的语法和命名惯例、及对普通管理数据更好地导航,如登记、证书存储 或 Windows Management Instrumentation (WMI)。Windows PowerShell 还专门针对 IT 管理,提供直观的脚本编写语言。之前的UNIX 的世界就有功能强大的 shell,而现在 Windows 环境也有了;Windows PowerShell 不仅提供功能相当于BASH的命令列 shell,同时也内建脚本语言以及辅助脚本程序的工具。Windows PowerShell 是以 .NET 技术为基础,并且与现有的 WSH 保持回溯兼容,因此 Windows PowerShell 的脚本程序不仅能存取 .NET CLR,也能使用现有的 COM 技术。PowerShell有一个非常好的特点,那就是它有一个非常全面的帮助系统,并与Shell本身紧密集成。现在仅仅知道了cmdlet的名字,就可以通过调用Get-Help来获取其他有关这个cmdlet的信息例如:Get-Help Get-Command。然而,这些信息主要是一个语法图和一些简单描述。如果希望获取到更多的信息,包括了例子和参数的详细描述等信息,就需要加入-full参数,例如:Get-Help Get-Command –Full。对例子感兴趣,那么就加入-examples参数,例如Get-Help Get-command –examples。最让人高兴的是可以使用管道技术将Get-Help定向输出到more命令中,它允许你显示一个屏幕的内容,例如Get-Help Get-Command –full | more。Windows PowerShell 包含了数种系统管理工具、简易且一致的语法,提升管理者处理常见如登录数据库、WMI。Exchange Server 2007 以及 System Center Operations Manager 2007 等服务器软件都将内建 Windows PowerShell。PowerShell现在配备了Active Directory域服务(AD DS)模块,包含了超过75个Active Directory cmdlets。并且可以使用全新的PowerShell脚本,在Technet网站上提供了大量的脚本资源,现在可以通过脚本和PoweShell图形界面实现对于活动目录的管理。最让人感到惊喜的是tab-completion–按Tab键自动补齐功能,在用户敲击Tab键时,Windows会根据用户当时的情况,自动补齐下一步要输入的字符。这样将大大简化管理员的工作并且降低使用CMD时命令容易拼写错误的问题。

下面是列举的常用命令:

Disable-ADAccount

禁用 ActiveDirectory 帐户。
Enable-ADAccount
启用 ActiveDirectory 帐户。
Unlock-ADAccount
解锁 ActiveDirectory 帐户。
Get-ADAccountAuthorizationGroup
获取包含帐户的 ActiveDirectory 安全组。
Set-ADAccountExpiration
设置 ActiveDirectory 帐户的截止日期。
Set-ADAccountPassword
修改 ActiveDirectory 帐户的密码。
Set-ADDefaultDomainPasswordPolicy
修改 ActiveDirectory 域的默认密码策略。
Move-ADDirectoryServerOperationMasterRole
将操作主机(也称为灵活单主机操作或 FSMO)角色移动到 ActiveDirectory 域控制器。
Get-ADDomain
获取 ActiveDirectory 域。
Add-ADDomainControllerPasswordReplicationPolicy
将用户、计算机和组添加至只读域控制器 (RODC) 密码复制策略 (PRP) 的允许列表或拒绝列表。
Set-ADDomainMode
设置 ActiveDirectory 域的域功能级别。
Set-ADForestMode
设置 ActiveDirectory 林的林模式。
Get-ADGroup
获取一个或多个 ActiveDirectory 组。
New-ADGroup
创建 ActiveDirectory 组。
Remove-ADGroup
删除 ActiveDirectory 组。
Set-ADGroup
修改 ActiveDirectory 组。
Add-ADGroupMember
ActiveDirectory 组添加一个或多个成员。
Get-ADGroupMember
获取 ActiveDirectory 组的成员。
Remove-ADGroupMember
ActiveDirectory 组删除一个或多个成员。
Get-ADObject
获取一个或多个 ActiveDirectory 对象。
Move-ADObject
ActiveDirectory 对象或对象容器移动至不同的容器或域。
New-ADObject
创建 ActiveDirectory 对象。
Remove-ADObject
删除 ActiveDirectory 对象。
Rename-ADObject
更改 ActiveDirectory 对象的名称。
Restore-ADObject
还原 ActiveDirectory 对象。
Set-ADObject
修改 ActiveDirectory 对象。
Get-ADOptionalFeature
获取一个或多个 ActiveDirectory 可选功能。
Get-ADOrganizationalUnit
获取一个或多个 ActiveDirectory OU
New-ADOrganizationalUnit
新建 ActiveDirectory OU
Remove-ADOrganizationalUnit
删除 ActiveDirectory OU
Set-ADOrganizationalUnit
修改 ActiveDirectory OU
Add-ADPrincipalGroupMembership
将成员添加至一个或多个 ActiveDirectory 组。
Get-ADPrincipalGroupMembership
获取拥有指定用户、计算机或组的 ActiveDirectory 组。
Remove-ADPrincipalGroupMembership
将成员从一个或多个 ActiveDirectory 组中删除。
New-ADServiceAccount
新建 ActiveDirectory 服务帐户。
Remove-ADServiceAccount
删除 ActiveDirectory 服务帐户。
Set-ADServiceAccount
修改 ActiveDirectory 服务帐户。
Get-ADUser
获取一个或多个 ActiveDirectory 用户。
New-ADUser
新建 ActiveDirectory 用户。
Remove-ADUser
删除 ActiveDirectory 用户。
Set-ADUser
修改 ActiveDirectory 用户。

1、要增加Active Directory域服务模块,使用“Add-Module ActiveDirectory”命令,然后“Get-Module”;

2、要得到Contoso.com域的信息, Get-ADDomain “Contoso.com”;

3、要显示域控制器的具体信息, Get-ADDomainController ?Discover(参数);

4、要在Contoso.com域下的下建立Guangzhou组织单元,New-ADOrganizationalUnit -Name “guangzhou” -Path “DC=Contoso,DC=com”

5、将新的提供程序驱动器连接到 Active Directory 域、AD LDS 服务器或 Active Directory 数据库装载工具实例,New-PSDrive -Name -PSProvider ActiveDirectory -Root “” ?Server -Credential

参数

描述
-Name
指定要添加的驱动器的名称。
-PSProvider ActiveDirectory
提供程序的名称,在本例中为 ActiveDirectory
-Root “
指定提供程序的内部根目录或路径。
?Server
指定托管您的 ActiveDirectory 域或 ADLDS 实例的服务器。
-Credential
指定连接到 ActiveDirectory ADLDS 服务器必须拥有的凭据。

虽然PoweShell对于很多人比较陌生,但是只要使用 Get-Help -Detailed和Get-Help -Full,其中 是要研究的cmdlet 的名称。就可以获取详细的信息,这样更加便于我们尽快掌握PowerShell的使用。希望大家可以通过新的PowerShell更加有效的管理活动目录。