我有一個VM維護腳本,我正在處理,並且正在嘗試將輸出捕獲到日誌中。我希望隨着腳本的進展收集虛擬機的狀態,所以我可以使用我的定時循環進行一些微調以進行檢查/操作。多個PowerShell變量在輸出行中出現空白
我的問題是我的代碼如下。寫入輸出行中的第一個和第二個VM狀態變量在我的輸出中始終顯示爲空白,但在分開放置時會很好地工作。
$Server_1_1D = Get-VMGuest -VM 1st-VM
$Server_2_1D = Get-VMGuest -VM 2nd-VM
$Server_3_1D = Get-VMGuest -VM 3rd-VM
$Server_1_1D_Name = $Server_1_1D.VmName
$Server_2_1D_Name = $Server_2_1D.VmName
$Server_3_1D_Name = $Server_3_1D.VmName
$Server1_1D_Status = $Server_1_1D.State
$Server2_1D_Status = $Server_2_1D.State
$Server3_1D_Status = $Server_3_1D.State
$Server1_1D_Status
$Server2_1D_Status
$Server3_1D_Status
Write-Output "Initial check: $Server_1_1D_Name was $Server_1_1D_Status, $Server_2_1D_Name was $Server_2_1D_Status, and $Server_3_1D_Name was $Server3_1D_Status."
$Server1_1D_Status
$Server2_1D_Status
上述代碼的輸出。在Write-Output行中,1st-VM和2nd-VM都缺少它們的狀態變量,但是第3個VM始終顯示出來,無論它們放置在寫入輸出行中的位置和數量如何:
PS C:\> C:\Scripted_Tasks\Issue.ps1
Running
Running
Running
Initial check: 1st-VM was , 2nd-VM was , and 3rd-VM was Running
Running
Running
任何幫助或方向是非常感謝。
更新2016年12月1日:什麼工作
擺脫了我的變量名,並開始了沒有下劃線。在Write-Output上得到朋友的一些幫助,以及如何使用括號來調用不同的屬性。更乾淨。
感謝您的回覆。
$Server1 = Get-VMGuest -VM 「Server1」
$Server2 = Get-VMGuest -VM 「Server2」
$Server3 = Get-VMGuest –VM 「Server3」
Write-Output "Initial check: $($Server1.VmName) was $($Server1.State), $($Server2.VmName) was $($Server2.State), and $($Server3.VmName) was $($Server3.State)."
PowerShell的輸出現在是:
Initial check: Server1 was Running, Server2 was Running, and Server3 was Running.
'$ server1_'在你的字符串中的變量名和'$ server_1_'中。 – TessellatingHeckler