Articles of wmi

NodeJS,Windows,wmic stdin

我在NodeJS中遇到了Windows程序WMIC.exe(用于查询Windows Management Instrumentation)的问题。 我可以产生一个wmic.exe进程,但它不会输出任何东西或接受任何input。 但是,如果我将stdin设置为null,它将正确运行,我会收到输出。 var spawn = require('child_process').spawn; var wmic = spawn('wmic', [], {stdio: ['ignore']}); wmic.stdout.on('data', function(data) { console.log('Data received:' + data); }); wmic.on('close', function(code) { console.log('Spawned process ended with code: ' + code); }); 我想交互使用wmic.exe,它支持,保持打开,所以我不必为每个WMI查询重复启动它。 其他人也有与wmic.exe类似的问题,但他们只想捕获一个单一的查询输出,所以有一个null stdin无关紧要。 更新 如果我做以下… var spawn = require('child_process').spawn; var wmic = spawn('wmic', []); wmic.stdout.on('data', function(data) { console.log('Data received:' […]

远程窗口上临时文件夹的位置

如何确定远程Windows机器上的临时文件夹的位置? 我可以使用它连接到它 objSWbemLocator.ConnectServer(strComputer, _ "root\cimv2", _ strUser, _ strPass) 提前致谢!

有没有像Linux的WMI?

我喜欢整个WMI的概念,而且我真的可以在Linux下使用它(在某些脚本中)。 有没有这样的Linux系统?

Python win32print打印机状态混乱

我一直使用Python的win32print模块来获取关于打印机设置的各种信息,例如驱动程序名称,作业计数,使用的端口,状态等等。这些模块大部分都是成功的,但是我遇到了很多麻烦使任何使用win32print从API返回的状态码。 我一直在使用win32print.GetPrinter方法,它返回一个PRINTER_INFO_字典,其中一个映射是Status。 但是,没有logging什么状态代码对应于什么打印机状态。 看来0是空闲的,1是暂停的,但除此之外,我不知道这是什么意思。 当我查找Windows 32位API的常量值时,发现这个页面 ,但是我没有回来的状态代码似乎与之相匹配。 很多时候,我得到一个状态代码1052800(从Epson打印机得到一个),它不在win32api常量列表中。 我也尝试使用WMI模块来做到这一点,甚至不太成功。 我想获取打印机的打印机状态代码缺纸,打印机门打开,碳粉不足,卡纸等。有没有人有任何提示,在哪里可以find这些状态代码的意思,甚至更好的解决scheme,以查找打印机状态彻底? 谢谢!

Python:在Windows主机中运行一个进程

我需要使用python从linux主机运行一个Windows主机内的进程。 我看到WMI的Python库,但似乎只能从一个Windows主机,而不是Linux,我该怎么办? 我需要像PSEXEC这样的东西,但它只适用于Windows。

Win32代码在Windows XP / 7中获取EDID

我发现这个网页,并无法得到任何有用的信息(它searchregistry的东西,但从来没有find它,并进入一个无限循环)。 由于这个关于获取显示器串行UID(“EDID信息”)的问题,我想从Win32 C代码(或C / C ++ DDK代码,或其他)而不是Linux的angular度来看相同的信息。

如何远程获取系统的networking共享和连接?

我正在寻找一种方法来远程获取类似于以下控制台应用程序的信息: 净使用 净份额 netstat -ano 但是,我需要能够做到这一点,而无需在系统上运行第三方应用程序。 这有效地排除了使用psexec远程执行命令,因为psexec将作为服务安装。 我应该补充说,我有远程系统上的pipe理凭据。 我已经考虑过使用WMI的远程执行能力,但这需要我将输出写入文件,然后检索它。 这是可能的,但我想知道是否有人有更好的办法。 我正在使用delphi2010年。

获取Windows序列号(是:从registry中获取MachineGuid)

我试图从registry中获取MachineGuid ,为我的许可证系统创build一些与操作系统绑定的级别。 从我可以使用的文档 string key = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography"; string r = (string)Registry.GetValue(key, "MachineGuid", (object)"default"); 为拿到它,为实现它。 此外,文档告诉我,当名称没有find时,我得到"default" ,或者如果密钥不存在,则为null 。 如果我没有访问权限,我应该得到一个安全exception。 上面的代码给了我"default" ,这意味着名称没有find。 但是,如果我注册RegEditregistry,它就在那里。 如何从没有pipe理员权限的应用程序获取MachineGuid值? 更新 :使用reg.exe我没有问题得到的价值。 更新 :我更新了标题,所以寻找确定Windows安装的独特方式的人也可以在这里find。

如何使用WMI更改文件权限?

我想要做的是相当于这里描述的脚本。 基本上,我想取得文件的所有权,并将权限设置为OWNER /完全控制。 在我看来,从VBS脚本使用WMI是最便携的方式。 也就是说,我想避免xcacls,icacls和其他工具,要么下载,要么只支持某些版本的Windows。 search后,我发现这个代码取得所有权: 'connect to WMI namespace on local machine Set objServices = GetObject("winmgmts:{impersonationLevel=impersonate}") 'get a reference to data file strFile = Wscript.Arguments(0) Set objFile = objServices.Get("CIM_DataFile.Name='" & strFile & "'") If objFile.TakeOwnership = 0 Then Wscript.Echo "File ownership successfully changed" Else Wscript.Echo "File ownership transfer operation" End If 我仍然缺less的部分是设置权限,并使其工作在相对path。

从WMI ExecQuery获取第一条logging

我有一个简单的VBScript检索Windows版本: Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") Set colVersions = objWMI.ExecQuery("Select * from Win32_OperatingSystem") For Each objVer in colVersions ver = objVer.Version Next 是可以得到第一个logging,或者我必须循环集合中的所有logging。 我见过的所有例子都是For Each构造。 我收到预期的语句错误结束时,我尝试: ver = colVersions[0].Version 它看起来像ExecQuery的返回值不是一个适当的集合。