У меня есть строки в массиве, которые являются именами групп. Теперь я хотел бы изменить эти значения и подключить другую строку к началу этой строки.
$Groups = Get-ADPrincipalGroupMembership $User $GroupArray = @()
foreach ($Group in $Groups)
{
$GroupArray += ($Group | select name)
}
echo $("Domain\" + $GroupArray[0])
Это печатает что-то вроде:
Domain\@{name=Domain Users}
Однако я хотел бы получить что-то вроде:
Domain\Domain Users
поскольку вы использовали Select-Object Name
, у вас есть объект со свойством с именем Name
. кажется, что вы хотите иметь ТОЛЬКО значение из реквизита. если это так, измените это на Select-Object -ExpandProperty Name
, чтобы получить только значение.
Почему не арралист? Затем Arraylist.add(value).. Кажется, с этим намного проще иметь дело.
Самый простой способ — просто установить переменную, равную циклу foreach, и вывести нужные данные в цикле.
Измените его на arraylist, если хотите добавить все значения:
$Groups = Get-ADPrincipalGroupMembership $User
$arraylist = New-Object System.Collections.ArrayList
foreach ($Group in $Groups)
{
$arraylist.Add($Group.Name) | Out-Null
}
$arraylist
PS: Вы можете отобразить результат сопоставления с доменом, как хотите; Я не трогал этот раздел. Надеюсь, поможет.
@Andr0mega: Рад помочь. Наслаждайтесь кодированием :)
"Domain\$(GroupArray[0].Name)"