我有一個PowerShell腳本,需要在多臺主機(PowerGUI的,PowerShell ISE,等...)運行中存在cmdlet的,但我有一個問題,有時一個小命令沒有按其中一位主持人不存在。有沒有辦法檢查cmdlet是否存在,以便我可以將代碼包裝在if塊中,並在不存在時執行其他操作?如何檢查是否在PowerShell中運行時通過腳本
我知道我可以使用$host.name
來區分假設在每個主機上運行的代碼,但我寧願使用Feature Detection,以防將來添加該cmdlet。
我也可以用try/catch塊,但由於它在託管代碼運行我假設有路程,如果通過代碼安裝cmdlet來檢測。
不知道有一個errorAction參數。在這裏找到所有常用參數的列表:http://msdn.microsoft.com/en-us/library/dd901844(VS.85).aspx這是很好的知道。謝謝! – 2010-10-13 01:39:48
注意:您也可以使用if(get-module | Where-Object {$ _。Name -eq「ServerManager」}){{「Module Exists」}}來檢查模塊。更多詳細信息:http://stackoverflow.com/questions/10027156/how-to-import-system-modules-automatically – 2012-05-30 18:12:25
cmdlet可能存在,但不可用。很好的例子:Windows 2003上存在Get-WinEvent,但它引發NotImplemented異常。你將如何處理這種情況? – Neolisk 2012-09-17 18:24:52