GPO:用户登录脚本未运行

GPO:用户登录脚本未运行

我有一个 GPO,它链接到包含计算机的 OU。环回处理已激活并设置为合并。在 GPO 的用户部分中,我定义了一个 powershell 脚本,该脚本基本上检查它是否在重新模式桌面会话中运行(if ($env:SESSIONNAME -ne 'Console')),然后尝试根据对 $env:CLIENTNAME 的修改设置环境变量。

但是脚本似乎不起作用,因为执行时没有 $env:CLIENTNAME。我该如何修复这个问题?

我已经尝试启用和禁用“同步运行登录脚本”。如果我启用它 - 没有运气,这似乎合乎逻辑。当设置为“未配置”时,会发生上述情况。感谢您的意见。

[编辑]

当我通过“用户配置 => 策略 => 管理模板 => 系统 => 登录 => 在用户登录时运行这些程序”调用脚本时,它似乎可以工作。但是,并非对每个用户都有效,并且具有随机延迟。

还有其他方法可以使用 powershell 查询 %CLIENTNAME% 吗?例如向远程桌面服务询问已登录的用户...您能看到我指向哪里吗?

答案1

此链接帮助我解决了我的问题:

http://rcmtech.wordpress.com/2011/06/09/how-to-get-clientname-within-logon-script-on-server-2008-r2-xenapp-6/

现在我正在解析 qwinsta 的输出并从注册表中读取客户端名称,该名称比 var %CLIENTNAME% 更早可用

Function Get-ClientName 
{
    $session = qwinsta $env:USERNAME
    $sessionId = $session[1].subString(39,9).Trim()

    return (Get-ItemProperty "HKCU:\Volatile Environment\${sessionId}\" -Name CLIENTNAME).CLIENTNAME
}

然后我可以从“用户配置=> 策略=> Windows 设置=> 脚本=> 登录...”加载我的脚本

相关内容