D3v*_*r0n 0 windows-server-2008 iis-7 user-management scheduled-task group-policy
我目前有一个组策略启动脚本(CMD 文件)。它按预期在启动期间运行,但脚本调用的程序没有 UI。
例如,假设我将此命令作为我的启动脚本:
rundll32 shell32.dll,ShellExec_RunDLL "C:\Windows\System32\notepad.exe"
echo foo > C:\foo.txt
Run Code Online (Sandbox Code Playgroud)
^ 这会调用“记事本”来运行,并将输出写入文本文件 (foo.txt)。很简单。当组策略运行此脚本时,将生成文本文件并运行记事本。问题是记事本没有用户界面。我可以告诉它正在运行的唯一方法是通过任务管理器/进程。我已经验证它可以工作,但我需要记事本在运行时显示在我的任务栏中。
...根据此处的 TechNet/Microsoft:与 Microsoft 分配计算机启动脚本
启动脚本作为本地系统运行,并且它们具有与能够作为本地系统运行相关联的全部权限。
我的问题是我真的需要记事本程序 UI 来显示,并且在“本地系统”下运行时似乎无法做到这一点。
我想指出的是,我也在控制面板/管理工具下的“计划任务”中尝试过这个。我有相同的结果和相同的情况,我的脚本成功运行但从未显示记事本 UI。我也愿意接受使用 Task Scheduler 或不同方法的建议。谢谢!
让用户界面显示将是一个真正的痛苦。
首先,我会考虑将这些程序包装在服务包装器中(例如 Non-Sucking Service Manager)中,并让服务控制管理器在引导时启动它们。根据您的评论,这些程序确实应该被编码为 Windows 服务。(我喜欢的软件供应商停止编写那些需要我的服务器坐登录的,等等蹩脚的时钟进度投票程序似乎所有的非服务“服务”计划是这样的,例如。)
这并不能解决您的 UI 问题。如果不“帮助”该程序,您将无法在 Windows Server 2008 中的 Winlogon 之上启动 GUI 界面。您可以通过 Windows Server 2003 中的启动脚本运行程序,以在 Winlogon 上显示其 UI。现在要执行这样的操作,您需要使用 Winlogon 令牌的副本以及为 Winlogon 桌面设置的桌面创建一个进程。
您可能会弹出 UI 通过允许服务包装的程序与桌面交互,在登录后。也许。您可能也将自己暴露在“粉碎”攻击中。
如果这些是内部程序,您应该考虑更改它们,以便它们像真正的服务程序一样工作。管理 UI 应该通过 RPC 机制与后端服务进程对话。通过 TCP/IP 执行此操作,作为奖励,您可以在其他机器上运行管理程序。您将服务和 UI 结合在一起的整体方法不会给您最好的结果。
归档时间: |
|
查看次数: |
1530 次 |
最近记录: |