Я пытаюсь добавить элемент "canonicalName" к объекту.Когда я использую оператор:
$obj | Add-Member NoteProperty "CanonicalName"
-value (Get-ADComputer $row.ServerName -Properties CanonicalName).CanonicalName
, столбец «canonicalName» вообще не отображается.Использование оператора с переменной:
$a = (Get-ADComputer $row.ServerName -Properties CanonicalName).CanonicalName
$obj | Add-Member NoteProperty "CanonicalName" -value $a
works perfectly.
Подсказка: некоторые имена серверов, через которые я перебираюсь, больше не находятся в домене.код:
$data = $dataSet.Tables[0]
$ErrorActionPreference = "silentlycontinue"
$info = @()
foreach($row in $data)
{
$obj = New-Object psobject
$obj | Add-Member NoteProperty "ServerName" -Value $row.ServerName
#$a = (Get-ADComputer $row.ServerName -Properties CanonicalName).CanonicalName
#$obj | Add-Member NoteProperty "CanonicalName" -value $a
$obj | Add-Member NoteProperty "CanonicalName" -value (Get-ADComputer $row.ServerName -Properties CanonicalName).CanonicalName
$info += $obj
}
$info | ft -AutoSize
Я ожидаю получить:
ServerName CanonicalName
---------- -------------
N3751022 xx.yy.de/Memberserver/SQL-Cluster/xx/n3887022
N3732022 xx.zz.de/Memberserver/yy/uu/zz/N3732022
без переменной $ a все, что я получаю (без столбца canonicalName):
ServerName
----------
N3751022
N3732022
Я тестировал код в другом Домене (все Серверы в наборе данных присутствуют в Домене!) Я получаю правильный результат (два столбца serverName и canonicalName), даже если для данного имени нет никакого значения canonicalNameимя_серверы.