2016-05-14 18 views
2

使用Azure自動化開發PowerShell腳本可能會非常緩慢。這可以通過使用PowerShell ISE插件來幫助您測試在本地運行腳本。檢測腳本是否在Azure自動化中運行的正確方法是什麼?

但是,不可避免地,當在Azure自動化中運行事件時,有些事情在本地運行時會有所不同。例如文件路徑。

檢測腳本當前運行環境的正確方法是什麼?

目前我定義了一個變量資產,我只保留本地並且不上傳。然後我可以這樣做:

# Check if we are running locally - NOTE: Do not upload the runningLocally variable! Keep it local only 
if (Get-AutomationVariable -Name 'runningLocally') { 
    # We are running locally 
} else { 
    # We are running in Azure Automation 
} 

但是,這似乎很笨重,容易出錯。我正在尋找更強大和更可靠的方法。

我發現了一些額外的方法。在AA中運行的機器和用戶名都是「客戶端」,這似乎是一個更強大的方法?

+0

只要想到另一種方法。在AA中運行時,臨時文件夾是'c:\ temp' –

回答

2

可以爲此使用用戶名/計算機名,你已經發現了,或者你可以檢查一個運行手冊作業id的存在:

if($PSPrivateMetadata.JobId) { 
    # in Azure Automation 
} 
else { 
    # not in Azure Automation 
} 
1

不確定是否有「正確的方法」,但如果要檢查是否在Powershell ISE中運行腳本,則可以檢查是否存在$psISE-變量。

#same as if($psISE -ne $null) {... 
if($psISE) { 
    #In PowerShell ISE 
} else { 
    #PowerShell console or Azure Automation 
} 
+0

啊,好的,反過來 - 我明白了。 –

相關問題