0
我目前還在學習PowerShell,並且正在學習用於管理目的的過程。我發佈這個問題,因爲我無法找到關於這個地方的任何信息。在PowerShell中動態生成樹節點
我創建了GUI,其中列出了所有的服務器作爲樹節點的腳本。從那裏我想立即生成/填充/創建服務器的子節點(即,當單擊或選擇節點'服務器1'時,它應該如下生成子節點)。由於我們有大量的服務器,我不想在添加新屬性時更新每個服務器上的子節點。任何人都可以請告訴我如何做到這一點?如果我的描述沒有意義,我可以更多解釋。
..... Server1的 。 。 ...... BIOSInfo(我通過使用標籤來區分服務器節點及其子節點) 。 。 ...... PROCInfo
等
我使用SAPIEN原始形式與的powershell 3.0
這裏是示例代碼;
function NodeClick($object)
{
if ($this.SelectedNode.Tag -eq "Server")
{
$Server = $this.selectednode.text
$richTextBox1.Text = "Script for $Server Information"
#~~<TreeNode11>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TreeNode1111 = New-Object System.Windows.Forms.TreeNode("OS")
$TreeNode1111.Tag = "DevInfo"
$TreeNode1111.Text = "OS"
#~~<TreeNode12>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TreeNode1222 = New-Object System.Windows.Forms.TreeNode("Domain")
$TreeNode1222.Tag = "DevInfo"
$TreeNode1222.Text = "Domain"
#~~<TreeNode13>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TreeNode1333 = New-Object System.Windows.Forms.TreeNode("Serial")
$TreeNode1333.Tag = "DevInfo"
$TreeNode1333.Text = "Serial"
#~~<TreeNode14>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TreeNode1444 = New-Object System.Windows.Forms.TreeNode("BIOS")
$TreeNode1444.Tag = "DevInfo"
$TreeNode1444.Text = "BIOS"
#~~<TreeNode15>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TreeNode1555 = New-Object System.Windows.Forms.TreeNode("Processor")
$TreeNode1555.Tag = "DevInfo"
$TreeNode1555.Text = "Processor"
#~~<TreeNode16>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TreeNode1666 = New-Object System.Windows.Forms.TreeNode("Memory")
$TreeNode1666.Tag = "DevInfo"
$TreeNode1666.Text = "Memory"
#~~<TreeNode17>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TreeNode1777 = New-Object System.Windows.Forms.TreeNode("Partitions")
$TreeNode1777.Tag = "DevInfo"
$TreeNode1777.Text = "Partitions"
#~~<TreeNode18>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TreeNode1888 = New-Object System.Windows.Forms.TreeNode("Drive")
$TreeNode1888.Tag = "DevInfo"
$TreeNode1888.Text = "Drive"
#~~<TreeNode19>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TreeNode1999 = New-Object System.Windows.Forms.TreeNode("IPInfo")
$TreeNode1999.Tag = "DevInfo"
$TreeNode1999.Text = "IPInfo"
#~~<TreeNode110>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TreeNode2111 = New-Object System.Windows.Forms.TreeNode("PrintInfo")
$TreeNode2111.Tag = "DevInfo"
$TreeNode2111.Text = "PrintInfo"
#~~<TreeNode111>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TreeNode2222 = New-Object System.Windows.Forms.TreeNode("FolderShare")
$TreeNode2222.Tag = "DevInfo"
$TreeNode2222.Text = "FolderShare"
#~~<TreeNode112>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TreeNode2333 = New-Object System.Windows.Forms.TreeNode("Tasks")
$TreeNode2333.Tag = "DevInfo"
$TreeNode2333.Text = "Tasks"
#~~<TreeNode113>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TreeNode2444 = New-Object System.Windows.Forms.TreeNode("Services")
$TreeNode2444.Tag = "DevInfo"
$TreeNode2444.Text = "Services"
#~~<TreeNode114>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$TreeNode2555 = New-Object System.Windows.Forms.TreeNode("Software")
$TreeNode2555.Tag = "DevInfo"
$TreeNode2555.Text = "Software"
$this.SelectedNode = New-Object System.Windows.Forms.TreeNode("DOCACT01", [System.Windows.Forms.TreeNode[]] (@($TreeNode1111, $TreeNode1222, $TreeNode1333, $TreeNode1444, $TreeNode1555, $TreeNode1666, $TreeNode1777, $TreeNode1888, $TreeNode1999, $TreeNode2111, $TreeNode2222, $TreeNode2333, $TreeNode2444, $TreeNode2555)))
$this.SelectedNode.Tag = "Server"
$this.SelectedNode.Text = "$Server"
$form1.refresh()
}
else
{
$this.SelectedNode.expand()
$richTextBox1.Text = "Script for Server Information"
}