2016-04-28 81 views
-1

例如,對於像Set-AzureVMCustomScriptExtensiondocument)這樣的默認/內置命令,如何在命令不起作用時找到真正發生的事情?

在我的情況下,執行此命令後沒有發佈任何錯誤,但它不起作用:我想在命令
Set-AzureVMCustomScriptExtension -Run $ScriptA(其他參數都正確設置)中運行腳本,如ScriptA
ScriptA根本沒有運行。如何確切知道PowerShell(PS)命令真的做了什麼

+0

請編輯您的問題以包含您正在使用的實際代碼以及它正在接收的任何輸入。請求我們解釋當我們無法看到您的代碼時,您的代碼無法正常工作的原因是NOP。 –

回答

1
  1. 這是一個用於Azure模塊的cmdlet,不是內置的「默認」cmdlet。
  2. 閱讀錯誤消息。當一個cmdlet失敗時,它會返回一個解釋發生了什麼問題的對象ErrorRecord,例如。 「拒絕訪問」。如果您想知道當時用於參數的值,則必須在腳本中使用前綴輸出它們。 Write-VerboseWrite-Debug或使用PowerShell ISE運行帶有一些斷點的腳本,以便在拋出錯誤時觀察變量。
+0

感謝您的更正。在我的情況下,執行後沒有發佈錯誤。但'ScriptA'根本不運行。請參閱我的編輯帖子以獲取更多參考。 – Leon

+0

您需要使用完整的命令和樣本值更新問題。我不知道'$ scriptA'包含了什麼。使用'-verbose'和'-debug'來查看它是否輸出任何內容 –

0

嘗試執行該cmdlet,如下面VerboseDebug開關,查看幕後發生的事情與小命令:

Set-AzureVMCustomScriptExtension -Run $ScriptA -Verbose -Debug 

如果它運行正常,那麼你將不得不從Azure的排查腳本VM。然後,該錯誤與此cmdlet無關。檢查腳本是否被設置爲虛擬機的自定義腳本擴展。檢查腳本是否存在邏輯中的任何錯誤。