Я пытаюсь создать сценарий, который добавляет текущую вошедшую в систему учетную запись пользователя в локальную группу администраторов, которая должна быть развернута как пакет SCCM на только что развернутые компьютеры в одной конкретной группе AD OU.Я закодировал учетные данные учетной записи службы с помощью ключа .key и сохранил их в файле .txt.К сожалению, я не могу получить / передать текущую учетную запись пользователя вышеупомянутой команде.
Я попытался запустить пакет с включенной опцией административных прав, пропуская кодирование учетных данных и используя различные методы без успеха за пределами лаборатории, поэтому, почемуМне пришлось запросить служебную учетную запись, у которой было бы достаточно прав, чтобы выполнить работу.Я также пробовал различные способы идентификации учетных записей пользователей, однако это единственный способ, позволяющий получить действительную учетную запись пользователя Windows, а не ту, под которой запущен сеанс PS.
$User = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$Computer = $env:COMPUTERNAME $svcAcc = "xxx\xx-xx" $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 -Credential $Cred -ScriptBlock {Add-LocalGroupMember -Group "Administratorer" -Member $User}
Я ожидал $User
переменная, которая должна быть передана правильно, так как при запуске выбора [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
отображаются правильные данные.Вместо этого я получаю сообщение об ошибке
Невозможно проверить аргумент параметра 'Member'.Аргумент нулевой или пустой "
Любые указатели будут с благодарностью приняты