问题标签 [adsi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
active-directory - 如何枚举用户的默认组?
活动目录的 memberOf 属性中未提及用户的默认组。
谁能告诉如何为用户检索这些组?
谢谢
networking - 清除域控制器上 Active Directory 查询的缓存结果
我正在 2 个 Win2003 森林之间建立外部信任。然后我坐在第一个森林的域中时从第二个森林域中检索组名称。然后,我删除信任并再次进行查询,这会带来相同的输出。(这一次,它来自缓存,因为在删除信任后森林 2 变得无法访问)。
谁能告诉如何清除存储 Active Directory 查询结果的缓存?
此缓存仅在主域控制器上可用还是在辅助域控制器上可用?
注意:- 我正在通过编写自己的 ADSI 程序进行查询。
谢谢
vbscript - 当 ADSIEdit 返回正确的行数时,VBScript 返回 0 行
在过去两天左右的时间里,我一直在努力解决这个问题,但没有取得太大的成功——不管我尝试什么。当我运行查询以检索以特定结尾结尾的共享卷时,我让它在 ADSIEdit 中正常工作 - 但在我的 VBScript 中却没有。真的很奇怪,因为我使用的是完全相同的查询。
ADSIEdit 查询配置如下:
- 名称:测试
- 搜索根:DC=ad,DC=server,DC=com
- 查询字符串:(&(objectCategory=volume)(objectClass=volume)(cn=K_*))
查询范围:子树搜索。
- 搜索结果:cn以K_开头的11条记录
- VbScript 结果:1 条记录 (!?!?)
如果我将查询字符串更改为(最后一部分)(uNCName=*\5cOst-gro)),这就是我真正想要的(我给出的第一个查询字符串是出于测试目的),在 ADSIEdit 中我会返回 7 行 -在我的 VBScript 中没有!
这是我的(当前)VBScript 代码:
希望有人可以提供帮助。我已经阅读了无数关于它的主题,但每一个都失败了:(
编辑:我认为我已经将其归结为信任/许可问题。当我在 AD 机器上运行 adfind(或 dsquery)时,它返回正确的行数。但是,如果我在客户端机器上运行它,它会返回错误的行数。现在的问题是,我该如何解决呢?
服务器:
客户:
sql-server - ADsDSOObject 和 .NET 为 objectSID 返回不同的值(类型)
我在数据库服务器中有一个用户创建的存储过程,它查询活动目录以获取用户信息并将数据插入表中。我们希望从数据库服务器中删除该操作,并在外部调用(PowerShell 或 C#)中执行初始 AD 查询和数据插入。
存储过程使用 sp_OA 过程创建 ADsDSOObject 来执行实际的 AD 查询。默认情况下,ADsDSOObject 似乎以十六进制返回 objectSID。以下是示例输出值。
当我通过 PowerShell 运行 ADSI 查询时,我得到了 objectSID 的字节数组,我可以通过 .NET System.Security.Principal.SecurityIdentifier ( <objectSID>
, 0) 将其转换为字符串。
这会以正确的 SID 形式返回实际的字符串 SID 标识符。
但是,我需要将数据存储为二进制,以便用 .NET 解决方案替换数据库中的过程,以避免应用程序发生任何更改。
使用 PowerShell 或 C#,有谁知道如何将字节数组转换为十六进制或如何将字符串 SID 表示转换为十六进制?
model-view-controller - LookupAccountSID 返回不正确的域名
MSDN 说: LookupAccountSid 函数返回找到 SID 的第一个域的名称。
如果用户从域 A迁移到域 B ,我们在域 A 的任何机器上使用LookupAccountSid函数查询用户的旧 SID,我们得到域 A 的域名而不是域 B。
似乎即使在迁移用户之后,Active Directory 仍将用户信息保留在域 A 上。即使重新启动域 A 的机器(包括域控制器)后,此问题也没有解决。
我需要 User 的新域的名称。你能建议如何解决这个问题吗?
c# - 使用 DirectoryServices 创建用户帐户时出现奇怪的 sAMAccountName
我的 C# 代码使用 DirectoryServices 命名空间来创建域用户帐户。
这成功创建了帐户,但 sAMAccountName 属性包含一个相当奇怪的值,例如 $HGA000-8FP94NQK9R9I 或 $NGA000-B3BJ2ELT5OOD。在我的开发域中执行时,一切都很好。
scripting - 列出 IIS6 场中所有已停止的应用程序池
我只想打印那些停止或停止的 IIS6 池(AppPoolState 为 3 或 4)。如果其他一切都很好(一切都开始了),只需打印出“OK”。我不确定是否有一种简单的方法来检查所有这些。我试图循环遍历应用程序池,逐个检查每个状态,但它看起来有点复杂,似乎有一种更简单的方法可以做到这一点。
这段代码将进入一个循环,该循环运行一个庞大的服务器列表,在每个服务器上运行其他检查,然后打印出一个表。
powershell - 将 ADSI 对象转换为 Powershell 对象
我有一些代码可以通过 ADSI 获取 IIS6 站点列表:
当我通过 convertto cmdlet 或输出字符串或使用 tostring() 循环对象时,我得到类似这样的东西
基本上我只需要像 Powershell 对象一样对待站点列表(servercomment),这样我就可以通过各种方式导出它们。但是据我了解,这些本身就是集合,并且确实具有更多属性,但是当我更深入时,我看不到任何可以提取为 IIS 站点名称的内容。通过 WMI 获取这些信息更容易还是我必须创建一个新的 Powershell 对象来包含这些信息?
ipad - 在 VDI 中映射打印机的登录脚本
我所拥有的是人们想使用 iPad 来访问 VDI 图像。我前段时间创建了一个脚本,它将根据用户在 AD 中的位置映射用户。这不适用于 iPad,因为我无法将 parm 文件从 iPad 传递到 VDI 映像。我现在正在寻找一种方法,如果不存在 parm 文件,它将只退出脚本。
这是我的脚本:您认为检查用户是否在 iPad 上的最佳方法是什么?如果他们在 iPad 上,如何关闭而不运行此脚本?
c++ - 来自 NetBIOS 名称的 DNS 名称 - API 函数
有没有什么API函数可以解决用户或组目录对象的netbios名称。
我需要以下格式的输出:
- 名称FullyQualifiedDN - 例如:CN=John Smith,OU=Users,DC=Engineering,DC=Microsoft,DC=Com
- 名称DnsDomain - 示例:engineering.microsoft.com\JSmith
- 提供 DNS 域名的任何其他格式。
注意:TranslateName 函数在给出名称时失败,如下所示: win2008domainnetbiosname\username。
谢谢