- 08/21/2020
- 3 minuti per leggere
-
- j
- D
- c
È possibile eseguire comandi su una o centinaia di computer con un unico comando di PowerShell. WindowsPowerShell supporta il calcolo remoto utilizzando varie tecnologie, tra cui WMI, RPC, ANDWS-Management.
PowerShell Core supporta WMI, WS-Management e SSH remoting., In PowerShell 6, RPC non è piùsupportato. In PowerShell 7 e versioni successive, RPC è supportato solo in Windows.
Per maggiori informazioni sui servizi remoti in PowerShell Core, vedere i seguenti articoli:
- SSH Remoting in PowerShell Core
- WSMan Remoting in PowerShell Core
di Windows PowerShell Senza di Configurazione
Molti i cmdlet di Windows PowerShell sono Nomecomputer parametro che consente di raccogliere dati andchange impostazioni su uno o più computer remoti., Questi cmdlet utilizzano diversi protocolli di comunicazionee funziona su tutti i sistemi operativi Windows senza alcuna configurazione speciale.
Questi cmdlet includono:
- Riavviare il Computer
- Test Connessione
- Cancella-EventLog
- Get-EventLog
- Get-aggiornamento rapido (HotFix)
- Get-Process
- Get-Service
- Set-Service
- cmdlet Get-WinEvent
- Get-WmiObject
in Genere, cmdlet che supportano i servizi remoti senza alcuna configurazione speciale hanno il ComputerNameparameter e non hanno il parametro di Sessione., Per trovare questi cmdlet nella sessione, digitare:
Get-Command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}
Windows PowerShell Remoting
Utilizzando il protocollo WS-Management, Windows PowerShell remoting consente di eseguire qualsiasi comando Windows PowerShell su uno o più computer remoti. È possibile stabilire connessioni persistenti, avviare interactivesessions ed eseguire script su computer remoti.
Per utilizzare Windows PowerShell remote, il computer remoto deve essere configurato per la gestione remota.Per ulteriori informazioni, incluse le istruzioni, vedere Informazioni sui requisiti remoti.,
Una volta configurato Windows PowerShell remoting, sono disponibili molte strategie di remoting.Questo articolo ne elenca solo alcuni. Per ulteriori informazioni, vedere Informazioni su Remoto.
Avvia una sessione interattiva
Per avviare una sessione interattiva con un singolo computer remoto, utilizzare Enter-PSSessioncmdlet. Ad esempio, per avviare una sessione interattiva con il computer remoto Server01, digitare:
Enter-PSSession Server01
Il prompt dei comandi cambia per visualizzare il nome del computer remoto., Qualsiasi comando digitato ail prompt viene eseguito sul computer remoto e i risultati vengono visualizzati sul computer locale.
Per terminare la sessione interattiva, tipo:
Exit-PSSession
Per ulteriori informazioni sull’Invio-PSSession e di Uscita-PSSession cmdlet, vedere:
- Invio-PSSession
- Uscita-PSSession
Eseguire un Comando Remoto
eseguire un comando su uno o più computer, utilizzare il cmdlet Invoke-Commandcmdlet., Ad esempio, per eseguire un comando Get-UICulturecommand sui computer remoti Server01 e Server02, digitare:
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}
L’output viene restituito al computer.
Eseguire uno script
Per eseguire uno script su uno o più computer remoti, utilizzare il parametro FilePath del cmdletInvoke-Command
. Lo script deve essere attivo o accessibile al computer locale. I risultati vengono restituiti al tuocomputer locale.
Ad esempio, il seguente comando esegue lo script DiskCollect.ps1 sui computer remoti, Server01 e Server02.,
Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\DiskCollect.ps1
Stabilire una connessione persistente
Utilizzare il cmdlet New-PSSession
per creare una sessione persistente su un computer remoto. Il seguente esempio crea sessioni remote su Server01 e Server02. Gli oggetti di sessione sono memorizzati nella variabile$s
.
$s = New-PSSession -ComputerName Server01, Server02
Ora che le sessioni sono stabilite, è possibile eseguire qualsiasi comando in esse. E poiché le sessioni arepersistent, è possibile raccogliere dati da un comando e utilizzarlo in un altro comando.,
Ad esempio, il seguente comando esegue un comando Get-HotFix nelle sessioni nella variabile an s e salva i risultati nella variabile h h. La variabile h h viene creata in ciascuna delle sessioni in s s, ma non esiste nella sessione locale.
Invoke-Command -Session $s {$h = Get-HotFix}
Ora è possibile utilizzare i dati nella variabile$h
con altri comandi nella stessa sessione. I risultatisono visualizzati sul computer locale. Ad esempio:
Invoke-Command -Session $s {$h | where {$_.InstalledBy -ne "NTAUTHORITY\SYSTEM"}}
Remoting avanzato
La gestione remota di Windows PowerShell inizia qui., Utilizzando i cmdlet installati con WindowsPowerShell, è possibile stabilire e configurare sessioni remote sia dall’estremità locale che remota,creare sessioni personalizzate e limitate, consentire agli utenti di importare comandi da una sessione remota che vengono effettivamente eseguiti implicitamente sulla sessione remota, configurare la sicurezza di una sessione remota e muchmore.
Windows PowerShell include un provider WSMan. Il provider crea un’unitàWSMAN:
che consente a younavigate attraverso una gerarchia di impostazioni di configurazione sul computer locale e sui computer remoti.,
Per ulteriori informazioni sul provider WSMan, sul provider seeWSMan e sui Cmdlet WS-Management o nella console di Windows PowerShell,digitare Get-Help wsman
.
Per ulteriori informazioni, vedere:
- Informazioni sulle FAQ remote
- Register-PSSessionConfiguration
- Import-PSSession
Per informazioni sugli errori di remoting, vedere about_Remote_Troubleshooting.,
Vedi Anche
- about_Remote
- about_Remote_FAQ
- about_Remote_Requirements
- about_Remote_Troubleshooting
- about_PSSessions
- about_WS-Management_Cmdlets
- Richiamare il Comando
- Importa-PSSession
- Nuovo-PSSession
- Registro-PSSessionConfiguration
- WSMan Provider