问题标签 [system.management]
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.
c# - 通过 nuget 的 PowerShell 问题
我正在开发一个使用 System.Management.Automation 库的程序,这样我就可以创建一个 PowerShell 实例。就像是:
为了避免强制用户安装 PowerShell v3,我使用 System.Management.Automation Nuget 包版本 6.3.9600.17400。在我的机器上测试时,我收到以下错误:
尝试加载系统 Windows PowerShell 管理单元时出错。请联系 Microsoft 客户支持服务。---> System.Management.Automation.PSargumentException:无法访问 Windows PowerShell PowerShellEngine 注册表信息。
我迷路了。现在,我正在尝试在我的机器上安装 PowerShell v3 以查看它是否有效。我真的认为有这个包会起作用。有什么我可以做的吗?
提前致谢
c# - 为什么“禁用”或“重新启动”方法不起作用(在 C# 中使用 WMI)
我刚刚写了3个不同的代码。其中一个工作正常。但是另外两个,不要工作并抛出一个ManagementException
消息:
此方法未在任何类中实现
这是可以正常工作的代码:
这是不工作并引发异常的代码(请参阅基本相同的代码) 改变的一件事是使用的 WMI 类。异常发生在 InvokeMethod 上。
我还尝试使用“重置”方法而不是“禁用”方法。这没用。但这一次,异常发生在GetMethodParameters
. 它说这个方法没有在任何类中实现。
我需要一个启用和禁用 PNP 设备的代码,此外,我需要使用 WMI 类来保持与其余代码相同的标准,所以我需要使用 namespace System.Management
;
c# - .Net C# System.Management.ManagementObject SECURITY_DESCRIPTOR 值在 RegistryValueChangeEvent 事件中为空
我正在开发用于查看特定键的注册表监视器,我遇到了 System.Management.ManagementObject
SECURITY_DESCRIPTOR
值在RegistryValueChangeEvent
事件中为空的问题。请帮助
c# - 从 ObjectReadyEventHandler 返回值
我正在编写一个程序,该程序返回当前登录服务器的用户列表。
这是执行此操作的代码:
mo_ObjectReady 可以获取当前登录服务器的一个用户名。如何将值返回给 GetUsers 函数,以便我可以将它们完全放在一个列表中?
提前致谢。
c# - 在 C# 代码中执行 Service Fabric cmdlet
我遵循了http://jeffmurr.com/blog/?p=142
从 C# 调用 powershell 脚本的方法。但我收到了类似的错误
怎么做才能成功。
下面发布的是我尝试过的代码。我将命令文本框的值传递为 Connect-ServiceFabricCluster -ConnectionEndpoint "localhost:19000"
“
我的最终目标是创建一个可以将应用程序部署到集群的站点。否则我必须登录到安装了 SF 的系统并手动执行 power shell 命令。
c# - C# system.management 未加载
我正在尝试在 VS 2017 的 C# Windows 窗体应用程序中使用 system.management,但它不起作用。这是一个代码示例:
在:“使用 System.Management;” 它告诉我:这不需要/使用。
在:“ManagementScope scope = ......”它告诉我:未找到(可能缺少 using-Directive),并带有红色下划线。
两者显然都是错误的。我正在加载它,我正在使用它。为什么两条线不能“看到”对方?
c# - 从 System.Management.Automation 调用脚本时未设置 $PSScriptRoot
我正在从 .NET 应用程序运行 PowerShell 脚本,但由于$PSScriptRoot
未设置而失败。我该如何设置?
代码:
我还尝试使用以下方法设置它:
但它在脚本中仍然为空。
这也不起作用:
我尝试使用不同的名称来查看它是否以某种方式保留或被覆盖,但它也是空的。
以下失败并出现 PSScriptRoot 无法替换的错误,因为它已被优化:
c# - 如何从 WMI 获取方法
tl; dr为了获得这些方法,我应该用什么SELECT
代替?*
更多信息:
这是一个例子:
如果我只要求一个属性是不够的 - 我在尝试时遇到异常obj.InvokeMethod(...);
。
如果我要求*
就足够了,但如果可能的话,我宁愿避免这样做。
我在 WMI 类的文档中没有看到任何用于获取方法(- Disable
、、Enable
...)的属性。如果它不在列表中 - 怎么会*
起作用?难道不应该要求所有名单上的人吗?
编辑
有人建议使用ManagementClass 而不是ManagementObjectSearcher
. 这会加载所有属性*
吗?(如果不是,这是一个很好的答案。虽然在我的实际情况下,除了调用方法的能力之外,我还需要一个属性。我的理论问题仍然存在——*
不仅仅是全部。)
c# - 如何从 C# 中的 Powershell 管道读取错误?
我正在使用System.Management.Automation.Runspaces.Pipleline
创建一个 powershell 管道实例并在 c# 控制台应用程序中执行我的 powershell 脚本,问题是如果脚本最终出现错误,那么我不知道如何在控制台屏幕上打印该错误。
这是我的代码,
我可以看到该属性Pipeline.HadErrors
,但如果检测到错误,它只会将我拉到循环中,它会做任何事情来获取错误消息。我的问题是如何在控制台屏幕上获取实际错误?
c# - 从 C# 使用 powershell 启动 MSTSC
我正在尝试从 C# 启动 MSTSC / RDP 会话。由于各种原因,我决定调用 Powershell 来执行此操作,部分原因是我知道 powershell 命令有效,尽管我不反对尝试其他方法来启动会话。我启用了 RDSH,并且很高兴能够在这台机器上启动多个 RDP 会话。
在 Powershell 中运行以下命令会完全按照我的预期启动 RDP 会话:
cmdkey /generic:TERMSRV/localhost /user:username /pass:password; mstsc /v:localhost
尝试使用下面的代码和 System.Management.Automation.dll 将其转换为 C# 但是失败并出现错误:
指定的连接文件无效 (True)
请注意,这是远程桌面连接错误,而不是 powershell 或 C# 错误。
我正在使用的代码是:
这被称为使用:
StartRDP(username, password);
我还使用具有相同结果的硬编码变量对其进行了测试。非常感谢任何建议!
编辑: 检查了系统上缓存的凭据后,我可以看到此方法将“True”附加到所有参数的末尾...查看直接在 Powershell 中创建的凭据与在 C# 中创建的凭据之间的区别:
电源外壳:
目标:LegacyGeneric:target=TERMSRV/localhost
类型:通用
用户:用户名
C#:
目标:LegacyGeneric:target=TERMSRV/localhost True
类型:通用
用户:用户名 True
这似乎是问题所在,尽管我还没有接近解决它。