问题标签 [get-wmiobject]
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.
powershell - “Get-WmiObject Win32_QuickFixEngineering”返回带有未来日期的“InstalledOn”
我想通过 PowerShell 检查安装安全更新的最新日期。因此我想使用这样的东西:
我尝试使用Get-CimInstance -Class
,但这不适用于 Windows 7。
输出是这样的:
日期是否格式不正确或显示不正确?如何避免这种情况?
powershell - get-wmi 通过匹配本地路径属性删除用户配置文件
我正在编写一个脚本来审核服务器的配置文件,确定哪些属于在 AD 中被禁用的用户,然后只从服务器中删除这些用户。我几乎让它工作了,但我认为我用来实际运行删除的代码不太正确。这是我到目前为止的脚本:
dispaths.csv 文件以包含正确数据的列结束,但是当 get-wmi 命令最后运行时,它实际上并没有删除任何配置文件。这就像 get-wmi 返回的任何内容都与我设置的目标不匹配。我确信我有一个逻辑或语法错误,但我需要一些指导才能找到它。
我试图让代码查看名为“localpath”的列中的每个字段,并删除它在服务器上找到的在其 localpath 属性中具有匹配字符串的任何配置文件。当我运行脚本时,它只返回一个新行,但没有删除任何配置文件。
powershell - 使用 Powershell 在一行字符串中获取正在运行的进程的完整命令行
我正在尝试找到一种方法来在一个字符串中获取进程的完整命令行,以检测 Java 应用程序是否已经在运行。该程序允许多个实例,但我想防止打开多个实例。该命令的输出添加了 4 个我想删除的回车。这是我使用的:
$processRunning = Get-WmiObject Win32_Process -Filter "name= 'javaw.exe'" | select -ExpandProperty CommandLine
我遇到的问题是上面的行添加了回车,因为命令行很长。我尝试使用 Format-Table 和 Format-List 对其进行不同的格式化。我也试过-replace "`r", ""
and | Out-String -Width 2048
。
我想像这样匹配结果:
$startProcess = ([wmiclass]"win32_process").Create($processToStart)
if ($processRunning -like $commandLine )
{
Write-Output "Program is already running"
}
else
{
Write-Output "Starting Process"
$startProcess
Wait-Process -Id $startProcess.ProcessId
}
该Wait-Process
命令不起作用,因为显然$startProcess.ProcessId
为空或 null。
谢谢
powershell - 获取非管理员帐户的 IIS 应用程序池 WMI 对象
我编写了一个 powershell 脚本来停止和启动 Windows Server 2008 机器上的 IIS 应用程序池。IIS 版本为 7.5
我在机器上拥有管理员权限,当我运行它时,脚本工作正常。但是,当我使用非管理员服务帐户触发相同的脚本时,它失败了。
触发器来自 CA Release Automation 工具,代理在具有服务帐户的计算机上配置。以下是我卡住的命令。
错误:
*****Get-WmiObject:提供程序加载失败在 C:\Users\SVC_DEV_APP\AppData\Local\Temp\tempz_891958570065876740601304.ps1:2 char:5
+ gwmi <<<< -Namespace root\webAdministration -class ApplicationPool
+ CategoryInfo : InvalidOperation: (:) [Get-WmiObject], ManagementException
+ FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand Get-WmiObject : C:\Users\SVC_DEV_APP\AppData\Local\Temp\tempz_891958570065876740601304.ps1 的提供程序加载失败: 2 char:5
+ gwmi <<<< -Namespace root\webAdministration -class ApplicationPool + CategoryInfo : InvalidOperation: (:) [Get-WmiObject], ManagementException
+ FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands。获取WmiObjectCommand*****
我尝试为其他 Windows 服务(Win32_Service)获取 WMI 对象,它工作正常。仅对于 IIS 对象,它会引发错误。
我已经按照某些论坛的建议,在命名空间(实际上是 Root 及其子命名空间)上提供了服务帐户、控制(执行方法、启用帐户、远程启用)。
我还将服务帐户添加为 IIS 管理器,但没有任何结果。
c# - 使用管理员对 root\MicrosoftIISV2 的 wmi 查询访问被拒绝
我正在执行 wmi 查询以检查 IIS 池是否正在运行。通过powershell,查询有效
通过 C#,我得到一个ManagementException
错误代码AccessDenied
两种情况下的用户都是机器管理员帐户。我希望通过设置正确的权限不需要这样做。
我还通过对root\cimv2
命名空间和Win32_Service
类进行查询来检查 Windows 服务的状态,并且它在两种方法中都能完美运行。
在我可以让任何方法工作之前,我必须禁用远程 UAC。
我的问题与权限/特权有关:
- 为什么管理员用户会出现 AccessDenied 异常?我该如何调试呢?
- 是否有必要禁用远程 UAC?
- 使用管理员帐户或管理员组中的用户是否不可避免?
powershell - 使用 Powershell 的 Windows Server 2012 中的 WMI BatteryStatus
当我们停电时,我正在编写一个 Powershell 脚本来进行一些服务器管理。目前该脚本正在使用 WMI Win32)Battery 类来查看 BatteryStatus 是 1(正在放电)还是 2(未知(在 A/C 上)),但我不确定这是最好的方法。有几种状态可能同时为真。
例如,电池可能正在放电 (1) 和部分充电 (11) 或在交流电 (2) 但临界 (5) 或正在充电 (6) 或部分充电 (11)。这对我来说没有意义。BatteryStatus 对于我的预期目的是否可靠?Windows 如何确定返回哪个状态?在我的测试中,除了状态 1 或 2,我没有看到任何其他内容。
Win32_Battery的文档表明可用性也可能表明我们正在使用电池。这是一个更好的方法吗,也许是 BatteryStatus 和 Availability 的结合?
在我寻找答案的过程中,我发现了一个看起来很完美的答案,它使用了 root\wmi 命名空间中未记录的 BatteryStatus 类中的“PowerOnline”。这在我的笔记本电脑上效果很好,但在尝试从我们的 Windows 2012 服务器访问它时出现以下错误:
这个类在服务器上不可用吗?
那么使用 WMI,了解我是使用 UPS 电池还是交流电源的最可靠方法是什么?
powershell - 如何使用 Get-WmiObject 过滤进程“命令行”
有没有办法-Filter
使用 WMI 查询语言 (WQL) 指定 Get-WmiObject cmdlet 的参数,以根据用于调用进程的“命令行”进行过滤?“命令行”是指 Windows 任务管理器的“进程”选项卡中显示的“命令行”。
我想获取一个进程 ID 数组,其中命令行包含字符串*Dev_SW*
。我不能使用名称,因为会有许多进程以不等于*Dev_SW*
过滤器的相同名称运行。
powershell - Get-WmiObject 在 foreach 循环中无法正常运行
我目前正在尝试编写一个脚本,该脚本获取加入我们域的计算机列表,一次遍历它们以检查它们是否存在于我创建的 Access DB 中,对它们运行 WMI 查询以收集它们的系统信息,并且如果它们还没有在数据库中,则将该数据添加到数据库中。我可以在大多数计算机(大约一半)上成功执行此操作,但其中一些说找不到 RPC 服务器。
我知道其中一些错误是由于计算机处于脱机状态(防火墙已禁用且 WMI 查询已启用)。问题是一些计算机在线,当我Get-WmiObject
在脚本中对它们运行命令时,我得到了 RPC 服务器错误,但是当我在脚本之外单独运行命令时,我能够成功查询信息。我已经发布了导致奇怪行为的函数,并希望有更多编程知识的人能找到我犯的菜鸟错误。
第二个问题是,在第一次迭代之后,我得到下面的错误说空白CompName
字段?前两次迭代按预期工作,然后它只是抛出一堆这些错误,“计算机之后已经存在”。
powershell - 代码中无法识别 Get-WmiObject
将 Get-WmiObject 添加到我用来远程推送软件的某些代码中时出现错误。我希望代码在继续之前检查当前安装了哪些应用程序,但是当我运行它时,出现错误:
Get-WmiObject: 术语“Get-WmiObject”不被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。在 C:\code\getwmiobj.ps1:1 char:1 + Get-WmiObject -Class "win32_Product" -ComputerName "$computer" | ... + ~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Get-WmiObjectÂ:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
这是我的代码:
powershell - 如何使用 Get-WmiObject 修复此 Powershell 脚本?
我有这段代码从域中的计算机获取信息并输出到 csv 文件。我试图添加一行新代码来获取计算机的磁盘信息,但我无法使其按预期工作。
这是磁盘的代码行。
和...
其他参数有效,但只有磁盘信息部分无效。输出是:System.Object[]
而不是显示 info 。