about_Remote_Variables
Aggiornamento: maggio 2014
Si applica a: Windows PowerShell 4.0, Windows PowerShell 5.0
ARGOMENTO
about_Remote_Variables
DESCRIZIONE BREVE
Illustra come usare le variabili locali e remote nei comandi remoti.
DESCRIZIONE LUNGA
È possibile usare le variabili nei comandi eseguiti in computer remoti. È sufficiente assegnare un valore alla variabile e usare tale variabile al posto del valore.
Per impostazione predefinita, le variabili dei comandi remoti dovrebbero essere definite nella sessione in cui viene eseguito il comando. È possibile usare le variabili definite nella sessione locale, ma è necessario identificarle come variabili locali nel comando.
USO DELLE VARIABILI REMOTE
Windows PowerShell® presuppone che le variabili usate nei comandi remoti vengano definite nella sessione in cui viene eseguito il comando.
Nell'esempio seguente, la variabile $ps viene definita nella sessione temporanea nella quale viene eseguito il comando Get-WinEvent.
PS C:\>Invoke-Command -ComputerName S1 -ScriptBlock {$ps = "Windows PowerShell"; Get-WinEvent -LogName $ps}
In modo analogo, quando il comando viene eseguito in una sessione permanente (PSSession), la variabile remota deve essere definita nella stessa sessione PSSession.
PS C:\>$s = New-PSSession -ComputerName S1
PS C:\>Invoke-Command -ComputerName S1 -ScriptBlock {$ps = "Windows PowerShell"}
PS C:\>Invoke-Command -Sessions $s -ScriptBlock {Get-WinEvent -LogName $ps}
USO DI VARIABILI LOCALI
È possibile usare le variabili locali in comandi remoti, ma è necessario indicare che la variabile è definita nella sessione locale.
A partire da Windows PowerShell 3.0, è possibile usare il modificatore di ambito Using per identificare una variabile locale in un comando remoto.
La sintassi di Using è la seguente:
The syntax is:
$Using:<VariableName>
Nell'esempio seguente, la variabile $ps viene creata nella sessione locale, ma viene usata nella sessione in cui viene eseguito il comando. Il modificatore di ambito Using identifica $ps come variabile locale. Inserire il corpo della sezione qui.
PS C:\>$ps = "Windows PowerShell"
PS C:\>Invoke-Command -ComputerName S1 -ScriptBlock {Get-WinEvent -LogName $Using:ps}
È anche possibile usare il modificatore di ambito Using in Pssession.
PS C:\>$s = New-PSSession -ComputerName S1
PS C:\>$ps = "Windows PowerShell"
PS C:\>Invoke-Command -Sessions $s -ScriptBlock {Get-WinEvent -LogName $Using:ps}
USO DI VARIABILI LOCALI IN WINDOWS POWERSHELL 2.0
È possibile usare le variabili locali in un comando remoto definendo i parametri relativi al comando remoto e usando il parametro ArgumentList o il cmdlet Invoke-Command per specificare la variabile locale come valore del parametro.
Il formato del comando è valido in Windows PowerShell 2.0 e nelle versioni successive di Windows PowerShell.
-- Usare la parola chiave param per definire i parametri del comando remoto. I nomi dei parametri sono segnaposti che non devono corrispondere al nome della variabile locale.
-- Usare i parametri definiti dalla parola chiave param nel comando.
-- Usare il parametro ArgumentList del cmdlet Invoke-Command per specificare la variabile locale come valore del parametro.
Ad esempio, i comandi seguenti definiscono la variabile $ps nella sessione locale e la usano in un comando remoto. Il comando usa $log come nome del parametro e la variabile locale $ps come valore.
C:\PS>$ps = "Windows PowerShell"
C:\PS>Invoke-Command -ComputerName S1 -ScriptBlock {param($log) Get-WinEvent -logname $log} -ArgumentList $ps
PAROLE CHIAVE
about_Using
VEDERE ANCHE
about_Remote
about_PSSessions
about_Scopes
Enter-PSSession
Invoke-Command
New-PSSession