问题标签 [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.
javascript - 针对 IIS 的 ADSI 查询与 Vista 上的 IIS 管理器不一致
使用 Vista...
我有一个使用 ADSI 在 IIS 网站上设置 ScriptMaps 的脚本。它是 javascript,在 cscript.exe 中运行,代码如下所示:
当我在运行脚本后查看 IIS 管理器时,可以在处理程序映射列表中看到新条目。它有一个奇怪的名称“AboMapperCustom-43155”,据我了解,它来自 ADSI 的 IIS7 兼容层。
如果在 IIS 管理器中删除这些处理程序映射,然后运行另一个 ADSI 脚本来查询 ScriptMaps 属性,则脚本中检索到的 ScriptMaps 仍会列出刚刚删除的条目。ADSI 脚本中的结果与 IIS 管理器中显示的“处理程序映射”列表不一致。
即使在 IISADMIN 和 W3SVC 启动/停止之后,这种情况仍然存在。
这是预期的行为吗?ADSI 在 IIS7 中被支持为“兼容模式”。这是那个神器吗?
我相信如果从 IIS 管理器中删除处理程序映射,那么它就真的消失了,即使它仍然从 ADSI 查询中返回。
任何人都可以对此提供任何澄清吗?
c# - 如果在安装之前调用了 ADsOpenObject,则在 IIS 安装后无法使用 IIS ADSI 提供程序
我的 .Net 应用程序主动使用 Active Directory 并在没有 IIS 时安装它。如果在应用程序启动时未安装 IIS 并且调用了任何与 Active Directory 相关的方法,则 IIS ADSI 提供程序在 IIS 安装后仍然不可用(应用程序重新启动后它变得可用)。
不幸的是,我无法更改操作顺序,所以它必须是“使用 AD -> 安装 IIS -> 使用 IIS ADSI 提供程序 -> 使用 AD ”
我的步骤重现代码(不是真实的)是:
改变顺序工作正常:
使用 Reflector 我发现调用ADsOpenObject一次就足以使 IIS ADSI 提供程序在 IIS 安装后不可用。
我试图创建单独的应用程序域并在那里放置使用 IIS 的代码,但这次尝试也失败了。
如何在 IIS 安装后强制 AD 重新初始化以使 IIS ADSI 提供程序可用?
c# - 无法引用之前工作的 Dll
我正在尝试以编程方式更改终端服务设置。我了解到您必须使用 tsuserex.dll。作为 c# 我通过 tlbimp 运行 tsuserex 并创建了 TSUSEREXLib.dll 然后用 regasm 注册它。我让它工作并用它作为概念教授编写了一个框架程序。但是今天在我运行程序时进行了一些更改后,我收到了错误
无法将“System.__ComObject”类型的 COM 对象转换为接口类型“TSUSEREXLib.IADsTSUserEx”。此操作失败,因为 IID 为“{C4930E79-2989-4462-8A60-2FCF2F2955EF}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:不支持此类接口(来自 HRESULT 的异常:0x80004002 (E_NOINTERFACE)) .
它抛出异常就行了
这条确切的线路在测试项目中运行良好。我知道用户是一个有效的用户主体,谷歌搜索我发现这通常只需要重新注册 dll,但即使在卸载并重新加载它之后它仍然无法工作。我缺少什么导致我的 dll 停止工作。
delphi - '工作中,请稍候' 带有线程的屏幕?
也许,这对您来说很容易,但我正在努力开发一个项目(出于教育目的),该项目是用 TADSISearch 组件查询 adsi 几天。我正在尝试在 TADSISearch 搜索 Active Directory 时在 Form2 上显示一个带有人工动画 gif 的“工作中,请稍候..”初始屏幕。虽然我根据我的想法尝试了所有可能,但我无法成功。我尝试在线程中使用 TADSISearch,但线程在 ADSIsearch 完成之前终止。我认为 TADSISearch 不是线程安全的。你怎么看?此外,我创建 Form2 并使用线程对其进行更新的另一种方式,但动画 gif 在主表单消失时停止 adsi 搜索。你对这些有什么想说的?我如何在 ADSISearch 工作时制作请等待屏幕并保持主表单响应。应用。ProcessMessages 或计时器也不是一种方法。非常感谢阅读和解答。
windows - 使用 Powershell 更新 Active Directory 中的 Active Directory 用户属性
在 Windows Server 2003 R2 环境中,使用 Powershell v2.0,如何复制Set-QADUser的功能来更新 Active Directory 中的用户属性,例如他们的电话号码和职务?
这里的诀窍是,我想在不依赖 Set-QADUser 的情况下执行此操作,而且我还没有使用 Server 2008 命令行开关的选项。
谢谢。
vbscript - 调用 GetObject("WinNT://JohnDoe,User") 时出现 VBScript 错误
我有一年多没有接触过的代码,但是 DC 从 2008 升级到 2008 R2。AD 人员声称这不是 DC 升级,但问题在升级后立即开始。
Microsoft VBScript 运行时错误“800a0046”
权限被拒绝:“GetObject”
它在 Set Group 线上失败。
谢谢。
.net - .Net 3.5 中的 Microsoft.Web.Management 和 System.DirectoryServices 有什么区别?
我想使用 WMI 和 .Net 通过 ASP.Net Web 应用程序控制、配置和操作 IIS 6.0 及更高版本。
- 我可以混合使用 Microsoft.Web.Management 和 System.DirectoryServices 吗?
- 两者有区别吗?
- 更高版本的 IIS 是否支持 System.DirectoryServices。即IIS 7.0+?
- 两者中哪一个更好?为什么(考虑第 01 行的目标)?
非常感谢。
问候
.net - 哪个更适合 ASP.Net 中的 IIS 管理:WMI 或 ADSI 或托管 API?有什么区别?
我正在使用基于 ASP.Net 的 Web 应用程序配置、操作和控制 IIS 6.0 及更高版本。我正在考虑将 WMI、ADSI、托管 API 作为我的选项。
我有一个目标 Windows 系统 WIN2k3 或更高版本。语言选择是 C#,应用程序必须使用 ASP.Net 构建。
本文描述了每种方法,但我对各种事情有点不确定; http://learn.iis.net/page.aspx/283/provisioning-options-in-iis7/rev/1
关于这些选项,我有以下问题。
对于既定目标,哪个更好或更强大?ADSI(System.DirectoryServices) 或 WMI(Microsoft.Web.Management) 或托管 API (Microsoft.Web.Administration)?如果我在这里做错了什么,请纠正我。
更高版本的 IIS 可能支持哪种选项或技术?
- 哪个选项具有最大的灵活性和可扩展性?
- 从哪里可以找到任何建议/选择技术的资源?
我不太可能在 II5.1 或更低版本上工作。所以兼容区从 IIS 6.0 及以上版本开始。必须使用 ASP.Net 构建应用程序,如果不可避免,可以使用非托管代码。
谢谢
问候
史蒂夫
vb.net - 使用 VPN 连接到我们公司网络的离岸承包商的 2 线 Active Directory 呼叫失败
我们有离岸承包商正在尝试运行执行以下 Active Directory 调用的应用程序,如下 VB.NET 所示
该代码在函数返回行返回错误,表明它无法联系服务器,当它在本地为我工作时,它是“DC=uis,DC=unisys,DC=com”
承包商通过 VPN 连接到我们公司的内部网络,并且通常可以访问完整的网络,所以我不知道为什么他们应该无法联系到这个服务器。
其他位置的其他离岸用户使用相同的代码没有问题。
我对AD几乎一无所知。有人可以给我一个线索吗?
windows - 使用 VBScript 和 Active Directory 通过 SID 查找用户电子邮件
我正在解析有关 Windows 系统上用户帐户更改的日志消息。我想将更改通知用户,因此我需要从 Active Directory 中检索他们的个人信息(First、Last、E-Mail)。
我已经找到了一种检索用户名的方法,但这只能通过 WMI 而不是 ADSI:
它工作正常,但我想通过 Active Directory 而不是通过 WMI 来完成。你能帮助我吗?