我们在过去几个月学习了Windows PowerShell,但是从这个月我们决定跳过基础的部分,开始写一系列使用Powershell管理活动目录(AD)的文章。在这两篇文章中,我们将介绍不同的供应商他们提供的活动目录cmdlets以及它们是如何工作的。
在某种程度上,微软的活动目录是几乎所有管理员在工作中都需要用到的事物之一,他们从一个全面的AD管理到一个简单的AD使用者。无论你对AD的了解有多少,这里有为你所使用的Powershell cmdlet。这些cmdlet由两个主要的供应商所提供:微软和Quest software公司。
在我们开始集中深入讨论活动目录的powershell cmdlet之前,对于理解管理员在AD环境中经常遇到的不同的管理范围内容非常重要。这我们就可以分两个基本的类别:对象管理和基础设施管理。
随着对那些AD管理基础的理解,我们可以详细看一看微软活动目录cmdlet在Windows 7和2008 R2服务器的运作,其中包括运行它们的条件、工作原理和一些应用实例。
在我们直接埋头进入cmdlet之前,了解到使用Windows PowerShell管理活动目录必须具备的条件很重要。首先,你至少要有一个基于web 服务活动目录的域控制器(AD WS)或是管理网关服务活动目录的域控器(AD MGS)。这两种服务基本做同样的事情,唯一的区别是AD web服务在Windows 2008R2服务器上运行,而AD MGS是一种为Windows 2003和2008域控制器的更新服务。 因为活动目录cmdlets在使用AD WS或AD MGS与域进行交流,所以这是非常重要的。
其次,因为更新DC定位器过程发现AD Web服务并且没有移植到老客户端,所以您必须有Windows 7或windos 服务器2008 R2的客户端。
下面是活动目录PowerShell cmdlet查询流程:
[Client] cmdlet -> AD WS -> Query DC -> AD WS -> cmdlet.
cmdlet或客户端使用它们自己的协议做域询问并发送询问到AD Web服务。 然后域控器(DC)制作反应通过AD Web服务发回到“客户”,并且这些信息都封装在网服务协议中。
当我们没有时间或空间覆盖微软提供的所有cmdlets时,我们可以看一看在一些活动目录管理类别的两个关键部分。
活动目录cmdlet的对象管理
Get-ADUser——得到一个具体用户对象或为匹配询问的用户对象做一次查询
例如:
#在sAMAccountName中得到一个bsonposh用户的账户 Get-ADUser bsonposh #得到通过友好过滤器的所有用户 Get-ADUser -Filter "sn -eq 'shell'" #得到通过LDAP过滤器的所有用户 Get-ADUser -LDAPFilter "(sn=shell)"
再例如:
Get-help Get-ADUser –example Get-ADComputer ——得到一个具体计算机对象或做一次计算机对象匹配的查寻
例如:
# 得到给定OU中的所有计算机 Get-ADComputer -SearchBase "OU=XenDesktop,DC=Dev,DC=Lab" -filter * # 获取所有没有DNS后缀的计算机 Get-ADComputer -filter "dnsHostName -notlike '*.dev.lab'" # 查找登陆时间超过30天的计算机 $lastLogon = (get-date).adddays(-30).ToFileTime() Get-ADComputer -filter {lastLogonTimestamp -gt $lastLogon}
再例如:
Get-help Get-ADComputer -example Get-ADGroup——得到一个具体组对象或做一次组对象匹配的查寻
例如:
# 列出普通组 Get-ADGroup -Filter {GroupScope -eq 'Universal'} # 得到组成员 Get-ADGroup "domain Admins" -Properties member | select -ExpandProperty member # 如果您使用Get-ADGroupMember,查询更加容易 Get-ADGroupMember "Domain Admins" # 查找空组 Get-ADGroup -Filter {Member -notlike '*'}
再例如:
Get-help Get-ADGroup -example
活动目录的基础设施cmdlets
Get-ADForest——返回当前林
例如:
# 得到当前林 Get-ADForest # 得到当前用户所在林 Get-ADForest -Current LoggedOnUser # 得到当前计算机所在林 Get-ADForest -Current LocalComputer
再例如:
Get-help Get-ADForest -example Get-ADDomain – 返回到当前域
例如:
# 得到当前域 Get-ADDomain # 得到一个具体的域 Get-ADDomain dev.lab # 得到用户域 Get-ADDomain –Current LoggedOnUser
再例如:
Get-help Get-ADDomain -example Get-ADDomainController ——退回匹配通过的参量域控制器对象
例如:
# 得到当前用户会话的域控器 Get-ADDomainController # 得到只读的域控器 Get-ADDomainController -Filter {isReadOnly -eq $true} #发现活动目录web服务的域控主机 Get-ADDomainController -Service ADWS –Discover
注意:以下参量要求并需要发现参量:Service, SiteName, DomainName, NextClosestSite, AvoidSelf和ForceDiscover
再例如:
Get-help Get-ADDomainController-example Get-ADRootDSE——通过发现或被定义的服务器退回RootDSE。您可以将RootDSE作为入口点,提供目标或被发现的服务器驻留目录粗略的信息。
例如:
# 发现RootDSE Get-ADRootDSE # 在具体的服务器(DC)上得到RootDSE Get-ADRootDSE –server Core.Dev.Lab
再例如:
Get-help Get-ADRootDSE -example
#p#下面列出了在活动目录模块下所有PowerShell cmdlet名单:
- Add-ADComputerServiceAccount
- Add-ADDomainControllerPasswordReplicationPolicy
- Add-ADFineGrainedPasswordPolicySubject
- Add-ADGroupMember
- Add-ADPrincipalGroupMembership
- Clear-ADAccountExpiration
- Disable-ADAccount
- Disable-ADOptionalFeature
- Enable-ADAccount
- Enable-ADOptionalFeature
- Get-ADAccountAuthorizationGroup
- Get-ADAccountResultantPasswordReplicationPolicy
- Get-ADComputer
- Get-ADComputerServiceAccount
- Get-ADDefaultDomainPasswordPolicy
- Get-ADDomain
- Get-ADDomainController
- Get-ADDomainControllerPasswordReplicationPolicy
- Get-ADDomainControllerPasswordReplicationPolicyUsage
- Get-ADFineGrainedPasswordPolicy
- Get-ADFineGrainedPasswordPolicySubject
- Get-ADForest
- Get-ADGroup
- Get-ADGroupMember
- Get-ADObject
- Get-ADOptionalFeature
- Get-ADOrganizationalUnit
- Get-ADPrincipalGroupMembership
- Get-ADRootDSE
- Get-ADServiceAccount
- Get-ADUser
- Get-ADUserResultantPasswordPolicy
- Install-ADServiceAccount
Move-ADDirectoryServer
- Move-ADDirectoryServerOperationMasterRole
- Move-ADObject
- New-ADComputer
- New-ADFineGrainedPasswordPolicy
- New-ADGroup
- New-ADObject
- New-ADOrganizationalUnit
- New-ADServiceAccount
- New-ADUser
- Remove-ADComputer
- Remove-ADComputerServiceAccount
- Remove-ADDomainControllerPasswordReplicationPolicy
- Remove-ADFineGrainedPasswordPolicy
- Remove-ADFineGrainedPasswordPolicySubject
- Remove-ADGroup
- Remove-ADGroupMember
- Remove-ADObject
- Remove-ADOrganizationalUnit
- Remove-ADPrincipalGroupMembership
- Remove-ADServiceAccount
- Remove-ADUser
- Rename-ADObject
- Reset-ADServiceAccountPassword
- Restore-ADObject
- Search-ADAccount
- Set-ADAccountControl
- Set-ADAccountExpiration
- Set-ADAccountPassword
- Set-ADComputer
- Set-ADDefaultDomainPasswordPolicy
- Set-ADDomain
- Set-ADDomainMode
- Set-ADFineGrainedPasswordPolicy
- Set-ADForest
- Set-ADForestMode
- Set-ADGroup
- Set-ADObject
- Set-ADOrganizationalUnit
- Set-ADServiceAccount
- Set-ADUser
- Uninstall-ADServiceAccount
- Unlock-ADAccount
您能通过查阅活动目录PowerShell团队的博客找到更多关于AD cmdlet的信息。 下篇文章将介绍免费可用的Quest Active Directory cmdlet。 我将再次谈论cmdlet的运行条件及工作原理,然后提供些例子帮助您开始AD cmdlets的探索。
【编辑推荐】