【问题标题】:get AD group description获取广告组描述
【发布时间】:2022-03-07 14:16:21
【问题描述】:

我需要一个 VBA 函数来返回 AD 组的描述。

使用 Powershell 返回值很容易:

Adgroup = "abc"
strCommand = "Powershell.exe [environment]::CurrentDirectory='C:\Windows\System32\WindowsPowerShell\v1.0'; start-job -ScriptBlock{Get-ADGroup -identity " & Adgroup & " -Properties Description | select Description | ft -HideTableHeaders} | wait-job | receive-job"
  
Set WshShell = CreateObject("WScript.Shell")
Set WshShellExec = WshShell.Exec(strCommand)
strOutput = WshShellExec.StdOut.ReadAll

Debug.Print strOutput

此代码返回正确的输出,但它有弹出 PS 窗口的缺点。
我找到了一个可以隐藏 PS 窗口的解决方案,但是当我使用它时,防病毒软件会阻止脚本。既然不想惹它,我需要一个不同的解决方案。

对此有什么好的非 Powershell 方法?

【问题讨论】:

  • 到目前为止你尝试过什么代码?你在哪里遇到了麻烦?请在您的问题中包含这一点。
  • 你不能只用代码绕过杀毒软件。您需要先手动禁用它。
  • @braX 我以前使用 PS 将值返回到具有不同脚本的 VBA 中。我不想禁用我的 AV 软件。我需要的是一个不是 PS 的不同解决方案。我可以返回Get-ADGroup -identity " & Adgroup & " -Properties Description | select Description | ft -HideTableHeaders',但正如我所说,这不是一个理想的解决方案。我需要一个不同的解决方案。这就是我要问的问题。
  • 您可能希望将其包含在您的问题中。向人们展示你已经尝试过的东西总是最好的。
  • 这种 Powershell 方法注定要失败。您可以在VBA中直接访问AD,搜索的主要关键字是“ADSI”(Active Directory服务接口)。随机示例stackoverflow.com/a/21113591/18771

标签: vba active-directory


【解决方案1】:

感谢Divin3 和Tomalak 的宝贵讨论。发布您的讨论作为答案,以帮助其他社区成员。

直接在 VBA 中访问 AD。您可以使用 ADSI(活动目录 服务接口)相同。

参考: http://exceldevelopmentplatform.blogspot.com/2017/10/activedirectory-with-vba-part-4-adsi.html, https://stackoverflow.com/questions/21110232/getting-ad-details-based-on-username/21113591#:~:text=LDAP%20URIs%20require,some%20time%20ago.

【讨论】:

    猜你喜欢
    • 2019-06-08
    • 1970-01-01
    • 2011-09-08
    • 2020-07-02
    • 1970-01-01
    • 2020-12-31
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多