[PROPOSAL] alternative Farbeistellung je nach Admin/User

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
Modem-Man
Junior Member
Junior Member
Posts: 9
Joined: 2008-06-23, 05:52 UTC

[PROPOSAL] alternative Farbeistellung je nach Admin/User

Post by *Modem-Man »

Ich halte es für sehr vorteilhaft, bereits an den Farbeistellungen des Commanders sehen zu können, ob das Benutzerkonto Konto zur Zeit zur Gruppe der Administratoren oder nur zur Gruppe der User gehört.

Das scheint im ersten Moment ungewöhnlich, weil viele User sicher immer als Admin unterwegs sind, aber grade mit Scripts wie "MachMichAdmin" von heise/c't oder DropMyRights von MS ergibt so etwas sehr viel Sinn!

Dazu wäre es denkbar, einfach einen 2. Satz Farbeinstellungen zu hinterlegen der mit einer frei wählbaren Benutzergruppe verknüpft wird. Am Start kann TC prüfen, ob der aktuelle User in dieser Gruppe ist und dann diesen 2. Farbset laden.

Danke, daß Du Dir Zeit genommen hast, meinen Vorschlag zu lesen!

mit besten Grüßen,
Modem-Man
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Spricht was dagegen, den TC mit verschiedenen wincmd.inis zu starten, je nachdem, welches Konto aktiv ist? Den Aufruf kannst Du gleich in der Batch unterbringen.

Alternativ kann man auch die entsprechende Sektion in der wincmd.ini vor dem TC-Start entsprechend manipulieren. Wenn Du die Sektion per RedirectSection umleitest in eine separate Datei, beschränkt sich die Manipulation auf das Umbenennen von zwei Dateien mit verschiedenen [Colors]-Sektionen.

Icfu
This account is for sale
Modem-Man
Junior Member
Junior Member
Posts: 9
Joined: 2008-06-23, 05:52 UTC

Post by *Modem-Man »

icfu wrote:Spricht was dagegen, den TC mit verschiedenen wincmd.inis zu starten, je nachdem, welches Konto aktiv ist? Den Aufruf kannst Du gleich in der Batch unterbringen.
Nee, das geht ja eben nicht! Es ist immer das selbe Konto aktiv. Das Konto wird nur zwischen den Gruppen hin & hergeschoben. Und das auch nur für einzelne Prozesse, ohne sich aus- und wieder einzuloggen.

Zur Erklärung: Das Konzept von "MachMichAdmin" ist, daß auch Otto-Normalfamilienvater nicht als Admin auf seinem Rechner unterwegs ist. Wenn er eine Anwendung startet, für die ausnahmsweise doch Admin-Rechte nötig sind, macht er das mit "MachMichAdmin.cmd Anwendung123.exe". Dann wird ein CMD-Prozeß gestartet für den der aktuelle User (nach Passworteingabe) in die Gruppe der Admins geschoben wird. Alle anderen Anwendungen laufen weiter im Normal-User-Kontext. Ein bißchen so wie "sudo" in Linux. Aus diesem CMD-Prozeß heraus kann man dann natürlich weitere Programme starten, so daß man leicht übersehen kann, daß man gerade einen TC mit Admin-Rechten gestartet hat.

Zur Erklärung II:
Gelegentlich braucht man noch das Script "Gruppenwechsel2" (ebenfalls von c't). Dies verschiebt den User nicht "per process" ind die Admins sondern permanent. Man wird ausgeloggt und meldet sich gleich wieder an - schon ist man mit seinem normalen Konto Admin, kann schlecht gemachte Software installieren ;-) und mit einem erneuten Druck auf "Gruppenwechsel2" wieder Normaluser werden. Auch hier habe ich keine Möglichkeit, die INI umzubiegen. Würde aber gerne sehen, daß ich z.B. vergessen habe, mich wieder aus den Admins zu entfernen...
icfu wrote: Alternativ kann man auch die entsprechende Sektion in der wincmd.ini vor dem TC-Start entsprechend manipulieren. Wenn Du die Sektion per RedirectSection umleitest in eine separate Datei, beschränkt sich die Manipulation auf das Umbenennen von zwei Dateien mit verschiedenen [Colors]-Sektionen.
Icfu
Das mit dem Redirect ist vollkommen an mir vorbeigegangen! Wie geht das?

Wenn ich wüßte wie, würde ich einen TC-Starter schreiben, der die aktuelle Gruppenzugehörigkeit abfragt, die INI umwidmet, den Commander Startet und die INI wieder zurückbiegt. An Programmierkenntnissen mangelt es hier leider genau an einer Stelle: wie frage ich <Current User> und dessen <Groups> ab? Kleiner Wink mit der entsprechenden WinAPI-Funktion würde reichen ;-) 15 Jahre C-Programmiererfahrung sind vorhanden...

