Как выполнить пакет скрипта Add-LocalGroupMember из контекста пользователя - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь реализовать пакет развертывания сценариев в SCCM, который должен выполняться на недавно развернутой рабочей станции в определенной группе рекламных подразделений.Проблема заключается в исполнении прав;если я развертываю пакет с правами запуска пользователя -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

Я ожидал, что это будет работать со всеми учетными записями, поскольку учетные данные учетной записи службы указаны в сценарии.Как мне добиться таких же результатов в контексте учетной записи пользователя?

Большое спасибо

1 Ответ

0 голосов
/ 07 мая 2019

Вы пытаетесь запустить эту задачу против каждого пользователя, который может войти на эти машины?Или это только зарегистрированный пользователь?

Для таких задач я настоятельно рекомендую PowerShell AppDeploy Toolkit .

Используя Toolkit, вы можете создать сценарий, который может быть нацелен на текущего пользователя, вошедшего в систему, который затем может быть развернут через SCCM.Использование Get-LoggedOnUser позволяет получить подробные сведения о сеансе для всех локальных пользователей и пользователей, вошедших в RDP, без особых хлопот.

...