2

大家好,我有一个 powershell MTA(使用 winForms 的 GUI 脚本),它运行良好,让脚本名称为“ENDUserMTA.ps1”,它会调用某些命令并执行一些真正需要管理员权限的操作。当手动运行或通过任务计划程序运行或通过 [registry] RunOnce 或 Run 或任何有管理员权限的情况下设置时,这工作正常..

问题是我想在 END 用户笔记本电脑上调用此脚本并让他们使用它[交互式]我到目前为止尝试过的选项:

  1. 尝试在任务管理器系统帐户中安排“ENDUserMTA.ps1”[使用运行任务时,使用以下用户帐户] - 这将启动并运行 NOT INTERACTIVE [因为系统帐户没有交互式会话]

  2. 尝试使用具有管理员权限的不同用户帐户在任务管理器中安排“ENDUserMTA.ps1”[使用运行任务时,使用以下用户帐户] - 这再次启动,但 GUI 不会显示给没有登录的最终用户管理员权限,而不是仅显示给在选项下设置的用户 [运行任务时,使用以下用户帐户]

我的情况是无法创建 PSSessions 或 Delegated Remoting。我现在在森林中间​​,无处可去!!!

不知道如何以管理员身份向没有管理员权限登录机器的用户调用脚本..

我到底需要什么或类似的解决方案:在安排此脚本时,我安排脚本在登录 [任何用户] 处启动,脚本完成后它将删除预定任务

请帮助..巴拉吉

4

1 回答 1

0

从 Vista 开始,出于安全原因,Microsoft 已经开始分离 UI 堆栈。

我对您的问题的建议是更改代码的体系结构以创建两个脚本。

  • 第一个没有 UI 的将被安排具有管理权限

  • 带有 UI 的第二个将以用户权限启动,并将成为第一个的客户端。

您可以在两个脚本之间使用进程间通信,但是您会遇到一个安全问题,您的服务器部分需要特定的 ACL 来允许客户端部分进行连接。

它存在其他方式在脚本之间进行通信,但一方面使用异步 UI 架构并不容易。使用托管代码(.NET 代码)或本机代码(非托管代码)会很简单。对我来说,即使脚本容量非常大,因为 PowerShell 是在 .NET 之上构建的,但你仍然处于脚本编写位置的限制。

于 2014-07-05T07:21:28.553 回答