FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
RunAS
Hola a todos, necesito instalar un exe con permisos de administrados, al utilizar runas me funciona todo bien, pero no quiero q me solicite password, este debe ser transparente.
Les agradeciaria me ayudaran |
#2
|
||||
|
||||
Me parece que así incurriríamos en un fallo de seguridad en el sistema, ¿no?
Salu2. |
#3
|
|||
|
|||
RunAs
Gracias ixMike por responderme, disculpa creo que no supe explicarme, al instalar el exe con un usuario sin privilegios de Admin me da error de instalacion (crear un directorio en c:/ y grabar en este el exe). No quiero que estos usuarios restringidos sepan el "password de administrador". Por eso es que lo ejecuto con RunAs.
Utilizo este Codigo function TForm1.RunExe2(Cmdline: string): boolean; var Startupinfo : TStartupinfo; Processinfo : TProcessinformation; parametros : String; begin Fillchar(Startupinfo,Sizeof(TStartupinfo),0); with startupinfo do begin cb := sizeof(tstartUPinfo); dwflags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK or STARTF_USESTDHANDLES; WSHOWWINDOW := SW_SHOWNORMAL; end; result := CreateProcess(nil,PChar(cmdLine), nil, nil, true,NORMAL_PRIORITY_CLASS,nil, nil, Startupinfo, Processinfo); if booltostr(result) = '0' then Messagebox(0,pchar(SysErrorMessage(GetLastError)),'Message',MB_ICONERROR); end; procedure TForm1.Button1Click(Sender: TObject); begin RunExe2('"C:\Windows\System32\RunAs.exe" /env /user:Administrator "C:\Facturacion\ProjectFactura.EXE"'); end; En este codigo algo no funciona bien ...... |
#4
|
||||
|
||||
PD: no se por que usas STARTF_USESTDHANDLES si no estas definiendo hStdInput, hStdOutput, ó hStdError, y hasta STARTF_USESHOWWINDOW me suena innecesario pues de todas formas estas usando su Default. Usa las etiquetas para poner tu código!!! Saludos |
#5
|
|||
|
|||
Al instalar ProjectFactura.EXE en las Pc's, no tengo conocimiento de cual el password del usuario Administrador.
|
#6
|
||||
|
||||
Podes incluir una configuración donde se guarde... aunque eso de guardar la contraseña del administrador no es nada sano.
Finalmente... si el programa requiere permisos de administrador para ejecutarse... pues quien lo haga debiera llamar al administrador cada vez... ¿no te parece? Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
||||
|
||||
Te recomiendo ver la función RunAs que he subido al foro hace tiempo, con esta función no sería necesario utilizar la consola para crear procesos con otro usuario ya que utliza la función CreateProcessAsUser.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#8
|
|||
|
|||
¿con RunAs es necesario ejecutar tu exe a través de un loader o launcher? ¿es posible que una aplicación se ejecute con privilegios de admin con su propio código?
con respecto a que no se vea la pass de admin se podría pasar encriptada ,no? |
#9
|
||||
|
||||
Cita:
Código:
if NoEsAdministrador then begin RunAs(YoMismo, Administrador, contraseña); Terminar; end;
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#10
|
|||
|
|||
no entiendo ese código.
Yomismo se refiere a un exe o a que? Puedes ser mas claro por favor. |
#11
|
||||
|
||||
Por YoMismo quise decir, la propia aplicación...
Para ser mas formales:
¿es lo suficientemente claro ahora?
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#12
|
|||
|
|||
Luego debes de crear una aplicación A que ejecute a la aplicación B que es la que queremos que tenga privilegios de admin
. Mi pregunta era si B puede iniciarse a ella misma con un proceso RunAs pero desde su propio código? Código:
Programa B.exe ... if not admin then EjecutateComoAdmin(B.EXE,etc..) ... end. |
#13
|
||||
|
||||
Es justamente lo que hace el trozo de código que te envié...
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#14
|
|||
|
|||
Bueno he hecho pruebas con el RunAs
y me da un error de excepción Code 1314 EOSError Code:_1314. "El cliente no dispone de un privilegio requerido." en una cuenta de administrador en XP SP2 dentro de la función RunAs Código:
procedure TForm6.BitBtn1Click(Sender: TObject); begin RunAs(PChar(Application.ExeName),PChar(Edit2.text) ,(*PChar(Edit4.text)*)nil , PChar(Edit3.text)); try ListBox1.Items.SaveToFile('prueba.txt'); except Edit1.text:='error'; end; end; He puesto el user y password en editbox y el dominio como nil (ordenador sin dominio, supongo) Si se deben cambiar privilegios ¿Cuales son? ¿Se puede hacer todo desde Delphi de manera automática? |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ejecutar comando runas desde delphi | bykram | API de Windows | 10 | 29-12-2004 20:29:24 |
|