Powershell 7 SDK PSCmdlet - разница между GetCmdlet и GetCommand

В моем первом командлете Powershell на основе C # я столкнулся с проблемой запуска «существующих» командлетов из моего пользовательского командлета. Попутно обнаружил следующее:

      InvokeCommand.GetCmdlet("Compress-7Zip") 

а также

      InvokeCommand.GetCommand("Compress-7Zip")  
  1. Изменить Первый возвращает объект CmdletInfo, второй объект CommandInfo
  2. GetCmdlet имеет описание «Возвращает объект CmdletInfo, соответствующий аргументу имени».
  3. GetCommand не имеет описания, но поискав в Интернете, я нашел следующее на сайте Mirosoft: «Действие по вызову команды Microsoft.PowerShell.Core\Get-Command в рабочем процессе»

Почему существуют эти два метода и какие мы используем для чего?

1 ответ

Get-Cmdlet — возвращает объект CmdletInfo, соответствующий аргументу «Имя» .

Get-Command — получает все команды, которые «установлены» на компьютере, включая командлеты, псевдонимы, функции, фильтры, сценарии и приложения.

Get-командлет

https://docs.microsoft.com/en-us/dotnet/api/system.management.automation.commandinvocationintrinsics.getcmdlet?view=powershellsdk-7.0.0

Get-команда https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/get-command?view=powershell-7.2

Другие вопросы по тегам