Si eres ADMINISTRADOR de Sistemas, más de una vez te habrá pasado que estás en un ordenador y el usuario tiene los permisos limitados. Cuando pasa eso, y necesitamos abrir un configurador o ejecutar algún programa con permisos elevados, lo normal seria ejecutar el comando RUNAS en una consola de CMD «runas /noprofile /user:mymachine\administrator lusrmgr.msc» o bien, cerrar sesión y entrar con un usuario con permisos elevados….
Con la aplicación que a continuación os presento, podrás ejecutar cualquier programa con el USUARIO que necesitemos; sea el usuario Local o del Dominio que pertenezca.

El funcionamiento es muy sencillo y está pensado para ejecutar programas, que no necesiten el perfil del usuario cargado en el sistema /nopdrofile
/noprofile Especifica que el perfil de usuario no debe cargarse. Esto permite que las aplicaciones se carguen más rápidamente, pero puede ocasionar que algunas aplicaciones no se ejecuten correctamente.
Esto quiere decir, que si nosotros necesitamos abrir un WORD con otro usuario, éste no podrá cargar o generar la configuración de la personalización… produciendo que el programa, no se ejecute correctamente….

Para poder personalizar los lanzamientos «Launch» en el programa «Another User», nosotros podremos editar el archivo launch.txt para añadir los ejecutables que utilicemos, para la administración de nuestros sistemas informáticos..
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
# Añadir las aplicaciones, que utilicemos habitualmente. ##
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##
control
cmd
lusrmgr.msc
compmgmt.msc
services.msc
msconfig.msc
A si mismo, si nosotros queremos ejecutar un programa que no está en la lista, podemos arrastrar el ejecutable hasta la caja «Launch» y el programa «Another User» obtendrá la ruta del programa para su ejecución.

Estructura del programa.
Aquí podéis descargar la Aplicación
Código fuente – Source Code
Public Class Start
Private Sub Start_Load(ByVal sender As System.Object, ByVal e As EventArgs) Handles MyBase.Load
' Cargar ComboBox Local o Dominio
Dim computername As String = Environment.GetEnvironmentVariable("COMPUTERNAME")
Dim dominio As String = Environment.GetEnvironmentVariable("USERDNSDOMAIN")
ComboBox_Local_Dominio.Items.Add(computername)
If Not (dominio = Nothing) Then ComboBox_Local_Dominio.Items.Add(dominio)
If ComboBox_Local_Dominio.Items.Count > 0 Then
ComboBox_Local_Dominio.SelectedIndex = 0
End If
' Cargar Comobox programas
If System.IO.File.Exists(Environment.CurrentDirectory & "\launch.txt") Then
For Each Linea In System.IO.File.ReadAllLines(Environment.CurrentDirectory & ("\launch.txt"))
If Not (Linea = Nothing) Then If Not (Linea.Contains("#")) Then ComboBox_Program.Items.Add(Linea)
Next
End If
If ComboBox_Program.Items.Count > 0 Then
ComboBox_Program.SelectedIndex = 0
End If
End Sub
Private Sub ComboBox_Program_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ComboBox_Program.DragDrop
Dim files() As String = e.Data.GetData(DataFormats.FileDrop)
For Each path In files
ComboBox_Program.Items.Add(path)
ComboBox_Program.Text = path
Next
End Sub
Private Sub ComboBox_Program_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ComboBox_Program.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.Copy
End If
End Sub
Private Sub TextBox_Contraseña_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox_Contraseña.KeyDown
If e.KeyCode = Keys.Enter Then
Button_Ejecutar_Click(sender, e)
End If
End Sub
Private Sub Button_Ejecutar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Ejecutar.Click
If (TextBox_Contraseña.Text.ToString = "") Then
MessageBox.Show("Instroduzca el usuario...", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop)
Exit Sub
End If
' Contraseña
Dim password As Security.SecureString = ConvertToSecureString(TextBox_Contraseña.Text)
' Particularidades del lanzamiento
Dim programa As String
Dim argumento As String
If ComboBox_Program.Text.Contains(".msc") Then
programa = "mmc.exe"
argumento = ComboBox_Program.Text
Else
programa = ComboBox_Program.Text
argumento = Nothing
End If
' ProcessStartInfo
Try
Dim Lanzamiento As New ProcessStartInfo With {
.FileName = programa,
.WorkingDirectory = "c:\Windows\System32\",
.Arguments = argumento,
.Domain = ComboBox_Local_Dominio.Text,
.UserName = TextBox_Usuario.Text,
.Password = password,
.UseShellExecute = False
}
Process.Start(Lanzamiento)
Catch ex As Exception
MessageBox.Show(ex.ToString, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Function ConvertToSecureString(ByVal str As String)
Dim password As New Security.SecureString
For Each enigma As Char In str.ToCharArray
password.AppendChar(enigma)
Next
Return password
End Function
End Class