- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很好奇是否有人可以描述如何通过绑定(bind)实例枚举可用的 ADSI 方法,如 [ADSI]$instance.psbase.Invoke()
?
研究结果显示"refer to the docs for the ADSI interface" 。但我对这个答案不是特别满意。
如果我实例化:
[ADSI]$lhost_group="WinNT://./Administrators,group"
然后尝试:
@($lhost_group.psbase.Invoke("Members")) | foreach-object {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)}
Powershell 将返回 out
的GetProperty("Name")
对于组中包含的每个对象。
如何枚举通过任何给定 ADSI 接口(interface)可用的所有可用方法和属性?
This answer from Shay Levy是另一个语法示例,其中 [ADSI]$_.GetTypes().InvokeMember()
和[ADSI]$_.psbase.Invoke()
被使用。
最佳答案
答案是“不”,而且不太可能改变。我和你一样对这个答案感到不满,但我可以提供一些技术背景来支持和解释它。
核心问题是 native 代码 ADSI 对象必须实现 COM 接口(interface) IDispatch [它允许调用后期绑定(bind)方法],但它们不一定实现 ITypeInfo [它允许类似反射的行为]。在 PowerShell 中,实现 IDispatch 但不实现 ITypeInfo 的 COM 对象会导致一组奇怪的限制,这就是您所注意到的。
WinNT ADSI 提供程序至少已有 15 年历史,而且它从来都不是一个强大的功能。它是在 Active Directory 发布之前(远早于 CLR 或 PowerShell)编写的占位符。当时,Microsoft 的“脚本”意味着 VBScript 的早期版本,并对 JScript 提供一些支持,两者都依赖于在 IDispatch 上并且从未使用过 ITypeInfo。
这是 PowerShell 早期讨论的一个话题,当时一位 PowerShell 团队成员说道:
14 Jul 2006
... The PowerShell can't show the methods of COM objects if the ITypeInfo interface is not provided. This will be fixed soon. The workaround is to use Type.InvokeMethod().
PowerShell 对 COM 对象的支持有所改进,但完整的修复从未实现。我认为团队成员可能过度 promise 了技术上可行的事情。这可能会让人们感到困惑。几年前,我向团队中的一位开发主管 friend 询问了这个问题;他显然熟悉这个问题,并表示该用例不是高优先级,并提到了解决方法。
PowerShell 团队一直在提供令人印象深刻的功能和一些错误修复,但坦率地说,我认为这个问题永远不会成为错误栏。
关于powershell - 是否可以枚举通过 [ADSI] 对象的 Invoke() 可用的所有方法和属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18538840/
如何检测当前网络中计算机是否已连接/可用。 当然,它有多种用途,但我主要关心的是我的应用程序使用位于特定计算机中的资源,如果这些资源不可用,它甚至不会尝试连接,而是使用本地资源。 最佳答案 您可以尝试
雅虎建议load scripts at the bottom of an HTML pages出于性能原因。我使用遵守规则的 HTML5 Boilerplate。 这种方法的问题是 jQuery 也是
我有一个场景,我需要只向管理员而不是普通用户展示一个组件。 说, // This component should be rendered for public users.
我有一个数组,比方说 ["a","b","c"],我想把它变成一个对象,它以数组值作为键和一个默认值我可以设置。因此,如果默认值为 true,我希望我的输出为 {a:true, b:true, c:t
我假设在函数中创建一个新的 PS-Drive 会使该驱动器只能在该函数中访问。 如何通过从该函数可访问的 MAIN 调用函数来创建 PS 驱动器? $temproraryPSDriveName =
您会推荐哪些 .net 控制库作为企业必备的? 可以免费/非免费 至少应该包含一个真正强大的Datagrid Ajax 功能 有没有可用的比较? 最佳答案 我用过 Telerik ASP.NET控制之
假设我有一些像这样的 html: Hello World Javascript代码: var fooBar = document.getElementById('fooBar'); fooBar.
开始实现 camera plugin 时出现以下错误在我的 flutter 应用程序上: [VERBOSE-2:dart_error.cc(16)] Unhandled exception:
我想知道应该在哪里正确放置 countA,因为我希望将计数添加到所做的每个按钮中。开头的“count”变量用于制作新按钮,“countA”是我试图声明的计数,但它无法编译。这是我的代码片段:我的问题再
在python帮助文档中我经常看到带有函数名和命名参数的签名行,然后你会看到**kwarg(关键字参数)。 list? 打印到帮助文档字符串: Init signature: list(self, /
我是 UWP 的新手,想知道“Flyout”、“ContextFlyout”和“Popup”之间的区别。另外,我想知道“AppBar”和“CommandBar”之间的区别。我相信这些是容纳菜单或菜单项
我想显示可用的 Wifi 设备列表。这是我的代码,我不明白这里有什么错误: wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); i
这是我的代码: Random = function(name) { this.name = name; this.addSomething = function(a, b) {
我希望我的按钮持续动画直到用户触摸它,这是代码 func animate() { UIView.animateWithDuration(1, animations: { () -> Void
我正在为我正在参加的类(class)制作一个 HTTP 服务器作为项目,一周来我一直在尝试寻找解决方案。我有一个 DataInputStream,我需要等待客户端向我发送 http 请求,由于连接保持
我想创建一个 bash 脚本来检查我的 Linux 服务器中的哪些端口已关闭且未在特定范围(端口范围 (3000-3010))中使用。 打印输出只需1个端口,如果将输出保存为变量或保存在同一个文件中,
我写了一个我认为是最小的自定义设备来测试我对 QOM 和 QEMU 的总体理解。以下是省略注释的相关代码。不幸的是,当我启动 guest 并将我的设备名称作为命令行参数传递时,它无法找到我的设备并退出
调用Opencv函数时,通常会提供一个常量给函数调用,如: im_hsv = cv2.cvtColor(im, cv2.COLOR_BGR2HSV) 虽然我找不到对所有可用常量的引用。 Opencv
C++ 于 1998 年正式标准化,但我们能在多久以前找到一个名为 string 的类,它看起来像 C++2003 中的 std::string预标准 C++ 实现? 我问是因为 CString 作为
是否有一个官方的(或可能没有)git 命令列表,--porcelain 选项可用?或者我应该在 the porcelain commands list 中手动查看它们中的每一个吗? ? 我已经设法用谷
我是一名优秀的程序员,十分优秀!