可以使用 PowerShell 的 Get-AppvClientPackage 在我自己以外的机器上列出 AppV 包吗?

Possible to use PowerShell's Get-AppvClientPackage to list AppV packages on a machine other than my own?

我可以使用 Get-AppvClientPackage -all [| select name] 或 Get-WmiObject -Namespace root\appv -Class AppvClientPackage [|select name] 来列出我自己机器上安装的所有已安装的 AppV 包。在没有远程执行的情况下,似乎无法使用此 cmdlet 将 AppV 包安装在另一台机器上。

我问这个问题是希望找到有用的东西(见目的)或得到一个明确的答案,这是不可能的。可能有更好的选择(除了 PS),但我的问题只是是否可能,如果是后者,我们可以推动开发脚本(可能是 运行 由具有更高权限的人)收集所需信息。

目的:我们的团队无法了解 SCCM(另一种选择是让该团队报告安装的位置,尽管有时我们需要快速回答)并且远程 PS 执行仅限于一个安全团队(这是可以理解的),但有时(出于支持或退役目的)我们需要检查特定客户端计算机是否安装了软件包,检查特定客户端安装了哪些 AppV 软件包,以及检查查看哪些机器安装了特定的软件包。

如果有其他模块或 cmdlet(甚至除 powershell 或 WMI 以外的东西)可能能够产生相同的信息,欢迎提出建议。

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