AD PowerShell cmdlet 提供商: Microsoft and   QUEST Software

 

·         PowerShell – 活动目录

1.     PowerShell 可以实现对ADSI(Active Directory Service Interface)服务接口的支持;

 

2.     ADSI类似于Windows 管理规范(WMI),发出一个使用特殊语法编写的查询,然后传递给远程计算机(域控制器),然后执行它。查询结果为一个AD对象或对象的集合(如一个用户或用户组),并且你可以获得该对象的引用;修改保存,创建,删除对象;

 

3.     使用Windows PowerShell 管理活动目录的必要条件;

a)    至少有一个基于web服务活动目录的域控制器;(AD WS),运行于Windows 2008 R2

b)    或管理网关服务活动目录的域控制器;(AD MGS),运行在Windows 2003 和2008

c)    如果是AD web服务,由于他不支持老的客户端(windows XP, Vista 等等), 你必要有windows 7, 或windows server 2008 r2 客户端

 

  1. 活动目录PowerShell cmdlet查询流程;

  2. a)    [Client] cmdlet -> AD WS -> Query DC -> AD WS -> cmdlet.

  3. b)    cmdlet或客户端使用它们自己的协议做域询问并发送询问到AD Web服务。

  4. c)    然后域控器(DC)制作反应通过AD Web服务发回到“客户”,并且这些信息都封装在网服务协议中。

  5. 活动目录模块下所有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

 

6.     Quest软件和BSonPosh的开源模块提供的管理活动目录命令:

 目标管理(Quest

Get-QADUser ——得到特定用户目标或搜寻与查询匹配的用户目标,例如:

#为BSonPosh域名解析不明确的用户获取用户名

Get-QADUser bsonposh

#获取有BSonPosh的经理级用户

Get-QADUser –Manager bsonposh

#获取运用LDAP过滤器的姓“Shell”的用户

Get-QADUser -LDAPFilter "(sn=shell)"

更多列举:

Get-help Get-QADUser –example

Get-QADComputer——获取特定电脑目标或搜寻匹配查询的电脑目标,例如:

#获取指定组织单元的所有电脑

Get-QADComputer -SearchRoot "OU=XenDesktop,DC=Dev,DC=Lab"

#获取有指定身份的所有电脑(如,成员、域控制器、未定义)

Get-QADComputer –ComputerRole DC

#发现所有Windows 7机器

Get-QADComputer –OSName "Windows 7*"

更多举例:

Get-help Get-QADComputer –example

Get-QADGroup——获取特定群组目标或搜寻匹配查询的群组目标,例如:

#列出所有通用群组

Get-QADGroup -GroupScope 'Universal'

#获取群组成员

Get-QADGroup "domain Admins" | select –ExpandProperty member

#获取群组成员的更简单方式

Get-ADGroupMember "Domain Admins"

#查找空群组

Get-QADGroup –empty $true

更多举例:

Get-help Get-QADGroup –example

基础架构管理(BSonPosh

Get-Forest——返回当前目录林,例如:

#获取当前目录林

Get-Forest

#为特定域控制器获取目录林

Get-Forest –DomainController CoreDC

更多举例:

Get-help Get-Forest –example

Get-Domain —— 返回域目标,例如

# 获得当前域

Get-Domain

#获得特定域控制器的域

Get-Domain -DomainController CoreDC

更多举例:

Get-help Get-Domain –example Get-Forest

Get-DomainController——返回与传送参数相匹配的域控制器目标,例如:

#获取当前用户会话的域控制器

Get-DomainController

#用特定名称(RegEx)获取域控制器

Get-DomainController -Filter "mydc(nyc|dr)\d">

#在指定域中返回所有域控制器

Get-DomainController –Domain Dev.Lab

更多举例:

Get-help Get-DomainController-example

Get-FSMO——返回目录林/域的操作主机,例如:

#返回目录林和域的所有灵活单主机操作

Get-FSMO

#只返回域灵活单主机操作

Get-FSMO –Domain

#只返回目录林灵活单主机操作

Get-FSMO –Forest

更多举例:

Get-help Get-FSMO –example>

 

下面是Quest活动目录模块提供的所有命令:

Add-QADGroupMember
Add-QADMemberOf
Add-QADPasswordSettingsObjectAppliesTo
Add-QADPermission
Approve-QARSApprovalTask
Connect-QADService
Convert-QADAttributeValue
Deprovision-QADUser
Disable-QADUser
Disconnect-QADService
Enable-QADUser
Get-QADComputer
Get-QADGroup
Get-QADGroupMember
Get-QADMemberOf
Get-QADObject
Get-QADObjectSecurity
Get-QADPasswordSettingsObject
Get-QADPasswordSettingsObjectAppliesTo
Get-QADPermission
Get-QADPSSnapinSettings
Get-QADRootDSE
Get-QADUser
Get-QARSAccessTemplate
Get-QARSAccessTemplateLink
Get-QARSApprovalTask
Get-QARSOperation
Move-QADObject
New-QADGroup
New-QADObject
New-QADPasswordSettingsObject
New-QADUser
New-QARSAccessTemplateLink
Reject-QARSApprovalTask
Remove-QADGroupMember
Remove-QADMemberOf
Remove-QADObject
Remove-QADPasswordSettingsObjectAppliesTo
Remove-QADPermission
Remove-QARSAccessTemplateLink
Rename-QADObject
Restore-QADDeletedObject
Set-QADGroup
Set-QADObject
Set-QADObjectSecurity
Set-QADPSSnapinSettings
Set-QADUser
Set-QARSAccessTemplateLink
Unlock-QADUser

最后,下面列出BSonPosh模块中可发现的所以活动目录命令:

ConvertTo-DistinguishedName
ConvertTo-DNSName
ConvertTo-Name
ConvertTo-NetbiosName
ConvertTo-Sid
ConvertTo-UACFLag
Get-ADACL
Get-DCConnectionObject
Get-Domain
Get-DomainController
Get-Forest
Get-FSMO
Get-Schema
Get-SchemaClass
Get-SchemaOID
Get-SchemaProperty
Get-SiteLink
Get-Site
New-ADACE
Set-ADACL

通过Quest命令的在线帮助和BSonPosh的源代码,你会发现有更多为活动目录目标和基础架构管理运用在这些PowerShell命令之上。

 

参考:

https://technet.microsoft.com/zh-cn/magazine/2008.05.powershell.aspx

http://www.exchangecn.com/html/associate/20110217_320.html