PS C:\> Get-PSSubsystem
вызывает ошибку
Get-PSSubsystem: The term 'Get-PSSubsystem' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Согласно документации , Get-PSSubsystem
является частью модуля Microsoft.PowerShell.Core
, и указанный модуль нельзя установить?
Оснастка Microsoft.PowerShell.Core содержит командлеты и поставщики, которые управляют основными функциями PowerShell. PowerShell автоматически загружает оснастку Microsoft.PowerShell.Core при запуске. Это не модуль. Вы не можете импортировать его с помощью Import-Module или удалить с помощью Remove-Module.
Сделал Get-Module Microsoft.PowerShell.Core -ListAvailable
и ничего не вышло.
Попробовал другую команду Microsoft.PowerShell.Core
(Add-History
) и не получил ошибки.
Вывод Get-Help Subsystem | Select Name
Name
----
New-StorageSubsystemVirtualDisk
Set-StorageSubSystem
Debug-StorageSubSystem
Unregister-StorageSubsystem
Register-StorageSubsystem
Get-StorageSubSystem
`Get-Команда | sls Subsystem» вывел тот же список (но в другом порядке).
Если это актуально, вот результат $PSVersionTable
Name Value
---- -----
PSVersion 7.4.5
PSEdition Core
GitCommitId 7.4.5
OS Microsoft Windows 10.0.22631
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
Возможно, у вас нет пакета «System.Management.Automation».
И вам следует его установить. По этому поводу есть еще одна тема:
https://stackoverflow.com/questions/1186270/referencing-system-management-automation-dll-in-visual-studio
Когда у вас будет этот пакет, вы сможете импортировать сам модуль или dll, если вам нужен только его класс. C:\windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll
это экспериментальный командлет:
❗ Обратите внимание
Это экспериментальная функция. Этот командлет доступен только в том случае, если включена функция PSSubsystemPluginModel. Дополнительную информацию см. в разделе Использование экспериментальных функций.
Это означает, что Get-PSSubsystem
(пока) недоступен в текущей версии PowerShell 7.4.5
, но он доступен в версии PowerShell.Preview 7.5.0.4
.
Вы можете установить эту предварительную версию с помощью команды:
winget install --id Microsoft.Powershell.Preview --source winget
И как только вы его установите, вы сможете использовать эту предварительную версию, например. Windows
- Start
или запустив его из командной строки:
"C:\Program Files\PowerShell\7-preview\pwsh.exe" -WorkingDirectory ~
PowerShell 7.5.0-preview.4
$PSVersionTable
Name Value
---- -----
PSVersion 7.5.0-preview.4
PSEdition Core
GitCommitId 7.5.0-preview.4
OS Microsoft Windows 10.0.19045
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
PS C:\> Get-PSSubsystem -?
NAME
Get-PSSubsystem
SYNTAX
Get-PSSubsystem [<CommonParameters>]
Get-PSSubsystem -Kind {CommandPredictor | CrossPlatformDsc | FeedbackProvider} [<CommonParameters>]
Get-PSSubsystem -SubsystemType <type> [<CommonParameters>]
...
⚠️ Внимание
Экспериментальные функции не предназначены для использования в рабочей среде, поскольку изменения могут быть критическими. Экспериментальные функции официально не поддерживаются. Тем не менее, мы ценим любые отзывы и сообщения об ошибках. Вы можете сообщать о проблемах в исходном репозитории GitHub.
Спасибо! Я ценю помощь! Я совершенно пропустил Note
в документе Get-PSSubsystem
.
К вашему сведению: для этого также создан выпуск документа: #11374. Запишите экспериментальные командлеты