Articles of wmi

ManagementScope可以用来从Windows发送wbem查询到Linux / MacOS客户端吗? C#

我目前正在使用C#和ManagementScope连接到我的networking上的Windows机器上运行WMI查询,并得到了这个工作。 我想知道的是,如果ManagementScope可以用来在运行Linux / MacOS的机器上运行WBEM查询,那么在查找信息时遇到了一些麻烦。 如果没有,我需要做什么才能从Windows机器连接到Linux / MacOS客户端? 主要是我想要查询返回机器的操作系统和正在运行的进程。 在Windows上,这可以在WMI类Win32_OperatingSystem和Win32_Process中find。 Linux / MacOS中的等价物是什么? 谢谢。

我如何从Linux查询Windowsregistry项?

我正在开发一个Linux审计应用程序,除其他外,它必须从Windows机器上检索已安装的软件和许可证。 应用程序必须是无代理的。 wmi-client实际上是实现我想要的,我尝试查询应用程序,它工作得很好: # LAUNCHING WMIC PLUGIN my $cmd = "wmic -U ".$username."%".$password." //".$hostname." \"select Name, Version from Win32_Product\""; my $output = `$cmd`; print "INSTALLED SOFTWARE:\n"; print "$output"; 现在我的问题是,如何检索某些应用程序的产品密钥? 我知道有时他们存储在registry项中,我可以通过WMI查询他们吗? 编辑:只是发现在一个网站上: http://social.technet.microsoft.com/Forums/en/winserverGP/thread/5cd1b80a-2f90-4d46-bf65-dba52dcf0c56 WQL查询基于某些提供了一组属性的WMI类。 WMIregistry操作取决于“默认”命名空间中的“StdRegProv”,必须调用某些方法才能获得结果。 这意味着基于WMIfilter的registry查询是不可能的。 所以看起来WQL不能查询registry项,那我该怎么办? 有任何想法吗?

主板ID – WMI C ++ – 可靠吗?

我在C ++类中使用WMI来检索我的主板的序列号。 查询如下: "SELECT SerialNumber FROM Win32_BaseBoard" 我自己写了这个查询,所以我不确定它是正确的,但它确实返回了一些东西: /9637CW1/CN1296131Q0BA8/ 。 返回的string是在多台计算机上相同的格式,所以我假设查询是正确的。 我的问题是:我真的在这里查询主板序列号吗? 因为我看到另一个名为"Win32_MotherboardDevice"类(它没有“序列号”属性)。 将它用作计算机标识符是个好主意吗? 我目前正在使用硬盘序列号,但是我认为使用更可靠的组件(如主板)的序列号会更好,因为硬盘比主板更有可能被更换。 谢谢 :)

通过Python从Linux访问WMI

我正在寻找一种方法来从Linux机器(CentOS 6)远程访问Pythonscript的WMI(Windows Management Instrumantation) 当然有python–wmi软件包,但是它使用了Linux上没有的Windows API。 我发现了wmi-client-wrapper ,应该这样做。 但没有文件,甚至这个例子都不适合我。 我想这样做的原因是因为我想远程获取系统上的所有Useraccounts并将它们存储在数据库中。 也许你还有其他的方法怎么做。 谢谢

应用程序池启动/停止/回收“此方法没有在任何类中实现”错误

我遇到问题开始/停止/回收位于远程服务器上的应用程序池。 我编写了一个函数,告诉我服务器上的应用程序池(以及它们的状态)。 但是,每当我运行下面的代码片段时,我都会收到错误“ System.Management.ManagementException:此方法没有在任何类中实现 ”。 // getScope creates a ManagementScope object ManagementScope scope = getScope(serverName, "microsoftiisv2", username, password); scope.Connect(); ObjectQuery objectquery = new ObjectQuery("SELECT * FROM IISApplicationPoolSetting"); ManagementObjectSearcher mos = new ManagementObjectSearcher(scope, objectquery); ManagementObjectCollection moc = mos.Get(); foreach (ManagementObject mo in moc) { string path = mo["Name"].ToString(); string name = path.Split('/')[2]; string pstate = mo["AppPoolState"].ToString(); […]

有没有办法知道哪个硬盘MSStorageDriver_ATAPISmartData返回结果?

我正在使用WMI查询有关计算机硬盘的信息,但是我在处理获取的信息时遇到了问题,例如: ManagementObjectSearcher searcherDisk = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_ATAPISmartData"); foreach (ManagementObject queryObj in searcherDisk.Get()) { byte[] arrVendorSpecific = (byte[])queryObj.GetPropertyValue("VendorSpecific"); … } 然而,我可以通过我的电脑获得每个硬盘驱动器的所有SMART信息,而且据我所知,由于WMI查询没有sortingfunction,所以在查询返回信息时,一个,其他的数据也是关于硬盘的: ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive"); foreach (ManagementObject wmi_HD in searcher.Get()) { … } 说的结果是: # HD | Value HD1 | Val2 HD2 | Val1 如果我确定顺序总是相反的,也许我可以通过匹配来解决这个问题,但由于我不知道,据我所知,我试图使用Win32_DiskDrive Index值,它为每个返回一个索引值在硬盘驱动器,但是我还没有find一种方法来做同样的MSStorageDriver_ATAPISmartData查询,你会说我的select在这里呢? 顺便说一句,我知道我的信息是错误的,因为我一直在使用AIDA64软件来比较我的结果。

Powershell:获取所有暂停的任务

我试图从运行Windows Server 2012的terminal服务器获取所有暂停的任务。 我已经尝试使用wmi对象的powershell像这样: Get-WmiObject -Class Win32_Process -ComputerName computername -Property status 但是所有进程的status属性都是空的,但是它显示在任务pipe理器的详细信息视图中,如下所示: 我也尝试了下面的代码尝试获取正在运行的线程的状态: $processes = Get-Process * -ComputerName ppivts | select name,threads foreach ($process in $processes) { foreach ($thread in $process.Threads) { if($thread.ThreadState -ne "Wait"){ $process.Name $thread.ThreadState } } } 这也不pipe用。 我如何获得过程的状态,更具体地说是暂停状态?

禁用SD卡访问

有没有办法我可以禁用访问SD卡以编程方式使用WMI或通过编程修改registry? 到目前为止,我通过修改“HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ USBSTOR”registry来禁用USB。 但是这不会因为某些原因而阻塞SD卡。 任何帮助,将不胜感激。

可能监视进程通过WMI启动另一个进程?

我有一个安装可执行文件,我需要安装。 当我运行它,它启动一个MSI来做实际的安装,然后立即死亡。 这样做的副作用是它会将控制权返回到您在安装完成之前调用它的任何控制台。 根据我运行什么机器,它可能需要三到十分钟,所以呼叫脚本睡眠是不可取的。 我会直接启动msi,但它抱怨丢失的组件。 我有一个WSH脚本,它使用WMI启动一个进程,然后观察,直到它的PID不再运行。 有没有一些方法来确定最初的可执行文件正在执行的MSI的PID,然后注意使用WMI结束该PID? 启动过程信息是否与过程相关联?

在.net中检查等效的共享文件夹

在.net框架中,有没有办法检查两个不同的共享文件夹是否实际指向同一个物理目录? Windows中的目录是否有某种唯一的标识符? Google-fu让我失望 (我的意思是,除了写一个临时文件,看看是否出现在另一个) 编辑:我想我已经发现了我需要的东西,感谢Brody让我指向System.Management命名空间的正确方向。