AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 44031
Accepted
Jeff Leonard
Jeff Leonard
Asked: 2009-07-23 06:07:29 +0800 CST2009-07-23 06:07:29 +0800 CST 2009-07-23 06:07:29 +0800 CST

单独限制用户在 Windows 计算机上运行某些程序

  • 772

我有一个用户在工作中整天玩游戏,我想单独控制他是否以及何时能够运行他的游戏。

有没有办法为程序何时允许运行和何时不允许运行设置时间表?

windows
  • 7 7 个回答
  • 2611 Views

7 个回答

  • Voted
  1. Evan Anderson
    2009-07-23T08:03:47+08:002009-07-23T08:03:47+08:00

    我会权衡答案,但我也会回应评论中所说的话。这是一个可怕的想法。你有一个管理问题,而不是技术问题。虽然我知道你的“老板”要求你为他们解决他们的问题,但我认为你需要让他们知道这个问题没有技术解决方案。

    您正在查看的 Microsoft 解决方案是Software Restriction Policies。您可以定义各种标准来允许/禁止程序执行。

    以“允许一切,阻止异常”模式(微软称为“无限制模式”)运行将无济于事。用户可以重命名文件或复制文件,并在末尾附加一个垃圾字节以消除加密哈希。

    在“不允许的模式”中,只允许明确允许的程序或路径运行,软件限制策略确实有效。(需要注意的是,如果用户具有“管理员”权限,那么无论您如何配置它,您试图阻止他们的尝试都是无效的。)对于非管理员用户和“不允许模式”中的一些定义良好的路径(路径用户无法写入文件的地方)您可以出色地完成使 Windows XP 防止未经授权的软件运行的工作。

    显然,作为“全部拒绝,允许显式”架构意味着设置它需要更多的工作,但“胜利”是它确实可以阻止几乎所有不需要的软件在计算机上运行(甚至是“存在”在用户文件夹中的软件)有权写信——例如,谷歌浏览器的一个技巧)。

    我怎么强调都不过分,你试图用技术手段解决管理问题。这是浪费时间、浪费精力和制造比你“解决”更多的问题的秘诀。除非您在不允许的模式下执行非常激烈的操作,例如软件限制策略(并剥夺用户的管理员权限),否则您将一事无成。如果您确实采取了如此严厉的措施,那么您最终将花费的时间和金钱比管理层只是“男人起来”(或“女人起来”,视情况而定)并完成他们的工作所花费的时间和金钱要多得多。

    • 12
  2. Best Answer
    user13846
    2009-07-23T06:27:46+08:002009-07-23T06:27:46+08:00

    不久前,我与网络上的某个人遇到了这个确切的问题。

    为了在核心时间控制这种行为,我编写了下面的脚本。通过在 Cygwin shell 中使用 Windows 中的已调度任务运行它,您可以在您选择时运行它,并让调度程序在您希望用户的程序重新开始工作时终止该作业。这在 unix 机器上不起作用,因为这是一个使用 windows 命令和 BASH shell 脚本的混合脚本。另外值得注意的是,如果您想避免使用 Windows 调度程序,可以在 cygwin shell 中将其设置为 CRON 作业。

    先决条件
    1) Cygwin 加载到您控制的系统上,该系统与用户位于同一网络上。(我为此使用了我的管理系统,因为我已经有 Cygwin) 2)在运行软件的系统上具有管理权限的用户帐户。

    背景
    我建议不要使用域管理员帐户或本地管理员,因为如果您的脚本被泄露,它将暴露您的管理员密码。创建一个离散的探测本地帐户。我建议使用听起来像是来自计算机供应商的一种。

    脚本的详细分解
    在此示例中,HQ-WS-599 是用户所在的工作站 hpassistant 是我在此用户系统上创建的本地用户帐户,/P 引用帐户密码。warcraft.exe 和代码下面列出的两个是我决定限制的三个程序。sleepytime 变量决定了它尝试通过网络访问并终止您定义的进程的频率。

    它是如何工作的?
    当我开始使用这个脚本时,我发现它运行起来非常棒。即使是非常精通技术的用户也很难弄清楚这一点。如果没有嗅探器或其他有洞察力的工具,除了进程在没有通知的情况下自发消失之外,您不会看到任何迹象表明它正在运行。

    现在进入脚本...

    #!/usr/bin/bash
    
    var0=1
    LIMIT=1
    SleepyTime=45
    
    while [ "$var0" -eq "$LIMIT" ]
    #      ^                    ^
    # Spaces, because these are "test-brackets" . . .
    do
      taskkill /S HQ-WS-599 /U hpassistant /P hpassistpw!2 /IM "warcraft.exe"
      taskkill /S HQ-WS-599 /U hpassistant /P hpassistpw!2 /IM "solataire.exe"
      taskkill /S HQ-WS-599 /U hpassistant /P hpassistpw!2 /IM "freecell.exe"
    
      #             ^           Space, to separate printed out numbers.
    
      # var0=`expr $var0 + 1`   # var0=$(($var0+1))  also works.
                              # var0=$((var0 + 1)) also works.
                              # let "var0 += 1"    also works.
      sleep $SleepyTime
    done                      # Various other methods also work.
    
    echo
    
    exit 0
    

    我希望这个对你有用

    • 3
  3. Sean Earp
    2009-07-23T08:20:09+08:002009-07-23T08:20:09+08:00

    对所有“这是人的问题,而不是技术问题”的评论 +1。

    但是...如果必须,这将是使用Sysinternal 的 PsTools的好地方。您可以使用PsList显示远程框上正在运行的进程,并使用 PsKill远程终止游戏进程。

    • 3
  4. David Yu
    2009-07-23T08:50:01+08:002009-07-23T08:50:01+08:00

    来自 sysinternals 的PSKILL将允许您远程终止进程。您可以在系统上设置一个 .cmd 并将其放入任务调度程序中,以每 5、10 或 15 分钟执行一次。

    • 2
  5. Ward - Reinstate Monica
    2009-07-23T09:02:19+08:002009-07-23T09:02:19+08:00

    如果管理层不按他们应该的方式处理这个问题,那么告诉他们是的,你可以处理它,但不能像限制他们何时可以玩游戏那样半途而废。从长远来看,小心翼翼地解决问题不会有帮助。

    我会删除或重命名可执行文件。如果它是扫雷或心脏或类似的东西,你应该完成。如果这是他们自己安装的游戏,请提醒他们不要在公司计算机上安装自己的软件。如有必要,删除他们的管理员访问权限。

    • 1
  6. Dennis Williamson
    2009-07-23T10:39:21+08:002009-07-23T10:39:21+08:00

    我会通过记录您被要求做的事情、由谁、何时以及您为实施它而采取的步骤以及任何其他相关的沟通或行动/反应来记录 CYA。

    • 0
  7. Nasa
    2009-08-04T06:19:02+08:002009-08-04T06:19:02+08:00

    使用 GPO 并实施软件限制策略。不幸的是,它要么关闭,要么打开。使用 taskkill 不会阻止用户再次启动应用程序。

    • 0

相关问题

  • SNMP HOSTMIB.MIB 未加载?

  • 最好的点对点 VPN?

  • 如何在笔记本电脑上使用 Tobit David?[关闭]

  • 无法安排任务(访问被拒绝)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve