如何禁用我儿子帐户上特定程序的 UAC?

如何禁用我儿子帐户上特定程序的 UAC?

我看到很多关于如何在个人帐户上禁用特定应用程序的 UAC 的答案,但我还没有看到有人问或回答这个问题。

我们家有一台电脑。我们每个人都有一个帐户,我的帐户是管理员帐户。我儿子有一个他喜欢玩的游戏,但每次他启动它时,我都必须输入我的管理员密码。这显然很烦人,我宁愿一劳永逸地授予他权限。

我怎样才能做到这一点?

答案1

无法针对每个应用程序禁用 UAC。这样做也是非常不合逻辑的:如果标准用户不被授予管理员级权限,那么他就不能被允许以此类权限运行任何程序。问题出在游戏上,而不是 UAC。任何游戏都不应该要求拥有计算机的管理员权限(从而拥有破坏计算机的能力)。

答案2

您不需要禁用它,您需要确保应用程序不需要此类权限。虽然您可以去做所有这些,但最安全的方法是不这样做。进程监控可以帮助您找出需要“管理员”访问权限的路径和注册表项,授予他们所有管理员权限,然后以他的帐户运行游戏。

答案3

我可以这样做运行

下载并提取到用户可以访问的目录中。

启动 runasspcadmin.exe 并输入游戏路径 (C:\program files..\game.exe)、PC 名称(其中显示 localhost)、管理员用户名和密码。我将所有其他选项保留为默认设置。单击“保存加密文件”

现在用户可以使用解压目录中的“runasspc.exe”启动游戏。

为了方便起见,您可以在桌面上为其创建一个快捷方式,并将其重命名为游戏名称。您的密码信息存储在无法正常读取的 crypt.spc 文件中。

截屏

答案4

这是可行的,但您需要能够将管理员密码隐藏在编译的程序中(无论如何都不是完美的安全性,但足以让您的儿子无法了解管理员密码)。

首先psexec系统内部套件(可从 Microsoft 以 ZIP 文件形式获得)。 psexec允许您以其他用户身份运行程序(如果您知道其他用户的密码)。以下代码假定您已在 安装了它C:\sysinternals\psexec.exe。确保您儿子的帐户可以运行该程序。这将需要将安全设置更改为psexec.exe授予您儿子帐户读取和执行权限。

然后将下面的 C 程序编译成可执行文件(我们称之为rungame.exe),但更改代码以获得正确的psexec游戏路径名,并更改代码以一次设置一个字符的实际管理员密码(参见代码中的注释)。这就是我们在 EXE 中混淆管理员密码的方法。如果您没有 Microsoft 编译器(例如 Visual Studio),您可以安装赛格威,它具有 GCC 编译器。

然后给rungame.exe你的儿子(但显然不是源代码)。当他想要运行游戏时,他启动rungame.exe,这将以管理员身份启动游戏,而无需提示输入密码。

#include <windows.h>
#include <stdlib.h>

// Be sure to use double-backslashes as path separators in this pathnames!

char * psexec = "C:\\sysinternals\\psexec.exe";   // <-- CHANGE THIS PATH AS NEEDED
char * game = "C:\\path\\to\\game\\program.exe";  // <-- CHANGE THIS PATH AS NEEDED

int main()
{
    char cmd[1024] = { 0 };
    char pw[128] = { 0 };

    // Create the password ("hello" in this example) so that it does not appear as a string in the
    // compiled version of this program.
    pw[4] = 'o';
    pw[3] = 'l';
    pw[2] = 'l';
    pw[1] = 'e';
    pw[0] = 'h';    

    strcpy(cmd, "\"");
    strcat(cmd, psexec);
    strcat(cmd, "\" -d -u Administrator -p \"");
    strcat(cmd, pw);
    strcat(cmd, "\" \"");
    strcat(cmd, game);
    strcat(cmd "\"");

    system(cmd);

    return 0;
}

相关内容