5
我有一個腳本可以從vmm獲取虛擬硬盤信息,即時從服務器遠程執行,目前我無法獲取本地主機pssession之外的變量值,可以你請幫助我實現這一目標。如何從遠程pssession獲取變量輸出
PS C:\Windows\system32> enter-pssession iscvmm02
[iscvmm02]: PS C:\Users\su\Documents>Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager
[iscvmm02]: PS C:\Users\su\Documents>$hide= Get-VMMServer -ComputerName "iscvmm02.corp.avanade.org"
[iscvmm02]: PS C:\Users\su\Documents>$VM = Get-VM | where { $_.ComputerNameString -contains "idpsm02.corp.air.org" }
[iscvmm02]: PS C:\Users\su\Documents>$harddisk=$VM.VirtualHardDisks
[iscvmm02]: PS C:\Users\su\Documents>$h=$harddisk.length
[iscvmm02]: PS C:\Users\su\Documents>for($i=0;$i-lt$h;$i++){
New-Variable -Name "HardDiskType_$i" -value $harddisk[$i].vhdtype
New-Variable -Name "HardDiskLocation_$i" -value $harddisk[$i].Location
}
[iadpscvmm02]: PS C:\Users\su\Documents>Exit-PSSession
PS C:\Windows\system32>$harddisktype_0
PS C:\Windows\system32>$harddisklocation_0
,你可以看到這兩個變量輸出我們給空值,即時通訊留不住值
這裏的關鍵在於Enter-PSSession是一個沒有連接到本地會話的交互式會話。所以你應該使用Invoke-Command而不是進入遠程會話。 – JasonMArcher
謝謝@jasonmarcher – PowerShell