草庐IT

python - 用 Winapi 替换 WMI 调用

我目前正在寻找用等效的win32api调用替换我所有使用WMI的代码。我这样做是因为我注意到WMI调用比win32api调用花费的时间多。下面是一些示例:上市服务:wmi:~4秒winapi:~0.003秒列出打印机:wmi:~0.5秒winapi:~0.009秒列出Windows用户:wmi:~0.5秒winapi:~0.2秒是否可以替换所有wmi调用?作为一般规则,是否可以使用winapi调用执行WMI中可用的每项任务?我已经设法替换了我的大部分wmi代码,但我还剩下以下代码:创建还原点枚举网络适配器枚举分区我在枚举网络适配器方面遇到了一些困难。还值得一提的是,我正在使用pytho

windows - 添加成员到 WMI 对象最佳实践?

我正在编写一个使用WMI对象获取Windows版本的函数。但我想将Windows10ReleaseId(“1709”)(来自注册表项)添加到对象中。这是一个愚蠢的想法吗?(它有效,我只是不知道这样做是否明智。)functionGet-OSVersion{[version]$OSVersion=(Get-WmiObject-ClassWin32_OperatingSystem).Versionif($OSVersion.Major-ge'10'){$OSVersion|Add-Member-MemberTypeNoteProperty-NameReleaseId-Value$([int]

windows - 在 Vista/Win7 上使用 WMI 检查夏令时

如何确定我使用的计算机是否实行夏令时?(最好使用WMI)根据thisarticleatTechNet,我可以查询SELECTDaylightInEffectFROMWin32_ComputerSystem,但属性DaylightInEffect在Vista或Win7上不受支持。由于我的程序将在各种系统(XP、Vista、7)上运行,我希望能找到一些可移植的方法。 最佳答案 记录的受支持操作系统列表不准确,当我尝试时这在Win7上工作正常。我想不出任何其他操作系统不支持它的原因,使用Win32API(GetTimeZoneInform

java - 如何在 64 位 Windows 7 上检索 RAM

我在具有24GB内存的64位WindowsVista上安装了一个Java桌面应用程序。我的程序只找到24GB中的4个。我正在使用获取RAMwmiccomputersystemgetTotalPhysicalMemory/format:list如果失败(以防他们没有WMI)我使用com.sun.management.OperatingSystemMXBeanbean=(com.sun.management.OperatingSystemMXBean)java.lang.management.ManagementFactory.getOperatingSystemMXBean();long

c# - 在没有 WS-Management 服务的情况下通过 MI 访问 WMI 实例

我正在尝试通过C#中的Microsoft.Management.InfrastructureAPI访问本地主机上Windows7和Windows10Embedded上的WMI类。它使用以下代码段中的代码工作,但前提是我启动Windows远程管理(WS-Management)服务。我注意到即使WS-Management服务未启动,我也可以通过Get-WmiObject等Powershellcmdlet访问这些类。如果没有通过Microsoft管理基础结构API启动服务,是否有任何方法可以访问WMI?CimSessioncimSession=CimSession.Create("local

Windows 文件共享 : What ACE AccessMask flags correspond to the different share permissions?

最近我尝试使用WMI创建一个共享并向用户授予读写权限。现在使用0x1(FILE_READ_DATA/FILE_LIST_DIRECTORY)和0x2(FILE_WRITE_DATA/FILE_ADD_FILE)不起作用。设置所有标志让我完全控制。我必须使用哪些标志分别设置读取、更改和完全控制共享权限? 最佳答案 我通过反复试验发现了以下内容:对于读取权限,您需要使用0x1200A9。这对应于以下标志:FILE_READ_DATA(file)orFILE_LIST_DIRECTORY(directory)1(0x1)FILE_READ

Python:使用 wmi 远程启动可执行文件

我正在尝试使用wmi模块在Windows上远程运行可执行文件。它建立了连接,但我认为我的进程线不正确,因为当我检查服务器时,可执行文件肯定没有运行。你们能帮我解决这个问题的语法吗?importwmi,timeip='xx.xx.xx.xxx'username="user"password="password!"fromsocketimport*print"Establishingconnectionto%s"%ipconnection=wmi.WMI(ip,user=username,password=password)print"Connectionestablished"print

c# - SelectQuery 占用 100% CPU

我正在对机器上的所有用户进行查询,当它执行时,它会占用100%的CPU并锁定系统。我已经等了5分钟,但什么也没有发生。在任务管理器中,wmiprvse.exe占用了所有CPU。当我终止该进程时,一切都会恢复正常。这是我的代码:SelectQueryquery=newSelectQuery("Win32_UserAccount","LocalAccount=1andDomain='"+GetMachine().DomainName+"'");using(ManagementObjectSearchersearcher=newManagementObjectSearcher(query))

.net - WMI - 以编程方式更新 DCOM 设置

我创建了一个小的exe来修改一些DCOM设置。当我尝试修改运行exe的不同服务器上的设置时,exe工作正常,但当我尝试修改运行exe的同一服务器上的设置时,exe不起作用如果我将strComputer设置为另一台远程机器的名称,代码将工作并更新远程机器上的正确设置我在尝试更新同一台服务器时运行它时遇到的错误是我抛出的错误:Couldnotgetsecuritydescriptor'withreturncodeof-2147023582代码:DimstrComputerAsString="."'localhostDimobjWMIServiceAsObject=GetObject("wi

windows - 将文件从一个 Windows 服务器复制到另一个

我必须将文件从Windows2008服务器复制到一个或多个Windows2008服务器。我在目标机器上有足够的权限让我使用powershell远程处理和使用wmi的帐户。远程机器不运行ftp、ssh或类似的文件传输机制。我不允许在目标服务器上安装软件或运行新服务。我可以在源服务器上运行服务。文件复制操作必须从源服务器发起。即我无法手动登录到目标机器并启动复制-尽管可以接受自动方式来执行此操作。是否可以使用WMI或PowerShellRemoting将文件从源推送或拉取到目标?是否可以调用某种内置的http客户端或调用远程服务器上的BITS服务/代理从源服务器中提取文件?请提出其他建议。