我有一个链接到包含计算机的OU的GPO。 环回处理被激活并合并。 在GPO的用户部分中,我定义了一个powershell脚本,基本上检查它是否在remode桌面会话中运行(if($ env:SESSIONNAME -ne'Console')),然后尝试根据修改设置环境variables$ env:CLIENTNAME。
然而,脚本似乎没有在执行时没有$ env:CLIENTNAME。 我怎样才能解决这个问题?
我已经尝试启用和禁用“同步运行login脚本”。 如果我启用它 – 没有运气,这似乎是合乎逻辑的。 当设置为“未configuration”时,发生上述情况。 感谢您的input。
[编辑]
当我通过“用户configuration=>策略=>pipe理模板=>系统=>login=>在用户login运行这些程序”调用脚本似乎工作。 但是不是每个用户都有一个随机的延迟。
是否有另一种方式,我可以使用PowerShell查询%CLIENTNAME%? 就像询问login用户的远程桌面服务一样…你能看到我指向的地方吗?
这个链接帮助我解决了我的问题:
现在我正在parsingqwinsta的输出并从registry中读取客户端名称,然后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 }
然后我可以从“User Configuration => Policies => Windows Settings => Scripts => Logon …”加载我的脚本。