我正在尝试使用Powershell和Visual Studio创建一个通用管理工具,以便我的IT部门可以在一个集中位置执行通用管理任务。我们所做的许多典型任务都涉及Office 365组和用户,因此我试图创建一个树状视图,该视图将每个Office组作为一个节点列出,然后在这些节点内将该组中的每个用户作为子节点列出。我遇到了将这些节点添加到树视图的问题,因为$ treeview.nodes.add不起作用,但是$ treeview.items.add却起作用。 nodes.add给我一个“您不能在空值表达式上调用方法”的错误。
我在树视图上看到的所有文档都通过treeview.nodes.add添加了它们,treeview.items.add将它们添加到树视图中,但是它不像节点那样工作,它只是一个字符串,上面写着“ Treenode :组名。”我已经进行了一些调试,并且我知道用户节点已正确添加到组中。我已经在Visual Studio WPF中创建了所有GUI,所以不确定是否会有所作为。
$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)
}
}
理想情况下,我希望所有组节点在根级别上填充树视图,并在其中希望添加组的每个成员。