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

时间:2017-11-01 14:56:30

标签: powershell powershell-v3.0 appv

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

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

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

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

1 个答案:

答案 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