首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在powershell中获取已启用和未锁定的Active用户列表

在powershell中获取已启用和未锁定的Active用户列表
EN

Stack Overflow用户
提问于 2019-05-07 15:38:57
回答 1查看 2.1K关注 0票数 0

我有以下的cmdlet:

代码语言:javascript
运行
复制
  get-aduser -filter {Enabled -eq 'true' -and LockedOut -eq 'true'} -Properties samaccountname, givenname, sn, physicalDeliveryOfficeName | 
             Select-Object -Property samaccountname, givenname, sn, physicalDeliveryOfficeName |
             Export-Csv -Encoding Default -path $csvOutputPath -NoTypeInformation

现在,我需要在上面的get-aduser cmdlet中添加一个过滤器,以排除锁定的AD用户.但我不知道怎么做.

我知道我可以通过以下方式获得被锁定的用户:

搜索-ADAccount -UsersOnly -Locked

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-07 16:43:47

如果希望将其保留在一个查询中,则可以针对UserAccountControl属性进行筛选。文档显示,被锁定的帐户具有0x0010 (十六进制)或16 (十进制基数10)的标记位。因此,您应该能够使用按位和运算符(-band)来确定锁定状态。

代码语言:javascript
运行
复制
get-aduser -filter {Enabled -eq 'true' -and (-not (UserAccountControl -band 16))} -Properties samaccountname, givenname, sn, physicalDeliveryOfficeName | 
             Select-Object -Property samaccountname, givenname, sn, physicalDeliveryOfficeName |
             Export-Csv -Encoding Default -path $csvOutputPath -NoTypeInformation

-not运算符用于未被锁定的帐户。如果您想要找到已锁定的帐户,可以删除它。

从技术上讲,您可以将UserAccountControl用于整个过滤器,但它并不像人类可读的那样容易阅读。下面是-band操作符如何在这里工作的示例:

未锁定的启用用户拥有用户帐户控件= 512 布尔值假#启用用户已锁定用户帐户控件= 528 PS C:\temp\test1> 布尔值 True #锁定已过期密码的启用用户布尔值 True

有关用于确定UserAccountControl旗值的位的更多信息,请参见UserAccountControl。

有关按位运算符的更多信息,请参见运算符

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56026131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档