Any hints?
Modem Man
User avatar
Dalai
Power Member
Power Member
Posts: 10004
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Wenn ich wüßte wie, würde ich einen TC-Starter schreiben, der die aktuelle Gruppenzugehörigkeit abfragt, die INI umwidmet, den Commander Startet und die INI wieder zurückbiegt. An Programmierkenntnissen mangelt es hier leider genau an einer Stelle: wie frage ich <Current User> und dessen <Groups> ab?
Relativ einfach: Zieh dir das MS-Tool ifmember.exe aus den Resource Kit und erstelle z.B. dieses Batch-Skript:

Code: Select all

ifmember.exe /list | findstr.exe /I /C:"Administratoren" >NUL && start "" "%ProgramFiles\Total Commander\totalcmd.exe" /i="admin.ini"
Alternativ kannst du es natürlich auch so machen wie die c't und den Befehl net localgroup verwenden statt ifmember.

So, ich denke, das ist Denkanstoß genug. Wenn du noch Fragen hast, dann frag einfach ;).

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
norfie²
Power Member
Power Member
Posts: 1038
Joined: 2006-02-10, 07:27 UTC

Post by *norfie² »

Wenn ich wüßte wie,
Steht im Klartext in MachMichAdmin.cmd. Suche nach "already_admin"
"War is evil, in so far as it makes more bad people than it takes away."
Immanuel Kant in "Perpetual Peace"
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

In die wincmd.ini schreibst Du das, TC vorher beenden:

Code: Select all

[Colors]
RedirectSection=colors.ini
TC starten und die Farben so einstellen wie Du sie als Admin haben willst. Von colors.ini eine Kopie als colors_admin.ini anlegen.
Das selbe Spielchen wiederholen für die Userfarben und von colors.ini eine Kopie als colors_user.ini anlegen.

TC folgendermaßen starten:

Code: Select all

net user %username% | find "Administratoren"
if errorlevel 1 (
copy colors_user.ini colors.ini
) else (
copy colors_admin.ini colors.ini
)
start "" totalcmd.exe
Icfu
Last edited by icfu on 2008-06-24, 11:31 UTC, edited 1 time in total.
This account is for sale
User avatar
norfie²
Power Member
Power Member
Posts: 1038
Joined: 2006-02-10, 07:27 UTC

Post by *norfie² »

Ich habe es bei mir "eleganter" geloest:
wincmd.ini wrote:[Colors]
RedirectSection=COLORS_%USERGROUP%.INI
totalcmd.cmd wrote:SET USERGROUP=ADMIN
net user "%username%" | find "Administrators"
if errorlevel 1 set USERGROUP=USER
TOTALCMD.EXE
Modem-Man
Junior Member
Junior Member
Posts: 9
Joined: 2008-06-23, 05:52 UTC

Post by *Modem-Man »

Hmmm,

ich war zwar drauf und dran, den C-Compiler vorzuglühen und per NetAccessGetUserPerms() oder AccessCheck() die Gruppenabfrage zu lösen (und dabei die Profile gleich mit zu verbiegen), aber Dein Vorschlag ...
norfie² wrote:Ich habe es bei mir "eleganter" geloest:
wincmd.ini wrote:[Colors]
RedirectSection=COLORS_%USERGROUP%.INI
totalcmd.cmd wrote:SET USERGROUP=ADMIN
net user "%username%" | find "Administrators"
if errorlevel 1 set USERGROUP=USER
TOTALCMD.EXE
... hat etwas bestechend einfaches!
Probiere ich die Tage mal aus und berichte, wie es mir in der Praxis so gefällt. Muß dann zwar bei einigen Leuten noch diverse Links vom TOTALCMD.EXE auf TOTALCMD_START.CMD verbiegen, aber auch dafür findet sich vmtl. ein Script

Danke soweit!
Modem Man
Post Reply