我编写了一个脚本来获取AD用户,禁用用户,从组成员身份中删除用户并将用户移动到OU。我最初是在Windows 2008 R2 DC上写的(我知道,不好主意),我想在Win 7 SP1机器上本地运行脚本。它具有按照本文(http://blogs.msdn.com/b/rkramesh/archive/2012/01/17/how-to-add-active-directory-module-in-powershell-in-windows-7.aspx)
中所述安装的AD角色我在DC和我的Win7机器上运行了$ PSVersionTable,它们完全一样。我可以在Win 7机器上运行ADSIEDIT.msc。执行AD用户查找时发生错误。请参阅以下错误输出:
这是我的脚本:https://github.com/nocode99/powershell/blob/master/UserDisableGroupRemoval.ps1
Property 'filter' cannot be found on this object; make sure it exists and is settable.
At C:\Admin\test.ps1:23 char:12
+ $ADsearch. <<<< filter = "(&(objectClass=user)(sAMAccountName=$user))"
+ CategoryInfo : InvalidOperation: (filter:String) [], RuntimeException
+ FullyQualifiedErrorId : PropertyNotFound
You cannot call a method on a null-valued expression.
At C:\Admin\test.ps1:24 char:32
+ $ADfind = $ADsearch.findOne <<<< ()
+ CategoryInfo : InvalidOperation: (findOne:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
有什么想法吗? ActiveDirectory模块导入时没有任何问题,我希望我的用户在他们的机器而不是DC上本地运行。
答案 0 :(得分:0)
看起来我需要在查找之前包含过滤器并添加:
$ adsearch = [adsisearcher]“”
虽然我不确定为什么没有AD服务器本身的过滤器也能正常工作。