Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   RUNAS hat weniger Rechte? (https://www.delphipraxis.net/212953-runas-hat-weniger-rechte.html)

himitsu 28. Apr 2023 10:25

Betriebssystem: Win 10

RUNAS hat weniger Rechte?
 
Moin,

kann es sein, dass RUNAS irgendwo weniger/eingeschränkte Rechte bekommt, als ein "Als Administrator ausführen" :?:
Selber Benutzer mit passenden Rechten (Gruppe Administratoren).



Eine Batch startet sich selber mit RUNUS nochmal neu (wenn was nicht ging)
Code:
SET /P AdminName=Name des Admin-Kontos eingeben:
RUNAS /user:%COMPUTERNAME%\%AdminName% "\"%~dpf0\" -admin"
und startet dann z.B. die Installation eines Services (Delphi).
Bei der Installation knallt es dann mit Fehlercode 250477278 ... und ihr ahnt es vielleicht $0EEDFADE=cDelphiException.

Noch nicht rausgekommen wo genau, aber vermutlich z.B. beim Laden der Config > Zugriff auf Dateien oder beim Schreiben in die Registry HKLM.
Da die Exception bis ins System kommt, wurde sie somit nirgendwo abgefangen und steht damit auch nicht in unseren Log.




Das Selbe direkt mit "Als Administrator ausführen" gestartet läuft ohne Probleme.




Jetzt erstmal einfach das RUNAS durch eine Fehlermeldung ersetzt,
aber sind jemandem damit Gründe/Probleme bekannt?


Beim Starten als Admin ist zwar das Arbeitsverzeichnis zu Beginn C:\Windows\System32,
aber da das entsprechend zurückgesetzt wird
Delphi-Quellcode:
cd /d "%~dp0"
, gibt es eigentlich keinen Unterschied. :gruebel: (Verzeichnisse usw. angezeigt/geprüft)

Papaschlumpf73 28. Apr 2023 15:12

AW: RUNAS hat weniger Rechte?
 
Da gibt es auf jeden Fall einen Unterschied. Selbst wenn ich als Admin angemeldet bin, muss ich gelegentlich für Installationen einen Extra-Hinweis abnicken oder "Als Administrator auführen" - obwohl ich schon als Admin angemeldet bin. MS hat das (glaube ich) gemacht, weil so viele Privatleute immer als Admin angemeldet sind. Die sollen damit wohl geschützt werden. Irgendwas war da...

himitsu 28. Apr 2023 15:50

AW: RUNAS hat weniger Rechte?
 
Ja, das ist normal/richtig so. Wenn du dich als Benutzer mit Administratoren-Rechten im Windows anmeldest (und das UAC nicht deaktiviert wurde),
dann bist du erstmal mit "eingeschränkten" Rechten unterwegs.


Wenn da also ein Programm startet, dann geschieht das auch erstmal mit eigeschränkten Rechten.
Im Taskmanager > Details > die Spalten Heraufgestuft (Ja ist alles erlaubt) und UAC-Virtualisierung (irgendwelche umgeleitete APIs)

Aber beim "Ausführen als" bzw. RUNAS sollte (dachte ich) eigentlich ALLES erlaubt sein, also das Programm mit uneingeschränktem Kontext starten.



Unser Problem ist, dass "Ausführen als" aus der Console scheinbar anders reagiert, als aus dem Explorer heraus.

Papaschlumpf73 28. Apr 2023 15:56

AW: RUNAS hat weniger Rechte?
 
Guck mal hier:
https://superuser.com/questions/5227...admin-accounts

Dalai 28. Apr 2023 15:57

AW: RUNAS hat weniger Rechte?
 
RunAs führt ein Programm als anderer Nutzer aus. Ob das zufällig derselbe Nutzer ist, wie der der RunAs ausgeführt hat, spielt keine Rolle. Erhöhte Rechte erhält man damit aber nicht, soweit ich weiß. Oder kommt da bei dir eine UAC-Abfrage?

Für solche Zwecke gibt es Elevate: https://code.kliu.org/misc/elevate/

Grüße
Dalai

jaenicke 28. Apr 2023 16:00

AW: RUNAS hat weniger Rechte?
 
Zitat:

Zitat von Papaschlumpf73 (Beitrag 1521768)
Da gibt es auf jeden Fall einen Unterschied. Selbst wenn ich als Admin angemeldet bin, muss ich gelegentlich für Installationen einen Extra-Hinweis abnicken oder "Als Administrator auführen" - obwohl ich schon als Admin angemeldet bin. MS hat das (glaube ich) gemacht, weil so viele Privatleute immer als Admin angemeldet sind. Die sollen damit wohl geschützt werden. Irgendwas war da...

Runas startet einfach unter dem genannten Benutzer, aber ohne Adminrechte. Wenn du das möchtest, brauchst du ein Tool, das das Verb runas verwendet, wie es auch in ShellExecute passiert.

Ich habe das einfach aus der Dienst-Exe heraus gemacht. Die hat sich ggf. selbst als Admin erneut gestartet, um sich zu installieren. (Man kann ja einfach den "Eltern-Prozess" prüfen, dann weiß man, ob man durch die services.exe gestartet wurde, kann so also auch eine normale Oberfläche zur Steuerung der Installation usw. anzeigen, wenn die Dienst-Exe manuell gestartet wird.)

Alternativ kannst du die Powershell verwenden:
Code:
powershell iex "\"start -v runas cmd.exe\""


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz