C# 我想在具有管理员权限的有限帐户中运行我的功能

C# 我想在具有管理员权限的有限帐户中运行我的功能,c#,least-privilege,C#,Least Privilege,我想在一个有限的用户帐户下运行我的程序,但在windows XP上具有管理员权限 我找不到答案。我想我可以用两种方法: 以另一种方式运行我的程序,如程序或服务 使用PrincipalPermission space之类的方法运行我的函数 但是我不能解决这个问题。您看过“runas”命令吗?例如: C:\> runas /noprofile /netonly /user:MYCOMPUTER\testuser "C:\Program Files\My Special Program\Prog

我想在一个有限的用户帐户下运行我的程序,但在windows XP上具有管理员权限

我找不到答案。我想我可以用两种方法:

  • 以另一种方式运行我的程序,如程序或服务
  • 使用PrincipalPermission space之类的方法运行我的函数
  • 但是我不能解决这个问题。

    您看过“runas”命令吗?例如:

    C:\> runas /noprofile /netonly /user:MYCOMPUTER\testuser "C:\Program Files\My Special Program\Program.exe"
    
    你看过“runas”命令了吗?例如:

    C:\> runas /noprofile /netonly /user:MYCOMPUTER\testuser "C:\Program Files\My Special Program\Program.exe"
    
    我想在一个安全的环境下运行我的程序 有限的用户帐户,但具有 管理员权限

    这是办不到的。受限用户没有管理员权限。您需要以管理员用户的身份运行它,例如runas

    我想在一个安全的环境下运行我的程序 有限的用户帐户,但具有 管理员权限



    这是办不到的。受限用户没有管理员权限。您需要以管理员用户的身份运行它,例如使用runas。

    解决此问题的一种方法是将程序分为两部分。一部分作为windows服务,另一部分作为用户应用。根据需要的访问级别,可以将服务设置为作为网络服务、本地服务或本地系统运行。任何需要管理员权限的操作都将由Windows服务执行。用户应用程序可以负责显示用户界面和其他类似内容。您的应用程序之间也需要某种IPC(进程间通信)来促进这一点。

    解决这一问题的一种方法是将程序分为两部分。一部分作为windows服务,另一部分作为用户应用。根据需要的访问级别,可以将服务设置为作为网络服务、本地服务或本地系统运行。任何需要管理员权限的操作都将由Windows服务执行。用户应用程序可以负责显示用户界面和其他类似内容。您的应用程序之间也需要某种IPC(进程间通信)来实现这一点。

    这取决于用户。你无法控制它。你的应用程序到底需要什么管理权限?亲爱的大卫。。。我希望我的程序可以访问系统的所有资源。。。我的用户在有限用户和我的程序控制中登录并帮助他们…这取决于用户。你无法控制它。你的应用程序到底需要什么管理权限?亲爱的大卫。。。我希望我的程序可以访问系统的所有资源。。。我的用户在受限用户和我的程序控件中登录并帮助他们…作为localsystem@David,不一定。这取决于你想做什么。此外,您可以根据需要运行服务帐户。好的做法是使用一个只提供您所需的最低权限的帐户。将sql server作为本地系统运行是不好的做法,因为它不需要所有权限,可以作为网络服务正常运行。我不知道他的应用程序需要对系统做什么,所以不能说。您可以进入您的CP->Services,看到大量服务作为本地系统运行,他们这样做是有原因的,而不仅仅是错误的做法。@can:一旦应用程序升级到本地系统,所有赌注都将被取消。Microsoft(和许多安全研究人员)建议您以有限用户的身份运行应用程序,并以有限用户的身份编写软件,因为以管理型帐户运行是非常危险的。@0A0DA我完全知道这一点。正如我所说,我们不知道应用程序想要做什么。也许它真的需要对系统进行低级别访问。也许不是。这取决于应用程序希望在系统上执行的操作。我以本地系统为例。我更新了我的答案以反映这一点。以localsystem@David,不一定。这取决于你想做什么。此外,您可以根据需要运行服务帐户。好的做法是使用一个只提供您所需的最低权限的帐户。将sql server作为本地系统运行是不好的做法,因为它不需要所有权限,可以作为网络服务正常运行。我不知道他的应用程序需要对系统做什么,所以不能说。您可以进入您的CP->Services,看到大量服务作为本地系统运行,他们这样做是有原因的,而不仅仅是错误的做法。@can:一旦应用程序升级到本地系统,所有赌注都将被取消。Microsoft(和许多安全研究人员)建议您以有限用户的身份运行应用程序,并以有限用户的身份编写软件,因为以管理型帐户运行是非常危险的。@0A0DA我完全知道这一点。正如我所说,我们不知道应用程序想要做什么。也许它真的需要对系统进行低级别访问。也许不是。这取决于应用程序希望在系统上执行的操作。我以本地系统为例。我更新了我的答案以反映这一点。是的。。我看到了解决办法。。但在该解决方案中,我的管理员帐户必须有一个密码,如果我想更改此密码,我必须更改某些内容并向我的程序发送新密码。。我希望我的程序不需要管理员密码登录或执行某些操作…是。。我看到了解决办法。。但在该解决方案中,我的管理员帐户必须有一个密码,如果我想更改此密码,我必须更改某些内容并向我的程序发送新密码。。我想我的程序不需要管理员密码登录或做什么…我认为这是一个很好的解决我的问题的好办法。。。我使用服务来运行我的程序,但我仍然不能通过服务来运行GUI应用程序…我认为这是解决我问题的好办法。。。我使用服务运行我的程序,但我仍然不能通过服务运行GUI应用程序。。。