【发布时间】:2017-02-23 20:09:31
【问题描述】:
我制作了一个脚本来自动更改和/或创建我公司所有员工的默认 Outlook 签名。
从技术上讲,它获取部署脚本的环境变量用户名,访问人员数据库以获取有关此用户的一些信息,然后通过替换链接的 docx 模板中的值来创建 3 个不同的签名文件。非常简单和合乎逻辑。
经过不同的测试,当您直接在计算机上启动脚本时,它可以正常工作,无论是使用 Powershell ISE、直接通过 CMD 还是在 Visual Studio 中。但是当我们尝试使用 SCCM 部署它时,它无法获取任何环境变量。
你们中有人知道如何在 SCCM 部署脚本时获取环境变量吗?
这是我已经尝试过的:
$Name = [Environment]::UserName
$EnvVarUserName = Get-Item Env:\USERNAME
即使是这样的东西:
$proc = gwmi win32_process -Filter "Name = 'explorer.exe'"
$report = @()
ForEach ($p in $proc)
{
$temp = "" | Select User
$temp.user = ($p.GetOwner()).User
$report += $temp
}
提前致谢,祝大家有个愉快的一天!
[编辑]:
我找到了一种方法,虽然不是最好的,但它确实有效。我得到机器的名称,检查当笔记本电脑连接到我们的网络时它存储用户 ID 和机器的数据库,然后在员工数据库中获取信息。
我仍然会检查马特的想法,这个想法非常有趣,并且在某种程度上更准确。
谢谢大家!
【问题讨论】:
-
我以前从未见过。我一直使用
$Env:AppData成功地使用 SCCM 部署的脚本安装东西。在最坏的情况下,您可以从中解析出用户名。但我怀疑这里还有其他事情发生。
标签: powershell environment-variables sccm