У меня есть сценарий PowerShell, который должен запускаться на нескольких хостах (PowerGUI, PowerShell ISE и т. Д.), Но у меня возникает проблема, когда иногда командлет не существует под одним из хозяева. Есть ли способ проверить, существует ли командлет, чтобы я мог обернуть код в блок if и сделать что-то еще, когда он не существует?
Я знаю, что мог бы использовать $host.name
для разделения кода, который предполагается запустить на каждом хосте, но я бы предпочел использовать Обнаружение функций вместо этого в случае, если командлет когда-нибудь будет добавлен в будущем .
Я также мог бы использовать блок try / catch, но, поскольку он выполняется в управляемом коде, я предполагаю, что есть возможность определить, установлен ли командлет через код.