AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein ShellExecute, Batch über runas starten
Thema durchsuchen
Ansicht
Themen-Optionen

ShellExecute, Batch über runas starten

Ein Thema von waldforest · begonnen am 26. Apr 2016 · letzter Beitrag vom 12. Sep 2016
Antwort Antwort
Seite 2 von 2     12   
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#11

AW: ShellExecute, Batch über runas starten

  Alt 11. Sep 2016, 15:38
Hallo,
ist es möglich shellexecute mit runas und den Profildaten eines Admins als Parameter zu übergeben.

Hintergrund: ich habe einen Rechner, der 2 Benutzerprofile besitzt, eines mit Administrationsrecht, das Andere als klassischer Nutzer.
Nun möchte ich vom Nutzer ohne Adminrechte aus meiner Anwendung, ohne jedes mal den Benutzer und das Passwort eingeben zu müssen, über Shellexecute eine Batch starten. Diese soll mit Adminrechte gestartet werden.

Geht dies überhaupt mit shellexecute oder wie kann ich so etwas realisieren ?
mfg wf

Geändert von waldforest (11. Sep 2016 um 15:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#12

AW: ShellExecute, Batch über runas starten

  Alt 11. Sep 2016, 19:14
Code:
[Win] CMD [Enter] runus [Enter]
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#13

AW: ShellExecute, Batch über runas starten

  Alt 12. Sep 2016, 06:45
Hallo,
mir schwebt eher der eine Möglichkeit aus meiner Anwendung heraus vor.
Ich habe da Problem wie folgt gelöst.

Delphi-Quellcode:
function RunAsWithLogon(const User, PW, Application, CmdLine: WideString): DWORD;
var
  si : TStartupInfoW;
  pif : TProcessInformation;
  s : WideString;
begin
  ZeroMemory(@si, sizeof(si));
  si.cb := sizeof(si);
  si.dwFlags := STARTF_USESHOWWINDOW;
  si.wShowWindow := 1;

  if CmdLine = 'then
    s := Application
  else
    s := Application + ' ' + CmdLine;

  SetLastError(0);
  CreateProcessWithLogonW(PWideChar(User), nil, PWideChar(PW), 0, nil, PWideChar(s), CREATE_DEFAULT_ERROR_MODE, nil,
    nil, @si, @pif);
  Result := GetLastError;
end;
mfg wf
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz