- notageek.it di Mirko Iodice - http://www.notageek.it -

Guida all’uso del comando “Esegui come…” – “RunAs…” command userguide

Nei sistemi linux elevare temporaneamente i propri privilegi al fine di eseguire attività amministrative è un compito piuttosto semplice e ormai quasi automatico, lo stesso non si può certamente dire per i sistemi Microsoft.

Spesso faccio riferimento al fatto che in una configurazione di rete perfetta non si dovrebbero mai utilizzare utenti "amministratori" per svolgere il proprio lavoro quotidiano; mi rendo anche però conto del fatto che, nel momento in cui ci si trovi frequentemente a dover compiere azioni che richiedono particolari privilegi sul sistema, la situazione può diventare frustrante in quanto, senza le giuste conoscenze, la maggior parte delle volte ci si vede costretti a dover chiudere tutte le applicazioni in esecuzione per poi riconnettersi utilizzando un account utente amministrativo.

In questo articolo ho deciso di scrivere tutto quello che ho imparato riguardo all’elevazione temporanea dei permessi in ambiente Windows, mi riferisco alla funzione “Esegui come” (RunAs), un comando che tutti gli amministratori di sistema dovrebbero conoscere.

N.B: tutto ciò che leggerete è stato scritto utilizzando come riferimento il sistema Windows XP Professional, non è però escluso che tali funzionalità siano fruibili anche in Windows 2000.

sandwich.jpg

Cosa è il comando "Esegui come" ?

Per chi ancora non lo sapesse: il comando "Esegui come" permette in ambiente Windows di eseguire una specifica operazione utilizzando i diritti assegnati ad un utente diverso da quello che sta utilizzando la console.

Quanto appena detto significa semplicemente che se stiamo lavorando con l'utente limitato "mirko" e abbiamo bisogno di installare una applicazione, "Esegui come" ci permette di eseguire tale operazione come "Administrator".

E' importante sottolineare che la password dell'utente Administrator non deve essere blank (in bianco) altrimenti non sarà possibile la funzione "Esegui come".

Qual'è la difficoltà nell'utilizzare tale comando?

Purtroppo "eseguire come" non è sempre una attività facile da mettere in pratica, a volte è necessario ricorrere a qualche piccolo accorgimento per bypassare i limiti che ci vengono imposti dall'interfaccia grafica di Windows XP, ve ne renderete perfettamente conto se proseguirete con la lettura di questo articolo.

Eseguire una applicazione

Il metodo più semplice per eseguire una applicazione con diritti amministrativi è quello di cliccare con il tasto destro del mouse sull'eseguibile o sul collegamento dell'applicazione e scegliere la voce "Esegui Come...".

runas1.PNG [1]


Fortunatamente questa funzionalità è stata fortemente migliorata nel tempo grazie agli aggiornamenti di sistema e nella migliore delle ipotesi non dovremmo mai trovarci a fare nient'altro che quanto appena detto.

Alcune volte, per far apparire nel menù contestuale la voce "Esegui come...", può essere necessario tenere premuto il tasto shift mentre si clicca con il tasto destro del mouse; tenetelo presente nel caso in cui la semplice pressione del tasto destro non faccia il suo dovere... provarci non costa nulla.

Il metodo appena descritto può essere utilizzato anche per lanciare alcuni strumenti di sistema come:

runas2.PNG [2]


In realtà, siccome questi file normalmente si trovano in C:\windows\ o C:\windows\system32, può risultare abbastanza scomodo eseguirli per mezzo del tasto destro del mouse, tra breve vi proporrò una soluzione alternativa molto più rapida.

Installare una applicazione

Fortunatamente anche questa non è una attività particolarmente difficile da mettere in pratica a meno che il pacchetto di installazione non sia di tipo ".msi" (per ironia della sorte :-) ), per nostra fortuna tali pacchetti sono sempre più spesso accompagnati da una controparte ".exe"... ma andiamo con ordine.

Per installare una applicazione dotata di un file di installazione di tipo ".exe" sarà sufficiente cliccare con il tasto destro del mouse su tale file e scegliere la voce "esegui come".

runas3.PNG [3]


Nel caso in cui l'applicazione fosse distribuita su di un supporto cd che deve essere necessariamente eseguito con permessi amministrativi sappiate che, se non fosse attiva, basterà forzare la funzione di Autoplay e Windows dovrebbe essere in grado di rilevare l'assenza di privilegi amministrativi e richiedere quindi in maniera automatica l'utilizzo di credenziali alternative.

runas4.PNG [4]


Se il file di installazione è invece di tipo ".msi" il tasto destro del mouse non vi porterà da nessuna parte e dovrete necessariamente ricorrere all'aiuto del prompt dei comandi.

runas5.PNG [5]


Con il prompt dei comandi recatevi nella cartella in cui si trova il pacchetto da installare ed eseguite il seguente comando:

runas /env /user:DOMINIO\Administrator "msiexec /i nome_pacchetto.msi"
runas6.PNG [6]


Credo che a questo punto sia necessaria una breve spiegazione, il comando "Esegui come..." è utilizzabile anche tramite prompt dei comandi e si chiama "runas", la sintassi basilare del comando è così composta:

runas /user:DOMINIO\Utente_Amministrativo comando

Nel caso in cui il comando da eseguire non sia composto da un unica parola ma necessiti di parametri aggiuntivi allora sarà necessario utilizzare i doppi apici in modo da poter contenere in un unica stringa l'intera sintassi da eseguire:

runas /user:DOMINIO\Utente_Amministrativo "comando parametri"

Nel caso del pacchetto ".msi" notate come viene eseguito il motore "msiexec" (Microsoft installer) fornendo come parametro il nome del pacchetto e l'opzione /i che sta ad indicare che stiamo compiendo una operazione di installazione. Per vedere le varie possibilità offerte dal comando "msiexec" è sufficiente eseguirlo senza parametri all'interno di un prompt dei comandi.

runas7.PNG [7]


Se vi state chiedendo cosa sia quell'opzione aggiuntiva "/env" che ho utilizzato nell'esempio sappiate che si tratta di un parametro che serve ad evitare che l'ambiente di esecuzione corrente venga sostituito con quello dell'utente specificato nel comando stesso. Nella mia esperienza questa opzione ho dovuto utilizzarla solamente per eseguire con successo il comando msiexec.

Grazie ad alcune modifiche apportabili al registro di sistema di Windows è possibile abilitare la voce "Esegui come..." anche per questi file di tipo ".msi", vediamo come:

Aprite regedit e recatevi alla chiave:

HKEY_CLASSES_ROOT\Msi.Package\shell

create uno sottochiave del suddetto percorso denominata "runas"

runas8.PNG [8]


il valore predefinito di questa chiave deve essere:

Esegui &come...
runas9.PNG [9]
runas10.PNG [10]


create una sottochiave di "runas" denominata "command" il cui valore di default dovrà essere portato a:

msiexec /i "%1"
runas11.PNG [11]


Chiudete regedit. A questo punto tramite tasto destro del mouse dovrebbe essere possibile "eseguire come" anche i file ".msi"

runas12.PNG [12]


Installare stampanti ed eseguire operazioni di manutenzione su stampanti già installate

La funzione "Esegui come..." è sfruttabile anche su Pannello di controllo -> Stampanti e Fax, è necessario però tenere premuto il tasto shift della tastiera mentre si fa clic con il tasto destro del mouse in un punto qualsiasi della finestra.

runas13.PNG [13]


Notate come sia possibile nello stesso modo cambiare anche le proprietà del server di stampa.

runas14.PNG [14]


Nel caso in cui invece si voglia intervenire su di una stampante già installata, per condividerla, per cancellarla o per cambiarne i permessi, sarà necessario premere il tasto destro del mouse, sempre unitamente al tasto shift della tastiera, sulla stampante interessata.

runas15.PNG [15]


A questo proposito vorrei aggiungere un'altra piccola informazione: è possibile eseguire i passi sopra descritti anche su PC remoti; per farlo basta semplicemente connettersi tramite percorso UNC al computer remoto desiderato, recarsi nella sezione stampanti e fax, ed agire come se si trattasse del computer locale.

runas16.PNG [16]


runas17.PNG [17]


Eseguire interfacce amministrative

Nella prima parte dell'articolo ho mostrato come sia possibile "eseguire come" gli strumenti amministrativi di Windows tramite tasto destro del mouse, ho fatto però riferimento al fatto che esista un metodo più veloce per eseguire tali applicazioni, vediamo ora come fare.

Aprite il menu start -> esegui (potete aprirlo anche tramite la combinazione di tasti windows+r) e digitate qui, come se fosse un prompt dei comandi, la sintassi del comando "RunAs" che abbiamo visto poco fa, richiamando in questo modo l'interfaccia amministrativa di cui avete bisogno.

runas18.PNG [18]


Per esempio, regedit.exe:

runas /user:DOMINIO\Administrator regedit.exe

Il prompt dei comandi, cmd.exe:

runas /user:DOMINIO\Administrator cmd.exe

