问题标签 [wmi-service]

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.

0 投票
1 回答
690 浏览

vbscript - 跳过错误的计算机

我遇到了一个 VBScript 问题,它从 Excel 工作表上的列表中查找计算机上的打印机,然后通过 WMI 找到它们。它通过 IP 地址名称匹配它们,然后编写一个批处理文件,我可以从中安装它们。我的问题是,当我关闭计算机时,我收到一个 462 错误,然后将其清除,但随后再次写入前一台计算机的打印机。我对此很陌生,所以我不确定我是否只是在这里遗漏了一些非常基本的东西。

0 投票
1 回答
2016 浏览

scripting - 监控驱动器。使用 VB 脚本

我想使用 VBScript 监视驱动器的文件更改。我有下面的代码。它适用于InstanceCreationEventInstanceDeletionEvent。但InstanceModificationEvent没有发生。从谷歌搜索我知道我们需要使用CIM_DataFile而不是CIM_DirectoryContainsFile监控InstanceModificationEvent。我不确定如何修改代码。任何人都可以帮忙。

仅供参考:一个脚本应该监视驱动器中的所有文件夹和子文件夹。

PS:任何改进代码和性能的建议或其他想法也欢迎。

我的代码:

0 投票
1 回答
839 浏览

visual-c++ - WMI IWbemClassObject::GetNames 状态完成

我进行 WMI 查询SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'

在我对 COM 对象IWbemClassObject的实例调用方法GetNames之前总是可以的(在我的方法IWbemObjectSink::Indicate的实现中检索)。当我调用IWbemClassObject::GetNames时,一些 WMI 机制调用我的 IWbemObjectSink::SetStatus 并带有标志WBEM_STATUS_COMPLETE并且没有任何新事件发生!!!我不调用任何取消异步方法。

我做错了什么?如何防止停止 WMI 事件?如何安全地调用 GetNames?调用IWbemClassObject::GetNames后,我仍想订阅新事件。

UDPATE:我如何称呼GetNames

piappObj是通过此答案中显示的方式抓取的对象

0 投票
0 回答
105 浏览

wmi - 如果选择异步模式,远程计算机的 wmi 查询将失败

我正在尝试使用 wbemtest 在远程机器中执行 wmi 查询( select * from win32_ntlogevent)。在半同步模式下成功。如果选择异步模式,则查询失败并返回错误消息,显示Access is Denied

谁能解释为什么会这样?

0 投票
3 回答
24859 浏览

c# - 如何远程重启服务?

我可以从 .net 项目远程启动或停止服务。

如何重新启动此服务?

0 投票
2 回答
2656 浏览

c# - Win32_Service 丢失

我有 C# 代码试图从 WMI 对象加载一些属性 - Win32_Service。但它返回给我 'System.Management.ManagementException: Invalid class' 错误。

我的简化代码:

我还尝试通过 PowerShell 命令加载 WMI 对象列表 -

获取 WmiObject -List | 选择名称

它返回 91 个对象,但它错过了 Win32_Service 对象。我用谷歌搜索了如何重新安装它,但没有找到。有没有办法以某种方式重新安装它?

谢谢

更新 1: Powershell 命令的输出:

0 投票
1 回答
355 浏览

windows - WMIPRVSE默认需要在网络服务下运行

我有 2 个独立的服务器(windows server 2008 r2),我通过 microsoft 调度程序(my-computer>manager>Schedule)运行 vbs 脚本。当我在本地运行 vbs 脚本时,它们工作正常,但是当它通过调度程序运行时,其中一台服务器正在堆叠。而另一个工作正常。而且我还从任务管理器中注意到,工作服务器通过网络服务用户运行 WMIPRVSE.exe,而另一个将 SERVICES 显示为用户。

如何确保 WMIPRVSE.exe 将始终在网络服务下运行。谢谢

编辑:

我试图从服务更改登录用户,但它无法启动服务。

0 投票
1 回答
683 浏览

powershell - Powershell 安全获取服务不同的结果交互与计划任务

我花了几个小时试图解决这个问题。我正在运行 PowerShell 来验证各种服务是否正在运行。我想从 Windows 任务计划程序每 5 分钟运行一次。

它检查其他服务器上的服务,以及一些在它运行的同一台机器上的服务。当我在任务调度程序下运行它时,在我运行交互的相同用户 ID 下,我得到不同的结果。以交互方式显示本地计算机上的所有服务正在运行。通过任务调度程序运行时,它告诉我找不到服务。

这只是一个更大程序的一个片段。我从 CSV 文件中获取服务器/服务名称,然后在最后发送一封漂亮的 HTML 电子邮件。我添加了 Add-Content 以创建跟踪文件来证明这种情况。

新的更简单的版本(有完全相同的问题): $Service = (get-wmiobject win32_service -ComputerName "DAL-BIZ-APP01" -filter "name = 'LanManServer'") if ($Service -eq $null) { $reportStatus = "未找到服务" } else { $reportStatus = "找到服务" } $myDate = Get-Date Write-Host $reportStatus Add-Content D:\scripts\ServiceTestTrace.txt "$myDate $reportStatus"

互动结果:

预定的作业结果:

我从包含以下内容的命令文件运行它:

从非管理员命令提示符窗口或调度程序运行命令文件似乎也有不同的结果。

如果有人想尝试新的更简单的版本,只需替换两个计算机名称:

结果:

16:07:48 来自命令提示符,16:08:03 来自任务调度程序。

0 投票
0 回答
235 浏览

c# - 使用 WMI 的现有查询的事件

如果我有 WMI 查询来获取某物的状态,是否有关联的事件可以侦听对该状态的更改。例如 - 我可以查询主板序列号,但是否可以以事件的形式检测到序列号的更改。或者至少我找不到一个。使用微软的 wmi 代码创建器,给定查询似乎没有事件,我想知道为什么没有或我错了?

0 投票
2 回答
135 浏览

c# - WMI 事件处理器使用与 WMI 查询

我希望能够使用 wmi 检测 PC 上已安装程序列表的变化。我有 2 个选项 1- 每 X 秒运行一次 wmi 查询并与包含列表的已保存文件进行比较。2 - 启动每 X 秒轮询一次的 Wmi 事件。

哪个使用较少的处理能力让我希望 X 为 60 秒?