Come eseguire comandi powershell in computer remoti?

Powershell è uno strumento molto potente che permette di interagire a livelli molto profondi del sistema, per questo eseguire comandi powershell in computer remoti può essere sicuramente molto utile soprattutto per chi opera spesso con terminali remoti anche virtuali.

Vediamo come abilitare l’esecuzione di comandi powershell in computer remoti, oltre a capire se l’esecuzione è possibile in dominio o in workgroup, prima diamo una definizione a che cos’è Powershell.

Cos’è Powershell e cosa permette di fare

  • Esecuzione di script: PowerShell consente di creare e di eseguire script per automatizzare una varietà di compiti, dalla configurazione di sistemi alla gestione di applicazioni.
  • Accesso all’interfaccia di riga di comando (CLI): PowerShell fornisce un’interfaccia di riga di comando flessibile per interagire con il sistema operativo e con le applicazioni.
  • Gestione di oggetti: PowerShell è basato su oggetti, il che significa che gli utenti possono manipolare oggetti come file, processi e servizi con comandi e script.
  • Integrazione con Windows: PowerShell è integrato con Windows e offre accesso a un’ampia gamma di funzionalità e API di sistema.
  • Ampia gamma di cmdlet: PowerShell include un’ampia gamma di cmdlet (comandi speciali) per eseguire diverse operazioni, dalla gestione dei file alla configurazione di rete.

Come abilitare l’esecuzione di comandi da remoto

Per procedere con l’abilitazione seguire questi step:

  • Premere i pulsanti WIN + X ed aprire il terminale come admin
  • Ora digitare
    • Enable-PSRemoting -Force
  • Una volta fatto, vedremo la schermata a video come di seguito ed il gioco è fatto.

Logicamente, in ambienti aziendali bisognerà accertarsi con l’amministratore di sistema la possibilità di eseguire l’operazione oltre a tenere in considerazione che potrebbero esserci delle policy attive o restrizioni a livello di firewall che possono impedire questo tipo di operazioni.

E in ambiente Workgroup come fare?

Per abilitare l’esecuzione di comandi remoti in un Workgroup bisogna procedere così:

Contrassegnare come attendibili i pc della rete con questo comando (sempre da un terminale come admin)

Set-Item wsman:\localhost\client\trustedhosts *

Al posto dell’asterisco è possibile inserire gli IP locali distanziati da una virgola. Successivamente riavviare il servizio WinRM così:

Restart-Service WinRM

Proviamo qualche comando da remoto

Ora è possibile provare ad eseguire alcuni comandi da remoto, come ad esempio:

Invoke-Command -ComputerName IP LOCALE -ScriptBlock { ipconfig } -credential administrator

Un altro comando, utile ad avviare la sessione remota è:

Enter-PSSession -ComputerName COMPUTER -Credential USER

dove al posto di COMPUTER andrà inserito l’IP locale del pc e al posto di USER il nome dell’account.

Tabella di 10 Comandi PowerShell Eseguibili da Remoto

ComandoDescrizioneEsempio
Get-ProcessVisualizza i processi in esecuzione sul computer remoto.Get-Process -ComputerName RemoteComputer
Get-ServiceVisualizza i servizi in esecuzione sul computer remoto.Get-Service -ComputerName RemoteComputer
Get-WMIObjectRecupera informazioni WMI dal computer remoto.Get-WMIObject -ComputerName RemoteComputer -Class Win32_OperatingSystem
Invoke-CommandEsegue un comando PowerShell sul computer remoto.Invoke-Command -ComputerName RemoteComputer -ScriptBlock { Get-Process }
Start-ProcessAvvia un nuovo processo sul computer remoto.Start-Process -ComputerName RemoteComputer -FilePath "C:\Windows\System32\notepad.exe"
Stop-ProcessTermina un processo in esecuzione sul computer remoto.Stop-Process -ComputerName RemoteComputer -Id 12345
Get-RegistryRecupera valori dal registro di sistema del computer remoto.Get-Registry -ComputerName RemoteComputer -Hive HKEY_LOCAL_MACHINE -Path "Software\Microsoft\Windows\CurrentVersion\Run"
Set-RegistryImposta valori nel registro di sistema del computer remoto.Set-Registry -ComputerName RemoteComputer -Hive HKEY_LOCAL_MACHINE -Path "Software\Microsoft\Windows\CurrentVersion\Run" -ValueName "MyApp" -ValueData "C:\Program Files\MyApp.exe"
Get-CimInstanceRecupera istanze CIM dal computer remoto.Get-CimInstance -ComputerName RemoteComputer -ClassName Win32_LogicalDisk
New-ItemCrea un nuovo elemento sul computer remoto.New-Item -ComputerName RemoteComputer -ItemType File -Path "C:\Remote\myfile.txt"

Ulteriori informazioni sono disponibili in questa risorsa ufficiale di Microsoft. Logicamente suggeriamo prima di provare questi comandi in locale, magari in una macchina virtuale, così da assicurarsi che il risultato sia quello che desideriamo, in particolare se siamo alle prime armi con i comandi di powershell, che è a tutti gli effetti un potente strumento in mano ai suoi utilizzatori.

Articoli Correlati

Come impostare il tasto STAMP per catturare lo schermo

Ripristino tramite Windows Update: Come funziona?

FIX: Si è verificato un errore interno con anteprima Adobe PDF