【问题标题】:VBScript error 424 Object Required when running script under SYSTEM account在 SYSTEM 帐户下运行脚本时需要 VBScript 错误 424 对象
【发布时间】:2013-02-21 17:06:32
【问题描述】:

我正在尝试将域用户帐户添加到本地组,如果我登录到计算机,一切正常,但如果我在 SYSTEM 帐户下运行相同的脚本,则会失败并出现错误:424 Object Required”。这里是代码:

Dim domain          : domain           = "DOMAIN01"
Dim domainController: domainController = "99.139.151.102"
Dim localComputer   : localComputer    = "SERVER001"
Dim localGroup      : localGroup       = "LocalGroup1"
Dim domainAccount   : domainAccount    = "User1"
Dim objLocalGroup
Dim objDomainUser

Set objLocalGroup = GetObject("WinNT://" & localComputer    & "/" & localGroup    & ",group")
Set objDomainUser = GetObject("WinNT:").OpenDSObject("WinNT://" & domain & "/" & domainController & "/" & domainAccount, domainAccount, "Password1234", ADS_SECURE_AUTHENTICATION or ADS_SERVER_BIND)

  'Add domain user to local group.
  objLocalGroup.Add(objDomainUser.ADsPath)

  If Err.Number <> 0 Then
       WScript.Echo Err.Number
       WScript.Echo Err.Description
  Else
       WScript.Echo domainAccount & " has been added to local group " & localGroup
  End If

谢谢

【问题讨论】:

    标签: authentication vbscript adsi


    【解决方案1】:

    SYSTEM 帐户没有业务连接到其他主机。以具有本地管理员权限的用户身份运行脚本。

    【讨论】:

    • 这就是我传递凭据的原因。它在 SYSTEM 帐户下运行,但与其他凭据连接。见:blogs.technet.com/b/heyscriptingguy/archive/2004/12/13/…
    • @Max 在那篇文章中,您在哪里看到“使用显式凭据时系统可以访问其他主机”的内容?本地系统帐户是本地的。不要将它用于此类任务。而是使用 NETWORK SERVICE 或创建专用的本地管理员帐户。
    • 我只是说,您在哪个帐户下运行您的进程并不重要,重要的是您传递给 DC 以便您可以访问其 AD 对象的凭据。我对 Active Directory/ADSI/LDAP 不是很熟悉,所以我必须考虑您的建议并对其进行测试。
    • 刚刚意识到上述错误发生在服务器上,这些服务器正试图通过位于不同 AD 站点中的 DC 进行身份验证。它与SYSTEM帐户无关。这个问题与我敢打赌的 RODC 有关。做更多测试...
    • 我认为问题在于密码复制……实际上不是问题,而是安全功能。我们不允许将用户密码复制到 RODC,并且如果他们是管理员或其他受保护的帐户,则特别阻止它。我认为 ZDC 实际上代表用户向 BDC 代理登录请求,因此实际上服务器正确报告 BDC 最终是它的登录服务器。 blogs.technet.com/b/askds/archive/2008/01/18/…
    猜你喜欢
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多