2010-06-09 4 views
0

Je dois désactiver et activer le gestionnaire de tâches de mon application. Je le fais pour mon application Kiosque. Je sais que je peux faire cela en changeant la clé dans le registre en utilisant le code ci-dessous. Mais le problème est mon application de kiosque s'exécutera dans le compte d'utilisateur limité qui ne pas permettre à l'application de changer la clé dans le niveau de registre.Désactiver le Gestionnaire des tâches à l'aide de C# du compte utilisateur limité

code fonctionne parfaitement compte Administrateur:

RegistryKey regkey; 
     string keyValueInt = "1"; 
     string subKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"; 
     regkey = Registry.CurrentUser.CreateSubKey(subKey); 
     regkey.SetValue("DisableTaskMgr", keyValueInt); 
     regkey.Close(); 

Comment puis-je obtenir ce compte utilisateur limité?

+3

S'il vous plaît ne pas rediffuser questions. Si vous avez plus à ajouter, modifiez votre question existante. [Désactivation du gestionnaire de tâches à l'aide de C# dans la machine durcie par le système d'exploitation] (http://stackoverflow.com/questions/2986782/disabling-task-manager-using-c-in-os-hardened-machine) –

+0

Je pense que cette question est totalement différente de mon ancien poste. Je suis d'accord qu'il s'agit de Task Manager.Mais la raison de cette question est différente. C'est à propos de compte d'utilisateur et non OS Hardening. – Anuya

Répondre

0

Le code requiert un privilège élevé pour accéder au registre. Cependant, il y a juste un fragment de code qui nécessite ces permissions supplémentaires. Pour gérer de tels scénarios, l'usurpation d'identité est utilisée, c'est-à-dire que vous exécuterez cette application en tant qu'utilisateur normal seulement, mais ce morceau de code particulier sera exécuté comme si vous étiez un administrateur.

http://msdn.microsoft.com/en-us/library/system.security.principal.windowsimpersonationcontext.aspx

0

Lors du déploiement de votre application sur la machine cible, vous avez vraisemblablement un accès administratif à un moment donné, oui? Si oui, sachez que les clés de registre sont des objets sécurisables Win32.

Connectez-vous en tant qu'administrateur, cliquez avec le bouton droit sur une clé de registre, choisissez «Autorisations» et donnez lecture/écriture/etc. droits d'accès au compte d'utilisateur dans lequel votre application sera exécutée. Cliquez sur le bouton avancé et assurez-vous de donner les mêmes permissions à toutes les sous-clés puisque vous créez des clés avec votre application.

Pour automatiser le déploiement de votre application, ces étapes peuvent être effectuées par programme à partir d'un compte d'utilisateur administrateur en utilisant les enveloppes du framework .NET sur l'API de sécurité Win32.

De toute évidence, cette solution crée un trou de sécurité. Vous donnez à ce compte d'utilisateur des droits d'accès qui, autant que je sache, peuvent être exploités pour obtenir un accès root. Sans une enquête approfondie sur les effets secondaires du gestionnaire de tâches, vous ne pouvez pas être sûr de la portée du trou. Puisque vous parlez d'une application de kiosque, il semble probable que ce ne sera pas un problème pour vous, mais je voulais juste vous assurer que vous connaissez les conséquences de vos actions. Si vous voulez une application véritablement sécurisée, vous devez créer un service qui s'exécute dans un compte administratif et implémenter une API qui fournit uniquement les fonctionnalités du gestionnaire de tâches dont vous avez vraiment besoin plutôt que d'exposer l'ensemble. chose et exposer l'API à travers des tuyaux ou de la mémoire partagée, ou un autre mécanisme de communication inter-processus.

0

Pour les applications de kiosque, je créerais généralement une stratégie de groupe restrictive appliquée au démarrage. Avec le group policy editor, vous pouvez interdire à l'utilisateur d'accéder à la barre de démarrage, au gestionnaire de tâches, à ctrl alt delete, à Alt-Tab, Alt-F4, etc. Si vous ne pouvez pas obtenir ce type d'accès au système, votre application kiosque va avoir des problèmes.

1

Ouvrez le Bloc-notes, copiez et collez le code ci-dessous, sauf que Disable.reg et exécuter (double-cliquez sur le fichier):

Windows Registry Editor Version 5.00 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System] 
"DisableTaskMgr"=dword:1 
+0

L'importation dans le registre nécessiterait des droits d'administration, qui ne sont pas disponibles dans la question originale. – Nick

Questions connexes