我可以使用Get-AppvClientPackage -all
[| select name
]或Get-WmiObject -Namespace root\appv -Class AppvClientPackage
[|select name
]列出我自己的计算机上安装的所有已安装的AppV软件包。在没有远程执行的情况下,似乎无法使用此cmdlet来获取安装在另一台计算机上的AppV软件包。
我正在问这个问题,希望找到有用的东西(见目的)或得到一个不可能的明确答案。可能有更好的选择(PS除外),但我的问题很简单,如果有可能,那么如果是后者,我们可以推动开发一个脚本(可以由具有提升权限的人运行) )收集所需的信息。
目的:我们的团队无法了解SCCM(另一个选择是让团队报告安装的位置,尽管有时我们需要快速回答)并且远程PS执行仅限于一个安全团队(这是可以理解的),但有时(为了支持或退役),我们需要检查特定客户端计算机是否安装了软件包,检查特定客户端安装了哪些AppV软件包,以及检查看看哪些机器安装了特定的包。
如果有其他模块或cmdlet(甚至是powershell或WMI以外的其他模块)可能会产生相同的信息,欢迎提出建议。
答案 0 :(得分:1)
Get-WmiObject
利用RPC
连接到远程PC,不需要PSRemoting
。在这项工作中,您需要做的就是添加-ComputerName
参数。
#Requires -Version 3
$Target = 'localhost'
$Params=@{
Namespace = 'root\appv'
Class = 'AppvClientPackage'
Property = 'Name'
ComputerName = $Target
}
Get-WmiObject @Params
PS C:\> Get-Help -Name 'Get-WmiObject' -Parameter 'ComputerName'
-ComputerName <String[]>
Specifies the target computer for the management operation. Enter a fully
qualified domain name (FQDN), a NetBIOS name, or an IP address. When the remote
computer is in a different domain than the local computer, the fully qualified
domain name is required.
The default is the local computer. To specify the local computer, such as in a
list of computer names, use "localhost", the local computer name, or a dot (.).
This parameter does not rely on Windows PowerShell remoting, which uses
WS-Management. You can use the ComputerName parameter of Get-WmiObject even if
your computer is not configured to run WS-Management remote commands.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false