使用过滤器从活动目录中获取所有用户

时间:2018-05-28 07:31:50

标签: powershell syntax active-directory user-management user-account-control

我尝试使用以下脚本从AD获取所有活跃用户,但是,虽然我知道有值为512的数据,但我没有得到任何结果。

你知道我错在哪里吗?

  Get-ADUser -filter {$userAccountControl -eq "512"} -properties Name,userAccountControl -Server myserver.local | Export-CSV "E:\Folder\ADusers.csv" -NoTypeInformation -Encoding UTF8

2 个答案:

答案 0 :(得分:2)

正如评论中所指出的,it('calls the right callback', () => { const Option = Select.Option; const mockHandler = jest.fn(); const wrapper = mount(<MyComp handleChange ={mockHandler}/>); let select = wrapper.find(Select); select.simulate("onChange"); // also tried 'change' expect(mockHandler).toHaveBeenCalled() }); 不属于。这告诉PowerShell您要在名为$的变量中使用该值,并将其与$userAccountControl进行比较。考虑到您可能从未设置名为512的变量,这意味着它不会与$userAccountControl进行比较,并且发现每个帐户都不是这样。

删除512,它会将名为$的媒体资源与userAccountControl进行比较。

512

答案 1 :(得分:1)

您可以尝试LDAPfilter语法

Get-ADUser -property userAccountControl -LDAPfilter "(userAccountControl=512)"

但是,这可能不是一个好方法:userAccountControl是一个二进制字段,每个位代表一个二进制值(参见https://support.microsoft.com/en-us/help/305144/how-to-use-the-useraccountcontrol-flags-to-manipulate-user-account-pro) 例如:

512是“普通帐户”,您想要

66048是“普通帐户”+“密码不要过期”,您可能还需要

514是“普通帐户”+“帐户已停用”,您可能不需要

所有值都匹配

-band 512

您需要澄清什么是活跃用户。