在其他计算机上运行时出现Powershell错误

时间:2015-06-22 21:12:25

标签: powershell powershell-v2.0 windows-server-2008-r2 windows-7-x64

我编写了一个脚本来获取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上本地运行。

1 个答案:

答案 0 :(得分:0)

看起来我需要在查找之前包含过滤器并添加:

$ adsearch = [adsisearcher]“”

虽然我不确定为什么没有AD服务器本身的过滤器也能正常工作。