繁体   English   中英

当SCCM部署Powershell脚本时,如何获取环境变量?

[英]How to get an environment variable in a Powershell script when it is deployed by SCCM?

我制作了一个脚本,用于自动更改和/或创建公司中所有员工的默认Outlook签名。

从技术上讲,它获取部署脚本的环境变量用户名,访问人员数据库以获取有关该用户的一些信息,然后通过替换链接的docx模板中的值来创建3个不同的文件用于签名。 非常简单和合乎逻辑。

经过不同的测试之后,当您通过PowerMD 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和机器,然后在人员数据库中获取信息。

我仍然会检查Matt的想法,这个想法很有趣,并且在某种程度上更准确。

谢谢你们 !

您如何称呼环境变量? $Env:computername在以前通过SCCM推出的脚本中对我有用。

为什么不枚举“%SystemDrive%\\ Users”文件夹,排除某些内置帐户,然后批量处理所有这些帐户?

要使用UserName环境变量,脚本必须以登录用户身份运行,这还意味着所有用户都至少具有对职员数据库的读取权限,至少在我们的环境中,这是一个很大的难题。 -没有。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM