我正在尝试在SCCM中实现脚本部署程序包,该程序包旨在在特定ad OU组中新部署的工作站上执行。问题在于执行权;如果我以用户权限运行模式-i
部署程序包,则拒绝访问,如果我以管理员权限运行程序,则会添加错误的帐户。
我尝试在不对服务帐户凭据进行编码的情况下运行脚本,但是此操作标识了系统执行帐户,然后添加了凭据,并且仅对管理员用户有效。
$User = $env:USERNAME
$Computer = $env:COMPUTERNAME
$svcAcc = "xxx\svc_LocalAdmin"
$PasswordFile = ".\Password.txt" $KeyFile = ".\AES.key"
$key = Get-Content $KeyFile
$Cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $svcAcc,(Get-Content $PasswordFile | ConvertTo-SecureString -Key $key)
Invoke-Command -ComputerName $Computer -ScriptBlock {Add-LocalGroupMember -Group "Administrator" -Member $args[0]} -ArgumentList $User
由于脚本中提供了服务帐户凭据,因此我希望它可以与所有帐户一起运行。我如何从用户帐户上下文中获得相同的结果?
非常感谢
答案 0 :(得分:0)
您是否要针对可能登录这些计算机的每个用户运行此任务?还是仅仅是当前登录的用户?
对于这些类型的任务,我强烈推荐PowerShell AppDeploy Toolkit。
使用工具包,您可以创建一个针对当前登录用户的脚本,然后可以通过SCCM对其进行部署。使用let titleresult = try JSONDecoder().decode([getTitle].self, from: data)
会为您提供所有本地和RDP登录用户的会话详细信息,而不必大惊小怪。