可以使用 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
我可以使用 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