2011-06-30 13 views
5

Tengo un script para obtener información de disco virtual de vmm, lo estoy ejecutando de forma remota desde un servidor, actualmente no puedo obtener el valor de variable fuera de la sesión en el host local, podría por favor ayúdame a lograr lo mismo.Cómo obtener un resultado de variable desde pssession remoto

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 

como se puede ver tanto en dar valor nulo de la salida variable, im incapaz de retener los valores

Respuesta

10

este ejemplo se obtiene la lista de la unidad C del equipo remoto y lo asigna a una variable local. Así que ajuste su secuencia de comandos VMM en consecuencia.

$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

La clave aquí es que Enter-PSSession es una sesión interactiva sin conexión a su sesión local. Por lo tanto, debe usar Invoke-Command en lugar de ingresar a la sesión remota. – JasonMArcher

+0

gracias @jasonmarcher – PowerShell

Cuestiones relacionadas