Я пытаюсь установить-ADComputer на всех машинах, соответствующих фильтру, который добавляется в массив $ servers. Но это не работает. Я предполагаю, что это как-то связано с передачей объекта в строку, но я не могу разобраться с этим. У кого-нибудь есть золотой совет?
#Get gateway
$gateway = "MGMT01"
$gatewayObject = Get-ADComputer -Identity $gateway
#Get servers
$servers=@(Get-ADComputer -Filter {OperatingSystem -like "Windows Server*"} -Properties Name | select name | ft -HideTableHeaders)
#Create list of servers
Out-File -FilePath c:\adcomputers.txt -InputObject $servers
#Set WAC delegation
ForEach ($server in $servers)
{
$nodeObject = Get-ADComputer -Identity $server
Set-ADComputer -Identity $nodeObject -PrincipalsAllowedToDelegateToAccount $gatewayObject
}
Ошибка:
Get-ADComputer: Невозможно связать параметр «Идентичность». Не удается преобразовать значение «Microsoft.PowerShell.Commands.Internal.Format.FormatEndData» типа «Microsoft.PowerShell.C».
ommands.Internal.Format.FormatEndData "для ввода" Microsoft.ActiveDirectory.Management.ADComputer ".
На C: \ Users \ SA. **** \ Desktop \ инвентаризация-honolulu-incl-sso.ps1: 7 символ: 40
+ $ nodeObject = Get-ADComputer -Identity $ server
+ ~~~~~~~
+ CategoryInfo: InvalidArgument: (:) [Get-ADComputer], ParameterBindingException
+ FullyQualifiedErrorId: CannotConvertArgumentNoMessage, Microsoft.ActiveDirectory.Management.Commands.GetADComputer
Set-ADComputer: Невозможно проверить аргумент параметра «Идентичность». Аргумент нулевой. Укажите допустимое значение для аргумента и попробуйте снова запустить команду.
На C: \ Users \ SA. **** \ Desktop \ инвентаризация-honolulu-incl-sso.ps1: 8 символ: 26
+ Set-ADComputer -Identity $ nodeObject -PrincipalsAllowedToDelegateToAc ...
+ ~~~~~~~~~~~
+ CategoryInfo: InvalidData: (:) [Set-ADComputer], ParameterBindingValidationException
+ FullyQualifiedErrorId: ParameterArgumentValidationError, Microsoft.ActiveDirectory.Management.Commands.SetADComputer