繁体   English   中英

PowerShell 命令在 AD 组上的所有 PC 上定位软件

[英]PowerShell command to locate software on all PC's on AD group

我们已经切换到新的病毒防护,我正在尝试追踪所有装有我们旧迈克菲软件的机器。 我们在一个域组中,所有 PC 都列在活动目录中。

$list = Get-ADComputer -Filter *

foreach($PC in $list){
    $data = Get-WmiObject -ComputerName $PC -Class Win32_Product | sort-object Name | 
    Select-Object Name | Where-Object { $_.Name -like "*McAfee*"}
    if($data){
        Write-Output "$PC has $($data.name) installed" |
        out-file C:\Users\username\Desktop -Append
    }
}

我对 powershell 有点业余。

我一遍又一遍地收到这个错误

Get-WmiObject : The RPC server is unavailable.
At line:4 char:13
+     $data = Get-WmiObject -ComputerName $PC -Class Win32_Product | so ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Get-WmiObject], COMException
    + FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

我读过它可能是组策略中的防火墙设置。 在我尝试改变之前,这是最有效的方法吗? 为简单起见,我避免使用计算机名称列表,但如有必要,我可以这样做。

你是对的,有一个防火墙设置阻止了 Powershell 远程访问。 在很多地方,这似乎是一个非常常见的安全设置,因为将其全部关闭比尝试将其调整为仅允许特定人员使用更容易。

如果您无权访问 SCCM 或任何其他库存/配置管理软件,如 AdminOfThings 评论,那么这是获取您正在寻找的信息的合理方式。 我使用类似的方法来跟踪我们某些计算机上的 RAM 和 CPU 使用情况,但我必须使用 codaamok 发布的链接中的代码修改每台计算机。 这是一个选择加入的程序,因此该方法对我有用。

这可能取决于您的组策略管理员想要如何处理它,如果他们想要允许这种远程访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM