#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
Ошибки нет.