【问题标题】:I want run my function in limited account with administrator permission我想在具有管理员权限的受限帐户中运行我的功能
【发布时间】:2011-08-09 13:15:31
【问题描述】:

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

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

  1. 通过程序或服务等其他方式运行我的程序
  2. 使用 PrincipalPermission 空间或类似方法运行我的函数

但我无法解决这个问题。

【问题讨论】:

  • 这取决于用户。你无法控制它。
  • 您的应用需要管理员权限吗?
  • 亲爱的大卫......我希望我的程序可以访问系统的所有资源......我的用户登录有限的用户和我的程序控制并帮助他们......

标签: c# least-privilege


【解决方案1】:

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

C:\> runas /noprofile /netonly /user:MYCOMPUTER\testuser "C:\Program Files\My Special Program\Program.exe"

【讨论】:

  • 是的..我看到了那个解决方案..但是在那个解决方案中,我的管理员帐户必须有一个密码,如果我想更改这个密码,我必须更改一些内容并将新密码发送到我的程序..我想要我的程序不需要管理员密码来登录或做某事......
【解决方案2】:

我想在一个 有限的用户帐户,但有 管理员权限。

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

【讨论】:

  • 我认为很好的解决方案可以解决我的问题...我使用服务来运行我的程序,但我仍然无法通过服务运行 GUI 应用程序...
【解决方案3】:

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

【讨论】:

  • 作为本地系统运行是不好的做法
  • @David,不一定。取决于你想做什么。此外,您可以随心所欲地运行服务帐户。最佳做法是使用能够为您提供所需权限的帐户。
  • sql server 作为本地系统运行是不好的做法,因为它不需要所有权限并且可以作为网络服务正常运行。我不知道他的应用程序需要对系统做什么,所以不能说。您可以进入您的 CP->Services 并查看大量作为本地系统运行的服务,他们这样做是有原因的,而不仅仅是不好的做法。
  • @Can:一旦应用程序被提升到本地系统,所有的赌注都没有了。 Microsoft(和许多安全研究人员)建议您以受限用户身份运行应用程序并以受限用户身份编写软件,因为以管理类型帐户运行非常危险。
  • @0A0DA 我完全清楚这一点。正如我所说,我们不知道应用程序想要做什么。也许它确实需要对系统的低级别访问。也许不吧。这取决于应用程序想要在系统上执行的操作。我以本地系统为例。我更新了我的答案以反映这一点。
猜你喜欢
  • 1970-01-01
  • 2016-09-28
  • 2021-05-23
  • 1970-01-01
  • 2018-11-16
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多