在组策略中,我们可以使用启动/关机,登录/注销这些动作作为执行脚本的事件。

组策略中开机脚本与登录脚本所使用的用户身份_组策略

启动/关机脚本在计算机配置菜单下面,登录/注销脚本在用户配置菜单下面。顾名思义,计算机配置是全局的,权限肯定是比较高。用户配置是针对用户环境的,权限肯定是限定的。

我们通过一个实验来看看当运行 组策略-计算机配置-启动脚本,以及 组策略-用户配置-登录脚本 的时候,具体是用什么用户身份来运行的。

首先,windows环境变量里面,%username%是当前用户名,%userprofile%是当前用户配置路径,%homepath%是当前用户主目录路径,%appdata%是当前用户数据文件夹。whoami /user命令除了显示用户名还能显示SID。

写一个脚本包含如下内容:

whoami /user >>x:\test.txt

echo %username%,%userprofile%,%homepath%,%appdata%>>x:\test.txt

注意保存路径我们给它everyone读写权限。

然后分别做成开机脚本和登录脚本。

测试机电脑操作系统是win10,名称为test,使用users权限的账号名称为ceshi。

最后验证如下:

开机脚本的情况

whoami显示使用的是nt authority\system账号,sid是S-1-5-18

%username%是TEST$ ,——在电脑名称后加了$符号

%userprofile%是C:\Windows\system32\config\systemprofile

%homepath%显示为空

%appdata%显示为C:\Windows\system32\config\systemprofile\AppData\Roaming

登录脚本的情况

whoami显示使用的是 域名\ceshi,sid就是S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXX-XXXX

%username%是ceshi

%userprofile%是C:\Users\ceshi

%homepath%是\Users\ceshi

%appdata%是C:\Users\ceshi\AppData\Roaming


显然,开机脚本所使用的身份是system用户,具有超过administrators的权限

而登录脚本则是使用了当前登录用户的身份和权限。所以对于某些必须以管理员运行的命令若登录用户权限不够是用不了的。