Как проверить, существует ли командлет в PowerShell во время выполнения с помощью сценария

У меня есть сценарий PowerShell, который нужно запускать на нескольких хостах (PowerGUI, PowerShell ISE и т. Д.), Но у меня возникает проблема, когда иногда командлет не выполняет не существует ни под одним из хостов. Есть ли способ проверить, существует ли командлет, чтобы я мог обернуть код в блок if и сделать что-нибудь еще, когда он не существует?

Я знаю, что могу использовать $ host.name , чтобы разделить код, который предполагается запускать на каждом хосте, но я бы предпочел использовать Feature Detection вместо этого на тот случай, если командлет когда-либо будет добавлен в будущем.

Я также мог бы попробовать / catch, но поскольку он работает в управляемом коде, я предполагаю, что нет возможности определить, установлен ли командлет с помощью кода.

50
задан Peter Mortensen 24 September 2015 в 11:05
поделиться