C# Adminrechte zur veränderung des system32 order?

Hey Leute,

hab da ein großes Problem.
Ich möchte etwas im System32 Ordner ändern, brauche dazu aber Adminrechte.
Da die Pc´s auf die das Programm aufgespielt werden soll, aber nur von Usern genutzt wird, die dieses nicht besitzen, soll dass Programm bei jedem Systemstart automatisch ausgefürht werden, per Autostart oder dergleichen, allerdings ohne Admindaten jedes mal eingeben zu müssen. Der Systemstart wird übrigens durch ein Script ausgeführt.

Jetzt meine Frage.

Kann ich die Admindaten irgendwie im Programm hinterlegen, sodass dass Programm automatisch das ausführt, wass es denn soll…?

Vielleicht hilft dir ein Link von diesen weiter:
http://dotnet-forum.de/forums/p/2241/23035.aspx#23035
http://www.codeproject.com/KB/cs/cpimpersonation1.aspx
http://dotnet-snippets.de/dns/anwendung-unter-xpvist…

Gruß Wolfgang

naja, bin halt C# Anfängert und kann mit vielen Befehlen nicht wirklich was anfangen

Hallo Simon

Zu Beginn ganz kurz was Grundsätzliches. LogIn-Daten und Passwörter und so niemals hart kodieren. Ist unsicher und scheiße zu warten.
Meines Erachtens nach funktioniert dein Ansatz aber nicht. Das Programm kann nicht die Rechte unter denen es laufen soll bestimmen. Der Laufkontext wird durch denk aktuellen User determiniert. Das heißt anders herum wird ein Schuh daraus. Es gibt ja nicht nur Admin oder Normaler User, man kann Rechte sehr feingliedrig vergeben. Also die Nutzer bekommen keine vollen Root-Rechte sondern eben nur das Recht eine Datei zu schreiben.
Es gibt natürlich auch den runas - Batch-Befehl. Mit dessen Hilfe kannst du Programme unter bestimmten Nutzern laufen lassen. Ich könnte mir vorstellen das man da was zusammen basteln kann.
Ach ja was ich noch fragen wollte. Gibt es wirklich keine andere Möglichkeit als in System32 Daten zu ändern? Programme, die Adminrechte benötigen um zu laufen sind schon recht seltsam.
Wenn der Systemstart durch ein Skript durch geführt wird, läuft dieses ja auch mit bestimmten Rechten, kann nicht der Nutzer der das Skript ausführt auch dein Programm starten?

So das war es erst einmal von mir. Das sind nur die Überlegungen die mir gleich in den Sinn kamen. Bitte vergiss nicht das heute Montagmorgen ist. Vielleicht hat noch jemand eine bessere Idee.

Viele Grüße
Norman

Danke erstmal :wink:

Also ich geh dann jetzt mal ins Detail, was genau da passieren soll.

Zunächst einmal geht es um über 80 Computer, die dieses Programm aufgespielt bekommen sollen. Es liest Mac und Ip aus, schreibt diese auf den Windows-Anmeldebildschirm und soll diesen dann verwenden, um das überprüfen der Mac und Ip zu erleichern :wink:

Dieses Bild muss allerdings in den System32 Ordner eingefügt werden, damit es anzeigt wird und eben dazu braucht das Programm Adminrechte.

Hoffe ihr versteht was ich meine :wink:

Vielleicht bin ich etwas langsam. Du willst ein Programm ausführen noch bevor??? man sich in Windows einloggt? Dieses Programm soll dann den Anmeldebidschirm so verändern das MAC und IP angezeigt werden. Warum reicht es nicht das Ganze nach der Anmeldung anzuzeigen? Es gibt etliche Programme die Sysinfos praktisch als Desktop-Hintergrund anzeigen. Vorher brauche ich die Infos ja nicht. Vielleicht verstehe ich auch was Anderes unter einem Anmeldebildschirm?

Viele Grüße
Norman

glaube wir meinen das gleiche :wink:
ich meine Den Bildschirm, an dem ich Benutzerdaten eingebe…
das soll dazu dienen, damit man sich nicht an allen 80 pc anmelden muss, um mac und ip nachsehen zu können. Denn wenn diese auf dem Anmeldebilschirm stehen, spart man sich vieeeel Zeit :wink:

Hm du könntest das Programm beim System Start evtl. mittels einer Batch Datei starten, die das Programm als Admin startet und in der sind dann auch die Admin Daten gleich drin. Ist aber etwas unsicher, da ne Batch Datei von jedem ausgelesen werden kann und dann der User ja die Admin Daten hätte. Ne Möglichkeit um das Programmintern zu regeln fällt mir grad nicht ein… hm ausser… ja du könntest ein Start-Programm in C# schreiben, das dein Richtiges Programm als Admin startet und das bereits die Admindaten enthält. So wärs sicherer. Aber frag mich jetzt bloß net wie du das Coden könntest, bin grad etwas ausser übung.

Also will jemand der nicht an dem Rechner arbeiten will die IP und die MAC der Maschine heraus finden - richtig? Da es um Netzwerkadressierung geht handelt es sich also um ein LAN. Ich muss doch aber nicht vor dem Rechner sitzen um die IP und die Mac rauszubekommen. Man könnte einen Broadcast-Ping absetzen usw. Ich bin leider auch nur Software-Entwickler und kein Netzwerker. Es gibt für solche Aufgaben schon eine Menge Tools usw. Ich glaube es ist sinnvoller mit nem fähigen Netzwerkadmin zu reden als mit mir. Ich würde sogar soweit gehen und sagen es geht nicht anders. Ich kenne keine Möglichkeit in Windows Programme vor der Anmeldung auszuführen.

Viel Erfolg und viele Grüße
Norman

danke danke erstmal für die antworten, ich werd mich td mal weiter erkundingen. :wink: werds hier mal Posten wenn auf irgendeine art un weise hinbekommen haben =)

danke danke erstmal für die antworten, ich werd mich td mal weiter erkundingen. :wink: werds hier mal Posten wenn auf irgendeine art un weise hinbekommen haben =)

Hi,

ich habe mich damit nicht allzu ausführlich auseinander
gesetzt, aber du könnest mal einen Blick auf die
Process Klasse (http://msdn.microsoft.com/en-
us/library/system.diagnostics.process.aspx) und
diesbezüglich Process.StartInfo
(http://msdn.microsoft.com/en-
us/library/system.diagnostics.process.startinfo.aspx)
werfen. Ich vermute, du könntest auf diese Weise eine
Userapplikation beim Systemstart ausführen, die dann
das eigentliche Tool mit Adminrechten startet.

Jenachdem wie die Sicherheitsanforderungen sind, sollte
das Speichern der Admindaten jedoch mit Vorsicht
betrachtet werden.

Ein Beispiel ist unter folgendem Link zu finden:

http://www.codeproject.com/KB/dotnet/UserImpersonati…

Hi!

Erstell mal im Autostart eine Verknüpfung zu der EXE-Datei, rechtsklicke auf die Verknüpfung, gehe auf den Reiter „Kompatibilität“ und wähle unten „Berichtungsstufe - Programm als Administrator ausführen“.

Viele Grüße