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 客户端
活动目录PowerShell cmdlet查询流程;
a) [Client] cmdlet -> AD WS -> Query DC -> AD WS -> cmdlet.
b) cmdlet或客户端使用它们自己的协议做域询问并发送询问到AD Web服务。
c) 然后域控器(DC)制作反应通过AD Web服务发回到“客户”,并且这些信息都封装在网服务协议中。
活动目录模块下所有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