Я пытаюсь создать общий инструмент администратора с PowerShell и Visual Studio, чтобы у моего ИТ-отдела было централизованное место для общих задач администратора.Во многих типичных задачах мы задействуем группы и пользователей Office 365, поэтому я пытался создать древовидную структуру, в которой каждая офисная группа будет перечисляться как узел, а затем внутри этих узлов каждый пользователь в группе будет перечисляться как дочерние узлы.У меня проблемы с добавлением этих узлов в древовидную структуру, поскольку $ treeview.nodes.add не работает, но $ treeview.items.add работает.node.add выдает ошибку «Вы не можете вызвать метод с нулевым выражением».
Вся документация, которую я видел в древовидных представлениях, добавляет их в treeview.nodes.add, treeview.items.add добавляет их в древовидное представление, однако это не действует как узел, это просто строка, котораяговорит "Treenode: название группы."Я провел некоторую отладку и знаю, что пользовательские узлы добавляются в группы правильно.Я создал весь графический интерфейс в Visual Studio WPF, так что я не уверен, имеет ли это значение.
$OfficeGroups = Get-MsolGroup | Select Displayname,grouptype | sort
Displayname
ForEach ($group In $OfficeGroups)
{
$groupTreenode = New-Object -TypeName System.Windows.Forms.TreeNode
$groupTreeNode.text = $Group.DisplayName
$groupTreeNode.Name = $group.displayName
$WPFOffice365Groupstrv.Items.add($groupTreeNode)
}
ForEach ($treenode In $WPFOffice365Groupstrv.Items)
{
$groupUsers = Get-UnifiedGroupLinks $Treenode.Name -LinkType
Member
ForEach ($user In $groupUsers)
{
$usernode = New-Object -TypeName
System.Windows.Forms.TreeNode
$usernode.name = $user.Name
$usernode.text = $User.name
$treenode.items.add($Usernode)
}
}
В идеале я хочу, чтобы представление дерева заполнялось на корневом уровне всеми узлами группы, ив тех, которые я хочу, чтобы каждый член группы был добавлен.