Welcome to Our Website

Esecuzione di Comandi Remoti

  • 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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *