Elezioni europee: niente duello in tv tra la Meloni e la Schlein
Elezioni Europee: tutti quelli che avrebbero voluto vedere in tv, il duello pre-elezioni tra la Meloni e la Schlein, dovranno …
Elezioni Europee: tutti quelli che avrebbero voluto vedere in tv, il duello pre-elezioni tra la Meloni e la Schlein, dovranno …
Il nuovo progetto di Poste Italiane punta a migliorare sensibilmente i suoi servizi e tra le novità che prenderanno il …
Se pensate che al giorno d’oggi i telefonini siano arrivati a prezzi esagerati, esclusivamente a causa della tecnologia che racchiudono …
Quando si prenotano le vacanze è davvero difficile riuscire a non cadere nelle truffe di alcune aziende, ma grazie a …
In questa parte finale del 2023 sul mercato delle auto si è abbattuto un vero e proprio uragano: la nuova …
Ormai è nota a tutti la fama da playboy di Claudio Amendola, ma nessuno si aspettava si riaccompagnasse così presto. …
Oggi un cliente mi segnalava una problematica. Per non avere problemi di permessi durante l’esecuzione di un programma, questo doveva essere eseguito come un utente amministratore. Diciamo che inserire tutti gli utenti di una azienda nel gruppo degli amministratori delle macchine mi sembra eccessivo, l’unica cosa da fare era eseguire il programma come un utente amministratore, un semplice RunAs.
Per questo motivo ho sviluppato una applicazione di console la quale non fa nient’altro che eseguire l’eseguibile con una utenza specifica. Ecco il codice della applicazione in VB.NET:
Importate le seguenti librerie nel vostro progetto:
Imports System.Windows.Forms
Imports System.Diagnostics
Imports System.Security
Imports System.Security.Principal
Poi nella main del progetto aggiungete queste righe di codice sostituendo utenza, password, programma e altre variabili necessarie:
Dim password As SecureString
Dim proc As ProcessStartInfo
Dim pwd As String = “PASSWORD DEL UTENTE CHE ESEGUE L’APPLICAZIONE”
Try
password = New SecureString()
‘Se inserite questo eseguibile nello stesso percorso della applicazione da
‘eseguire potete utilizzare (Application.StartupPath & “\Programma.exe”)
proc = New ProcessStartInfo(“PERCORSO DEL ESEGUIBILE CHE VERRA’ ESEGUITO”)
For Each carattere As Char In pwd
password.AppendChar(carattere)
Next
proc.UserName = “NomeUtente”
‘Se è un utente di dominio specificate il dominio
proc.Domain = “EventualeDominio”
proc.Password = password
proc.UseShellExecute = False
Process.Start(proc)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Il codice è abbastanza semplice ma se ci sono dei dubbi chiedete pure. Ecco invece l’equivalente codice in C#:
using System.Security;
using System.Security.Principal;
using System.Diagnostics;
using System.Windows.Forms;
Nella main del progetto aggiungete:
SecureString password;
ProcessStartInfo proc
string pwd = “PASSWORD DEL UTENTE CHE ESEGUE L’APPLICAZIONE”;
Try
{
//Se inserite questo eseguibile nello stesso percorso della applicazione da
//eseguire potete utilizzare (Application.StartupPath & “\Programma.exe”)
proc = new ProcessStartInfo(“PERCORSO DEL ESEGUIBILE CHE VERRA’ ESEGUITO”);
password = new SecureString();
foreach (char carattere in pwd)
{
password.AppendChar(carattere);
}
proc.UserName = “NomeUtente”;
proc.Password = password;
//Se è un utente di dominio specificate il dominio
proc.Domain = “EventualeDominio”;
proc.UseShellExecute = false;
Process.Start(proc);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Come sempre spero di essere stato chiaro in questa spiegazione. Buona programmazione a tutti.
© 2024 G Tech Group S.R.L.S. – Via di Gagia 22, 38086 Giustino (TN) – P.IVA 02743570224 – REA TN – 246638 – SDI SZLUBAI -PEC gtechgroupsrls@postacert.eu
3 Responses
La descrizione è chiarissima e funzionale, ma non comprendo come mai su W7 64bit avviando un eseguibile senza diritti amministrativi o con diritti amministrativi usando quest’applicazione i problemi di latenza rimangono invariati, cosa che non avviene se eseguo l’eseguibile con il comando “esegui come amministratore”
Qualche controllo in più da parte di Antiviurs o altri tool di sicurezza di Win7. Disattiva i controlli e fa una prova.
in vb2008 come faccio ad eseguire solo parti di codice come amministratore:
per esempio file.copy(“c:\temp\pippo.exe”, “c:\programmi\app\pippo.exe”)
grazie