Я пытаюсь получить различающееся имя компьютера, установить его в переменную $dname
Затем я могу использовать команду отключения компьютера disable-adaccount -Identity $dname
$hostname
установлено ОК как "WIN10TEST1"
При использованииэта команда
$dname = (Get-ADcomputer -Identity "$hostname" | select DistinguishedName | ft -hide)
Сбой примерно так:
disable-adaccount -Identity $dname
Disable-ADAccount: Невозможно преобразовать 'System.Object []' в тип 'Microsoft.ActiveDirectory.Management.ADAccount 'требуется параметром' Identity '. Указанный метод не поддерживается. В строке: 1 символ: 29 + disable-adaccount -Identity $ dname + ~~~~~~ + CategoryInfo: InvalidArgument: (:) [Disable-ADAccount], ParameterBindingException + FullyQualifiedErrorId: CannotConvertArgument, Microsoft.ActiveDirectory.Management.Commands. DisableADAccount
Если я установил переменную вручную
$dname=CN=WIN10TEST1,OU=Workstations,DC=somedomain,DC=local
disable-adaccount -Identity $dname
Он работает нормально, поэтому проблема с входящей переменной.
При проверке возвращаемых данных в$dname
возвращается с cr/lf
до и после нужных мне данных. Я думаю, что это срабатывает.
$hostname = "WIN10TEST1"
$dname = (Get-ADcomputer -Identity "$hostname" | select DistinguishedName | ft -hide)
disable-adaccount -Identity $dname
Примечание: отметьте $dname
..... возвращается с cr/lf
до / после данных
Я ожидаю получить distinquishedname
строка без других данных
CN=WIN10TEST1,OU=Workstations,DC=somedomain,DC=local