如何从用户上下文执行 Add-LocalGroupMember 脚本包
How to execute Add-LocalGroupMember script package from user context
我正在尝试在 SCCM 中实施脚本部署包,该脚本部署包旨在在特定广告 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
我希望所有帐户都能 运行,因为脚本中提供了服务帐户凭据。我如何从用户帐户上下文中获得相同的结果?
非常感谢
您是否正在尝试 运行 针对可能登录到这些机器的每个用户执行此任务?或者它只是当前登录的用户?
对于这类任务,我强烈推荐 PowerShell AppDeploy Toolkit。
使用工具包,您可以创建一个可以针对当前登录用户的脚本,然后可以通过 SCCM 进行部署。使用 Get-LoggedOnUser
可以轻松获得所有本地和 RDP 登录用户的会话详细信息。
我正在尝试在 SCCM 中实施脚本部署包,该脚本部署包旨在在特定广告 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
我希望所有帐户都能 运行,因为脚本中提供了服务帐户凭据。我如何从用户帐户上下文中获得相同的结果?
非常感谢
您是否正在尝试 运行 针对可能登录到这些机器的每个用户执行此任务?或者它只是当前登录的用户?
对于这类任务,我强烈推荐 PowerShell AppDeploy Toolkit。
使用工具包,您可以创建一个可以针对当前登录用户的脚本,然后可以通过 SCCM 进行部署。使用 Get-LoggedOnUser
可以轻松获得所有本地和 RDP 登录用户的会话详细信息。