La MMC - Microsoft Management Console [19] (per chi non lo sapesse questa console generica vi permette di richiamare varie snap-in amministrative, incluse quelle relative ad Active Directory nel caso in cui abbiate installato sul vostro Windows l'adminpak.msi [20]).

runas /user:DOMINIO\Administrator mmc.exe

E' importante sottolineare che le snap-in amministrative caricabili in mmc.exe (si tratta di files con estensione ".msc"... provate a cercarli!) possono essere caricate direttamente da linea di comando passandole come parametri aggiuntivi del comando mmc.exe, per esempio:

runas /user:DOMINIO\Administrator "mmc.exe lusrmgr.msc"

oppure

runas /user:DOMINIO\Administrator "mmc.exe compmgmt.msc"

Eseguire applet di sistema

Alcune parti del sistema operativo non sono accessibili direttamente attraverso un file eseguibile, l'unico modo per raggiungerle sembra sia quello di utilizzare l'interfaccia grafica di Windows, prendete come esempio il pannello di controllo e le voci che troviamo in esso, avete mai provato a lanciarle senza utilizzare l'interfaccia grafica?

Queste voci del panello di controllo sono definite applet e si tratta di files con estensione ".cpl", effettuando una ricerca li si possono trovare all'interno della cartella system32.

runas19.PNG [21]


Eccone una lista:

Il comando per eseguirli è:

runas /user:DOMINIO\Administrator "rundll32.exe shell32.dll,Control_RunDLL nome_applet.cpl"
runas20.PNG [22]


Elevare i privilegi attraverso i collegamenti

Se fate uso frequente di determinate interfacce amministrative, piuttosto che digitare manualmente la sintassi del comando runas tutte le volte che desiderate avviarle, può risultare molto più comodo crearsi dei collegamenti che lo incorporano.

Per creare i suddetti collegamenti non è necessario sapere niente in più di quanto non sia già stato detto poiché nella procedura guidata per la creazione di un collegamento è possibile specificare anche una riga di comando.

runas21.PNG [23]


Esplora risorse (risorse del computer)

Uno dei bisogni più comuni agli amministratori è sicuramente quello di "eseguire come" Esplora risorse (risorse del computer), in modo da poter apportare rapide modifiche ai file contenuti nel disco C: anche quando l'utente connesso in console non ha sufficienti diritti per poterlo fare.

Molte persone pensano che non esistano metodi per eseguire explorer.exe tramite "runas" quindi, per portare a termine questo tipo di attività, sfruttano la condivisione amministrativa del computer locale (C$), tale condivisione è presente in maniera predefinita su tutti i PC della rete; l'operazione è molto semplice: si tratta di aprire start -> esegui e connettersi, tramite percorso UNC, alla suddetta condivisione della stessa macchina sulla quale state lavorando... praticamente il PC si connetterà alla sua stessa condivisione amministrativa, questa azione permette di elevare temporaneamente i privilegi.

runas22.PNG [24]


Purtroppo l'operazione appena descritta presenta seri problemi di sicurezza, in quanto le credenziali (nome utente e password) utilizzate al momento dell'elevazione dei privilegi vengono memorizzate in cache e fino alla sua disconnessione l'utente potrà accedere nuovamente alla condivisione amministrativa senza doverle fornire nuovamente. Gli utenti più smaliziati potrebbero usufruire di questo temporaneo privilegio per modificare importanti files di sistema.

Il metodo che invece vi consiglio di utilizzare è quello di "eseguire come" il file "explorer.exe" aggiungendo al comando l'opzione "/separate", un equivalente dell'impostazione "Esegui le finestre delle cartelle in un processo separato" che trovate tra le varie "Opzioni Cartella" accessibili dal menu strumenti.

runas31.PNG [25]


runas /user:DOMINIO\Administrator "explorer.exe /separate"

Connessioni di rete

Come ho specificato poco fa, l'uso dell'applet ncpa.cpl per "eseguire come" la finestra di proprietà delle connessioni di rete non sembra più funzionare sui sistemi aggiornati. In realtà potete ancora portare a termine questo compito in maniera piuttosto semplice utilizzando lo stesso metodo che ho appena descritto parlando di Esplora risorse (risorse del computer).

Se osservate con attenzione il menu laterale di Esplora risorse (risorse del computer) noterete infatti la possibilità di saltare direttamente (e con diritti amministrativi) a Risorse di rete e Visualizza Connessioni di rete, senza contare il fatto che potete direttamente scrivere "Risorse di rete" nella barra degli indirizzi di Internet Explorer per ottenere lo stesso risultato.

runas26.PNG [26]
runas27.PNG [27]


E se volete veramente esagerare...

Non che vi stia incoraggiando a fare quanto sto per descrivervi :-) ... ma se volete veramente esagerare sappiate che esiste la possibilità di mettere in scena, usufruendo di un metodo del tutto manuale, un veloce cambio utente in piena regola. Aprendo Task Manager è possibile infatti terminare quasi completamente la shell di Windows "Explorer.exe" e rieseguirla, grazie al comando "runas", con l'utente amministrativo. In linea del tutto teorica le applicazioni che si trovavano in esecuzione nella sessione utente non dovrebbero terminarsi e dovremmo ritrovarle ancora aperte una volta effettuata la disconnessione dell'amministratore.

runas28.PNG [28]
runas29.PNG [29]


L'intero ambiente grafico sarà ora in grado di lavorare con diritti amministrativi.

Non appena avrete finito di compiere le azioni amministrative necessarie ricordatevi di disconnettere la sessione amministrativa tramite start -> disconnetti; così facendo explorer.exe si terminerà lasciandovi la possibilità di rieseguirlo nuovamente con i diritti dell'utente connesso.

runas30.PNG [30]


Come ho detto precedentemente, in condizioni normali, tutti i programmi aperti dall'utente dovrebbero riapparire.

Nota: se quando terminate explorer.exe non sapete più come aprire il Task Manager sappiate che è sempre possibile accedervi tramite la combinazione di tasti Ctrl+shift+Esc oppure Ctrl+Alt+Canc

Autore

Mirko Iodice
mirko -at- notageek (.dot) it