使用组策略配置所有用户登录时自动运行PowerShell脚本

在所有用户登录时自动运行PowerShell脚本 2


需求

在所有用户登录时自动运行PowerShell脚本,具体要求将当前用户的用户名和当前时间写在文本文件中。

方案

可以使用组策略来完成这一需求,具体设置可以参考如何修改在启动 Windows XP 时运行的程序列表

容易遇到的问题

本文说下,我设置过程中遇到的几个问题。

设置方式

因为是针对所有用户,请在组策略的计算机配置中设置,而不要设置在用户配置中。

路径问题

上面的设置中我们不能像在cmd或者powershell控制台中直接键入powershell或者powershell.exe来启动powershell,而是需要全路径,如I:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

权限问题

日志的路径需要选择一个所有用户都有权限写入的一个路径。

设置值样例

c:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command "& { ('time={0},user={1}' -f (get-date),(whoami)) | Out-File "C:\test\RunAll.log" -Append  }"

测试用例

测试用例1

注销账户,再使用几个不同的账户登录系统,然后检查日志文件。

PS> Get-Content C:\test\RunAll.log
time=2014/1/13 23:55:15,user=mosser-win7\mosser
time=2014/1/13 23:57:13,user=mosser-win7\test1
time=2014/1/13 23:59:18,user=mosser-win7\mosser

测试用例2

检查普通用户能否禁用或删除上面的配置。

使用组策略配置所有用户登录时自动运行PowerShell脚本

使用组策略配置所有用户登录时自动运行PowerShell脚本

本文链接: https://www.pstips.net/run-powershell-scripts-when-each-user-login-on.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

回复 codecook 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

2 条评论 “在所有用户登录时自动运行PowerShell脚本

  • codecook

    在测试时发现如果放到计算机配置的话,这样第一次开机脚本或程序会运行,而注销或切换用户后再次登录,进程就结束了。

    • Mooser Lee 文章作者

      这里有个区别:
      如果你的程序做一点事情,比如几秒钟就结束了,每次用户登陆时,都需要执行。用上文中的方法肯定可行的(我测试过的);如果你只是想让一个程序开机启动,像杀毒软件一样,长期运行。那你应当使用windows Run,或者直接做成一个Windows Service。