2011-06-30 16 views
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 

के रूप में आप दोनों चर उत्पादन के दे शून्य मान, im मूल्यों

उत्तर

10

यह उदाहरण दूरस्थ कंप्यूटर के सी ड्राइव से सूची हो जाता है और एक स्थानीय चर में प्रदान करती है पास रखने में असमर्थ देख सकते हैं। तो तदनुसार अपनी वीएमएम स्क्रिप्ट को ट्यून करें।

$session = New-PSSession -ComputerName RemoteSystem 
Invoke-Command -Session $session -ScriptBlock { $remoteC = gci c:\ } 
# This shouldn't print anything. 
$localC 
# Print the result on remote computer an assing its output to localC variable 
$localC = Invoke-Command -Session $session -ScriptBlock { $remoteC } 
# Print the local variable, it should contain remoteC data. 
$localC 
+4

यहां महत्वपूर्ण यह है कि दर्ज-PSSession अपने स्थानीय सत्र से कोई संबंध नहीं एक इंटरैक्टिव सत्र है। तो आपको दूरस्थ सत्र में प्रवेश करने के बजाय Invoke-Command का उपयोग करना चाहिए। – JasonMArcher

+0

धन्यवाद @ जेसनमारर – PowerShell