Sessione remota di power shell
TLDR: comandi per inviare comandi remotamente in powershell.
Per eseguire un comando remoto con Invoke-Command
come un utente amministratore, devi specificare le credenziali appropriate durante l’invocazione. Ecco come fare:
Prerequisiti
configurare le stazioni come in questo post
Comando Base
Usa il parametro -Credential
con Invoke-Command
per specificare le credenziali di un utente amministratore.
Esempio:
$cred = Get-Credential
Invoke-Command -ComputerName "IP_Remoto" -Credential $cred -ScriptBlock { Get-Process }
Get-Credential
apre una finestra per inserire le credenziali (nome utente e password) dell’amministratore remoto.-ComputerName
specifica l’host remoto.-ScriptBlock
contiene i comandi da eseguire.
Passare le credenziali direttamente
Se conosci già le credenziali, puoi passarle direttamente:
$cred = New-Object System.Management.Automation.PSCredential ("AdminUsername", (ConvertTo-SecureString "AdminPassword" -AsPlainText -Force))
Invoke-Command -ComputerName "IP_Remoto" -Credential $cred -ScriptBlock { Get-Service }
Specificare un amministratore di dominio
Se stai lavorando in un ambiente di dominio e l’utente amministratore appartiene al dominio:
$cred = Get-Credential
Invoke-Command -ComputerName "IP_Remoto" -Credential $cred -ScriptBlock { Restart-Service Spooler }
Nel prompt delle credenziali, inserisci il nome utente nel formato:
DOMINIO\NomeUtente
o NomeUtente@dominio.local
.
Eseguire il comando su più computer
Puoi eseguire il comando su più computer contemporaneamente:
$cred = Get-Credential
Invoke-Command -ComputerName "IP1", "IP2", "IP3" -Credential $cred -ScriptBlock { Get-Service }
Sessione remota
- Esegui un comando di test dal computer master:
Test-WSMan -ComputerName IP_Remoto
- Inizia a gestire i computer remoti:
Enter-PSSession -ComputerName IP_Remoto
- Se conosci già le credenziali, puoi passarle direttamente:
$cred = New-Object System.Management.Automation.PSCredential ("AdminUsername", (ConvertTo-SecureString "AdminPassword" -AsPlainText -Force)) Enter-PSSession -ComputerName "IP_Remoto" -Credential $cred
Verificare i permessi e testare la connessione
- Testa la connessione remota:
Test-WSMan -ComputerName "IP_Remoto"
- Verifica se l’utente ha i permessi corretti:
Invoke-Command -ComputerName "IP_Remoto" -Credential $cred -ScriptBlock { whoami }
Dovresti vedere qualcosa come:
IP_REMOTO\Administrator
.
Con questi passaggi, puoi eseguire Invoke-Command
come amministratore remoto in modo sicuro e senza problemi.
Con queste configurazioni, avrai PowerShell remoting funzionante in una rete LAN non in dominio.