Here is my simple script which works fine on my own domain (first one: TreeViewOwnDomain.ps1). Now I want to read foreign domain and use treeview as same way.
Here is also another script which connect foreign domain and read user data (second one: ForeignDomainUserData.ps1).
Can anyone help me?
function Add-Node {
param ($selectedNode, $name)
$newNode = new-object System.Windows.Forms.TreeNode
$newNode.Name = $name
$newNode.Text = $name
$selectedNode.Nodes.Add($newNode) | Out-Null
return $newNode
}
function Get-NextLevel {
param ($selectedNode, $dn)
$OUs = Get-ADObject -Filter 'ObjectClass -eq "organizationalUnit" -or ObjectClass -eq "container"' -SearchScope OneLevel -SearchBase $dn
if ($OUs -eq $null) {
$node = Add-Node $selectedNode $dn
} else {
$node = Add-Node $selectedNode $dn
$OUs | % {
Get-NextLevel $node $_.distinguishedName
}
}
}
function Build-TreeViewNew {
param ($tNode, $tDomainDN, $tviewOU1)
# Tab 1
$tNode.text = "Active Directory Hierarchy"
$tNode.Name = "Active Directory Hierarchy"
$tNode.Tag = "root"
$tviewOU1.Nodes.Add($treeNode) | Out-Null
Get-NextLevel $treeNode $tDomainDN
}
Build-TreeViewNew $treeNode "DC=w12,DC=local" $treeviewOU1
$JobEncrypted = Get-Content "C:\Tools\PowershellScripts\Test\encrypted_password_PS.txt" | ConvertTo-SecureString
$JobCredential = New-Object System.Management.Automation.PsCredential($JobUsername, $JobEncrypted)
$SessionX = New-PSSEssion -ComputerName "192.168.xxx.xxx" -Credential $JobCredential -ErrorAction 'SilentlyContinue'
Enter-PSSession -Session $SessionX
$t = Invoke-Command -Session $SessionX -ScriptBlock {
$tmp = $null
$t1 = (Get-ADUser Administrator).distinguishedName; $tmp += $t1; $tmp += "`n"
$t2 = (Get-ADUser Administrator -Properties *).description; $tmp += $t2; $tmp += "`n"
$tmp
}
Exit-PSSession
$richtextboxOU1.Text = $t