Введите, не найденный в сеансе PowerShell: «Microsoft.Windows.Appx.PackageManager.Команды.AppxPackage»

#powershell #types

#powershell #типы

Вопрос:

Ниже приведен пример переменной, которая после ввода в ядро PowerShell сообщает, что тип не был найден:

 [Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage] $test = $null
  

Недопустимая операция: не удается найти тип
[Microsoft.Windows.Appx.PackageManager.Команды.AppxPackage].

Однако, как только вы запустите следующий код:

 Get-AppxPackage -PackageTypeFilter Main
  

Тогда предыдущее объявление переменной будет в порядке (без ошибок):

 [Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage] $test = $null
  

Как мне заставить этот тип распознаваться сеансом PowerShell без запуска Get-AppxPackage ?

Я пробовал с using namespace Microsoft.Windows и несколькими другими пространствами имен, но это не работает.

Данные среды:

 $PSVersionTable 

Name                           Value
----                           -----
PSVersion                      7.0.3
PSEdition                      Core
GitCommitId                    7.0.3
OS                             Microsoft Windows 10.0.19041
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
  

Ответ №1:

Я понял, в верхней части вашего скрипта добавьте эту строку:

 Add-Type -AssemblyName Microsoft.Windows.Appx.PackageManager.Commands
  

Теперь мы можем использовать все типы из этой сборки:

 [Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage] $test = $null
  

Ошибки нет.

Ссылка