这篇文章简单说一下Exchange的PowerShell中,Filter的用法,不过相信看完的同学以后可能不会用这个东西………………虽然这么说,但是毕竟是一个新的选择,大家可以学习一下。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
首先我们看一个输出,我们看看在Exchange2010中,get-user有哪些属性可以做筛选
[PS] E:\>Get-User zhangpengliang|select *
正在创建新会话来隐式远程处理“Get-User”命令...
RunspaceId : 2429e504-c00b-4f51-8725-a65e35221181IsSecurityPrincipal : TrueSamAccountName : zhangpengliangSid : S-1-5-21-2564635362-2982989232-1758174225-30968SidHistory : {}UserPrincipalName : zhangpengliang@tech.xxxx.com
ResetPasswordOnNextLogon : FalseCertificateSubject : {}RemotePowerShellEnabled : TrueWindowsLiveID :NetID :UserAccountControl : PasswordNotRequired, NormalAccount, DoNotExpirePasswordOrganizationalUnit : tech.xxxx.com/IT支持部IsLinked : FalseLinkedMasterAccount :AssistantName :City :Company : xxxxCountryOrRegion :Department : xDirectReports : {}DisplayName : 张鹏亮Fax :FirstName : 鹏亮HomePhone :Initials :LastName : 张Manager : tech.xxxx.com/xxxxxxxxMobilePhone : 15134234Notes :Office : xxx-xxx-IT支持部OtherFax : {}OtherHomePhone : {}OtherTelephone : {}Pager :Phone : 0000PhoneticDisplayName :PostalCode :PostOfficeBox : {}RecipientType : UserMailboxRecipientTypeDetails : UserMailboxSimpleDisplayName :StateOrProvince : 北京StreetAddress :Title : 运维工程师UMDialPlan :UMDtmfMap : {emailAddress:975, reversedPhone:0000, reversedPhone:23879001151, lastNameFirstName:, firstN ameLastName:}
AllowUMCallsFromNonUsers : SearchEnabledWebPage :TelephoneAssistant :WindowsEmailAddress : zpl@yiche.com
UMCallingLineIds : {}SeniorityIndex :VoiceMailSettings : {}IsValid : TrueExchangeVersion : 0.10 (14.0.100.0)Name : 张鹏亮DistinguishedName : CN=张鹏亮,OU=公司,DC=tech,DC=xxxx,DC=comIdentity : tech.xxxx.com/xxxxx/张鹏亮Guid : 45fd2d82-cee5-49f7-bf3a-5d2cf93923efObjectCategory : tech.xxxx.com/Configuration/Schema/PersonObjectClass : {top, person, organizationalPerson, user}WhenChanged : 2015/7/13 15:07:38WhenCreated : 2011/5/20 17:50:05WhenChangedUTC : 2015/7/13 7:07:38WhenCreatedUTC : 2011/5/20 9:50:05OrganizationId :OriginatingServer : IDCDC01.tech.xxxx.com |
很多很多东西对吧?一般要筛特定用户或者特定信息,我的做法和习惯都是用管道。但是管道有个最大的问题:“效率低”。
微软申明,get-user支持使用filter方法来查询。filter查询是什么呢?
准确的说,这里用到的其实还是改进后的Opath查询。
我们来看看写法,可以看到写法还是很人性的,从阅读感上来说,接近自然语言。
可能有人觉得,这已经很复杂了呀,怎么可能算简单,但是你知道LDAP写法查询一个名字叫做aa的用户是怎么样的呢?
(&(&(|(&(objectCategory=person)(objectSid=*)(!samAccountType:1.2.840.113556.1.4.804:=3))(&(objectCategory=person)(!objectSid=*))(&(objectCategory=group)(anr=aa*)))
看到上面这种查询的鸟样子,你还会觉得OPath的filter麻烦么?
另外实际测试中,filter不太好用,也许是我技术水平有限,查询的时候出不了结果,但是用管道就没问题。
比如这一句,是可以查询出来没有问题的
Get-User -OrganizationalUnit tech.xxxx.com -Filter {Title -like '*经理*'}
但是下面这个是有问题的,查不出来
Get-User -OrganizationalUnit xxxx -Filter{distinguishedName -like '*支持*' }
看起来功能类似,不过写法比管道要复杂很多。在管道帮不了忙的时候,我们还多了一个新的选择,但是管道能用的时候,一般还是用管道吧~
本文转自 九叔 51CTO博客,原文链接:http://blog.51cto.com/jiushu/1676800,如需转载请自行联系原作者