Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Swiftu. Zároveň využij výhodnou slevovou akci až 30 % zdarma při nákupu e-learningu - více informací.
discount 30 + hiring
Avatar
dejma
Člen
Avatar
dejma:24.11.2020 15:15

cíl je, dovolit uživateli vypnout zapnout openvpn přes muj program, ale aby nebyl ve skupině administrators

Chci docílit: v c# jsem si udělal program na start stop VPN služby
cílem je, aby si uživatel s právy user mohl restatovat VPNku pomocí programu, který má na to má oprávnění
problém je, že program na restart služby funguje pouze, pokud je Spuštěn jako administrator přes kontextové menu
jinak havaruje

System.InvalidOperationException: Nelze otevřít službu OpenVpnService v počítači .. --->
System.ComponentModel.Win32Exception: Přístup byl odepřen

To je celkem logické a pochopitelné :)

Když upravím manifest, konkrétně

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

nemusím už program spouštět přes kontextové menu spustit jako administrator a program běži s mými právy Administratora
To je fajn....

Ovšem jak udělám, aby program byl spuštěný pod lokal adminem, ale byl použitelný obyč userem?

domníval jsem se, že systémová runas mi povolí spustit muj program uživatelem s oprávněním uživatele admin
Bohužel runas zkolabuje

c:\Archiv\c#\TestNetworkGui\TestNetworkGui\bin\Debug>runas /noprofile /user:%computername%\admin TestNetworkGui.exe
Zadejte heslo pro NB1052\admin:
Attempting to start TestNetworkGui.exe as user "NB1052\admin" ...
RUNAS ERROR: Unable to run - TestNetworkGui.exe
740: Požadovaná operace vyžaduje zvýšená oprávnění.

když v manifestu změnim direktivu requestedExecu­tionLevel zpět na

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

tak runas funguje

c:\Archiv\c#\TestNetworkGui\TestNetworkGui\bin\Debug>runas /noprofile /user:%computername%\admin TestNetworkGui.exe
Zadejte heslo pro NB1052\admin:
Attempting to start TestNetworkGui.exe as user "NB1052\admin" ...

ale zase, i když to běží uživatelem pod local admin (v procesech je je vidět, že to gui beží pod admin), tak to patrně není "vyeskalovaný" a při pokusu ovládat službu zase dostanu

System.InvalidOperationException: Nelze otevřít službu OpenVpnService v počítači .. --->
System.ComponentModel.Win32Exception: Přístup byl odepřen
   --- Konec trasování zásobníku pro vnitřní výjimku ---
   v System.ServiceProcess.ServiceController.GetServiceHandle(Int32 desiredAccess)
   v System.ServiceProcess.ServiceController.Start(String[] args)

předpokládal jsem /špatně/ , že runas to vyeskaluje se vším všudy, stejně jako kontextová nabídka Spustit jako správce

a zde jsem v háji a už mě nenapadá, jak to udělat, napadá někoho jak na to?

Díky všem za kopanec
Dejma

 
Odpovědět
24.11.2020 15:15
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
dejma
Člen
Avatar
dejma:25.11.2020 12:26

pro ty, kteří by se s tím taky babrali, řešení je zde
http://woshub.com/…ows-service/
vydal jsem se cestou GPO , process explorer upravy perms služby na skupinu a distribuci reg klíče - funkční, přesně jak potřebuji
dat uživatele do skupiny na doméně, gpočkem mu nastavit registry a program oblsuhující službu openvpnservice funguje jak je třeba...

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět
25.11.2020 12:26
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.