Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Windows 7/8.1 64b spuštění aplikace s admin. oprávněním

Dobrá ránko, :-)

ve zkratce hledám způsob, jak spustit ve Windows 7/8.1 64b program s
admin. oprávněním bez zadání hesla pod omezeným účtem.

Zatím se mi to nějak jednoduše nepodařilo a to už to programuju ve Win Forms nějakou tu hoďku.

Zkoušel jsem i tady v historii navrhované "runasspc", jenže to stejně požaduje vyplnění hesla (po celém nastavení).

Zkoušel jsem i teda:
C:\Windows\System32\runas.exe /user:user /savecred "D:\cesta\program.exe"

Ale takto spuštěný program vždy přestane okamžitě pracovat (spadne).
A to ke slovu vůbec nepouštím program, ale dělám to z CMD....

Co se zase děje.......

Má to někdo solvlé?

]:(

Předmět Autor Datum
Podle mne jedinou rozumnou cestou je spusteni formou planovane ulohy. Tu muzes sputit na vyzadani (i…
Jan Fiala 09.11.2014 13:20
Jan Fiala
Díky za info. Intenzivně se věnuji této nápovědě. Jedná se o hru a trainer. Hra může běžet v pohodě… nový
Flash_Gordon 09.11.2014 14:56
Flash_Gordon
Spust obe veci pod svym uctem. nový
Jan Fiala 09.11.2014 17:14
Jan Fiala
Hej. Musím si už zajít koupit něco na zub. Dobře jsem si zařádil. Z části nízkoúrovňové programován… nový
Flash_Gordon 09.11.2014 17:22
Flash_Gordon
A ještě se mi podařilo vyštrachat z Google cache nějaký zapomenutý způsob, který funguje všude a je… nový
Flash_Gordon 09.11.2014 23:47
Flash_Gordon
Uzivateli s mozkem to muzes ztizit, pokud tomu administratorovi odeberes interaktivni prihlasovani.… poslední
Jan Fiala 10.11.2014 06:57
Jan Fiala

Podle mne jedinou rozumnou cestou je spusteni formou planovane ulohy. Tu muzes sputit na vyzadani (i jako prikaz prikazoveho radku) a pri spusteni ji nastavit, s jakymi pravy se ma spoustet.

Co konkretne ma ta uloha delat? Je to interaktivni uloha s GUI, se kterou uzivatel neco dela nebo potrebujes "neco", co zaktualizuje automaticky program v Program files?

Díky za info. Intenzivně se věnuji této nápovědě.

Jedná se o hru a trainer.
Hra může běžet v pohodě pod omezeným účtem.

Horší je to ale s trainerem, který se musí aktivovat pod mým účtem.

Vše mám již vyřešené v rámci mého prográmku (automatická aktivace příslušných kláves, přepínání focusu.... atd)

Ale celé mě to padá na nutnosti spustit trainer pod mým účtem.

[http://pc.poradna.net/file/view/20405-ukazka-jpg]

Hej. Musím si už zajít koupit něco na zub.

Dobře jsem si zařádil. Z části nízkoúrovňové programování a kombinace obou dohledaných přístupů.

MISSION ACCOMPLISHED.

Takže... stručně se to mělo asi takhle.
K tomu, abyste mohli spustit program, jako správce z aplikace je možno jej zařadit do plánovače.

Ale k tomu, abyste zase mohli spustit ten plánovač potřebujete spustit úlohu z procesu s uloženým vyšším oprávněním.

Takže z CMD ta fíčura vypadá asi takto:
(heslo si vyžádá jen při prvním spuštění)

runas.exe /noprofile /savecred /user:Admin "schtasks.exe /run /tn sluzba_s_absolutnim_opravnenim"

No... a když chcete tuhle parádu spustit z aplikace (třebas) C# .NET tak... to může vypadat takhle:

 System.Diagnostics.Process p = new System.Diagnostics.Process();
        ProcessStartInfo startInfoHeavyFire = new ProcessStartInfo(@"d:\games\hra\hra.exe");
       // ProcessStartInfo startInfoHeavyFire = new ProcessStartInfo(@"");
        
        System.Diagnostics.Process t = new System.Diagnostics.Process();
        ProcessStartInfo startInfoTrainerHeavyFire = new ProcessStartInfo("runas.exe", "/noprofile /savecred /user:Administrátor \"schtasks.exe /run /tn sluzba_s_absolutnim_opravnenim\"");

        //nasledně třebas

  p.StartInfo = startInfoHeavyFire;
               
                p.Start();
                Thread.Sleep(10000);

            
                startInfoTrainerHeavyFire.WorkingDirectory = Environment.CurrentDirectory;
                startInfoTrainerHeavyFire.UseShellExecute = false;
                
                t.StartInfo = startInfoTrainerHeavyFire;  // nastartování procesu s max. oprávněním z aplikace se standardním
                t.Start();


Možná to jde nějak jednodušeji. Ale tohle funguje.
Službu jsem nastavil na spuštění s parametry 1x v minulosti (tím se sama nikdy a ani periodicky nezapne).
A vypadá takhle:
[http://pc.poradna.net/file/view/20412-vlast-sluzby -jpg]

Pakliže potřebujete nastavit focus externí aplikaci, na kterou máte handle např. přes
process start (uvedený), dá se použít (unmanaged) todle:

 [DllImport("User32.dll", SetLastError = true)]
 static extern void SwitchToThisWindow(IntPtr hWnd, bool fAltTab);
 
// následně:

 t.Start();
 Thread.Sleep(5000); // Nějaké to zpoždění
 SwitchToThisWindow(p.MainWindowHandle, true); // p je pointer na proces z předchozí ukázky          

Takže tenhle příspěvek řeší hlavně způsob, jak z vlastní aplikace spustit aplikaci externí s vyšším oprávněním bez hesla.

A funguje to i na W8.1

A ještě se mi podařilo vyštrachat z Google cache nějaký zapomenutý způsob, který funguje všude a je nejjednodušší.

Oproti TĚMHLE HARDCORE básničkám v cz.

Principem je aktivace Administrátorského účtu, který je ve Vistách a výše deaktivovaný.
Posléze se tomuto účtu přiřadí heslo:

Run the following command in the elevated Command Prompt window that appears:

net user administrator /active:yes

To set a password, open the Control Panel, select User Accounts and Family Safety, and select User Accounts. Click the Manage another account link in the User Accounts window. - Select the Administrator account, click Create a password, and create a password for the Administrator account.

A nyní vytvoříte třebas zástupce:
runas /user:ComputerName\Administrator /savecred "C:\Path\To\Program.exe"

Zástupce spustíte, nastavíte heslo a podruhé ho již nebude zástupce požadovat.
Ale je to ďoura, pro usera s mozkem.

Zpět do poradny Odpovědět na původní otázku Nahoru