h41msh1c0r
Goto Top

Powershell Get-ADUser Informationen und Richtextbox

Aloa in die Runde,

kleine GUI für Testzwecke.

AD Informationen zu einem Nutzer holen.

Add-Type -AssemblyName System.Windows.Forms

function Get-ADUserInfo{
	[CmdletBinding()]
	[OutputType([System.Int32])]
	param(
		[Parameter(Position=0, Mandatory=$true)]
		[ValidateNotNullOrEmpty()]
		[System.String]
		$Name,

		[Parameter(Position=1)]
		[ValidateNotNull()]
		[System.Int32]
		$Index
	)
    try {
        $user = $(try {get-aduser -identity $Name} catch {$null})
        if ($user -ne $null) {
          return $user
        } else {
          return "User doesn't exist"  
        }		
	}
	catch {
		throw 
	}
}

$Resolve_UserADInfo = New-Object system.Windows.Forms.Form 
$Resolve_UserADInfo.Text = "Get User AD Information"  
$Resolve_UserADInfo.TopMost = $true
$Resolve_UserADInfo.Width = 800
$Resolve_UserADInfo.Height = 600
$Resolve_UserADInfo.FormBorderStyle = 'FixedDialog'  
$Resolve_UserADInfo.MaximizeBox = $False
$Resolve_UserADInfo.MinimizeBox = $False
$Resolve_UserADInfo.StartPosition = 'CenterScreen'  

$lb_UserName = New-Object system.windows.Forms.Label 
$lb_UserName.Text = "UserName"  
$lb_UserName.AutoSize = $true
$lb_UserName.Width = 25
$lb_UserName.Height = 10
$lb_UserName.location = new-object system.drawing.point(15,15)
$lb_UserName.Font = "Microsoft Sans Serif,10"  
$Resolve_UserADInfo.controls.Add($lb_UserName) 

$tb_UserName = New-Object system.windows.Forms.TextBox 
$tb_UserName.Width = 264
$tb_UserName.Height = 20
$tb_UserName.location = new-object system.drawing.point(117,15)
$tb_UserName.Font = "Microsoft Sans Serif,10"  
$Resolve_UserADInfo.controls.Add($tb_UserName) 

$btn_Resolve = New-Object system.windows.Forms.Button 
$btn_Resolve.Text = "Resolve"  
$btn_Resolve.Width = 366
$btn_Resolve.Height = 30
$btn_Resolve.location = new-object system.drawing.point(15,45)
$btn_Resolve.Font = "Microsoft Sans Serif,10"  
$Resolve_UserADInfo.controls.Add($btn_Resolve) 


$rtb_User = New-Object System.Windows.Forms.RichTextBox
$rtb_User.Enabled = $False
$rtb_User.Location = '15, 80'  
$rtb_User.Name = 'richtextbox2'  
$rtb_User.Size = '760, 470'  
$Resolve_UserADInfo.controls.Add($rtb_User) 


$btn_Resolve.Add_Click({ 

    if($tb_UserName.Text -eq ""){  
        $rtb_User.Text = "Bitte geben Sie einen Usernamen ein!"  
    }else{
        $rtb_User.text = Get-ADUserInfo -Name $tb_UserName.Text
    }

})

[void]$Resolve_UserADInfo.ShowDialog() 

$Resolve_UserADInfo.Dispose() 

Jetzt gibt er allerdings nur den DistinguishedName in der Richtextbox aus und nicht den Rest, der bei get-aduser ausgelesen wird.
Die Variable $user in der function enthält auch nur diesen.

Wie bekomme ich den Rest in die Ausgabe?

DistinguishedName :
Enabled           : True
GivenName         : 
Name              : 
ObjectClass       : user
ObjectGUID        : 
SamAccountName    : 
SID               : 
Surname           : 
UserPrincipalName : 

VG

Content-Key: 353555

Url: https://administrator.de/contentid/353555

Printed on: April 20, 2024 at 00:04 o'clock

Mitglied: 134464
Solution 134464 Nov 03, 2017 updated at 08:05:55 (UTC)
Goto Top
Erstens ist dein OutputType deiner Function nicht passend, ein ADObject ist nicht vom Typ Int32.
Zweitens gibst du das Object selbst in eine Textbox aus anstatt die Daten in einen String zu wandeln, also erst mit formatTable Ausgabe Formatieren und dann mit Out-String in einen String wandeln bevor du das Gedöns in eine Textbox schreibst.
Member: H41mSh1C0R
H41mSh1C0R Nov 03, 2017 at 08:20:44 (UTC)
Goto Top
=) Danke dir.

Outputtype nach String geändert und das Get-AdUser mit out-string gepiped --> ferdisch

=)