Powershell Get-ADUser Informationen und Richtextbox
Aloa in die Runde,
kleine GUI für Testzwecke.
AD Informationen zu einem Nutzer holen.
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?
VG
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 353555
Url: https://administrator.de/contentid/353555
Printed on: April 27, 2024 at 00:04 o'clock
2 Comments
Latest comment
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.
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.