为其他登录用户打开Interactive PowerShell GUI脚本

时间:2014-07-05 06:02:58

标签: powershell interactive-shell

Hello Folks,             我有一个powershell MTA(使用winForms的GUI脚本),效果很好,让我们把脚本名称设置为“ENDUserMTA.ps1”,它会调用某些命令,并做一些真正需要管理员权限的事情。手动或通过任务调度程序运行时,或通过[注册表] RunOnce或Run或其他任何有管理员权限的设置时,这可以正常工作..

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

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

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

  3. 我的情况是无法创建PSSession或Delegated Remoting。我现在是森林的中间,没有去哪里!!!

    不确定如何以管理员方式将脚本调用给已登录没有管理员权限的计算机的用户。

    我确切需要或类似的解决方案:在安排此脚本时,我安排脚本启动atlogon [任何用户],脚本完成后将删除计划任务

    请帮忙.. 巴拉吉

1 个答案:

答案 0 :(得分:0)

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

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

  • 第一个没有用户界面的将被安排具有管理权限

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

您可以在两个脚本之间使用Inter-Process Communication,但是您将遇到安全问题,服务器部分需要特定的ACL以允许客户端部分连接。

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