I have a PowerShell script that needs to run under multiple hosts (PowerGUI, PowerShell ISE, etc…), but I am having an issue where sometimes a cmdlet doesn’t exist under one of the hosts. Is there a way to check to see if a cmdlet exists so that I can wrap the code in an if block and do something else when it does not exist?
I know I could use the $host.name to section the code that is suppose to run on each host, but I would prefer to use Feature Detection instead in case the cmdlet ever gets added in the future.
I also could use a try/catch block, but since it runs in managed code I assume there is away to detect if a cmdlet is installed via code.
Use the
Get-Commandcmdlet to test for the existence of a cmdlet:And if you want to ensure it is a cmdlet (and not an exe or function or script) use the
-CommandTypeparameter e.g-CommandType Cmdlet