Un tipico scenario, quando si parla di amministrazione di sistemi, è quello di dover eseguire dei comandi con privilegi amministrativi. Quando si parla di PowerShell ciò può essere ottenuto piuttosto facilmente. Vediamo i comandi necessari in azione.
Script PowerShell eseguito come Administrator
Nel nostro esempio, eseguiremo il comando per il restart dello spooler di stampa invocandolo con credenziali amministrative. In questo precedente articolo ho parlato di come eseguire il riavvio di servizi con PowerShell.
Iniziamo memorizzando nella variabile $password la password del nostro utente Administrator.
$password = ConvertTo-SecureString "P@$$w0rd" -AsPlainText -Force
A questo punto creiamo un oggetto che contiene le credenziali Amministrative ossia la coppia [Username, Password].
$credenziali = New-Object System.Management.Automation.PSCredential("Administrator", $password)
Siamo quindi pronti ad invocare il comando (in questo caso per il riavvio dello spooler di stampa) con privilegi amministrativi
Invoke-Command -ComputerName My_PC_Name -Credential $credenziali -ScriptBlock {Restart-Sevice -Name Spooler}
Conclusione
In questo esempio ho utilizzato l’utente di default Administrator. Resta scontato che l’uso di tale utente è caldamente sconsigliato. è infatti best practice disabilitare l’utente Administrator per ragioni di sicurezza: gli hacker sanno molto bene che è un utente di tipo amministrativo e se il nome utente glielo forniamo già noi, devono solo sforzarsi di indovinare la password.
Pertanto, al posto del nome utente Administrator, sostituire nello script il nome del vostro account amministrativo.