重新發布整個代碼。這作業正常,但我希望將用戶名輸出到 $User 而不是 Out-GridView。表單的其余部分依賴于 textboe $User 中的資訊,我確信這很簡單,只是讓我無法理解。我嘗試按照建議使用 $User = $Result ,但這沒有用。
<#
.NAME
AD Account Tool
.SYNOPSIS
Check User by SamAccountName . Can Unlock User and lock user. Reset Password, enable nad disable user
.DESCRIPTION
Checks user by SamAccountName. Returns Name, Last LogonDate, LockedOut Status, LockedoutTime, and Enabled Status. Allows User to be unlocked and locked. Locking of user is by increasing badpasswordcount. User is able to reset password for account. Enabling and disabling of Users are allowed.
#>
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()
$Lbl_Inst1 = New-Object system.Windows.Forms.Label
$Lbl_Inst1.text = "Enter the First and Last Name if Windows Login is not known."
$Lbl_Inst1.AutoSize = $true
$Lbl_Inst1.width = 700
$Lbl_Inst1.height = 10
$Lbl_Inst1.location = New-Object System.Drawing.Point(10,10)
$Lbl_Inst1.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$Lbl_Inst5 = New-Object system.Windows.Forms.Label
$Lbl_Inst5.text = "*Must Match Employee Record Exactly"
$Lbl_Inst5.AutoSize = $true
$Lbl_Inst5.width = 700
$Lbl_Inst5.height = 10
$Lbl_Inst5.location = New-Object System.Drawing.Point(370,10)
$Lbl_Inst5.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',8,[System.Drawing.FontStyle]([System.Drawing.FontStyle]::Italic -bor [System.Drawing.FontStyle]::Underline))
$Lbl_Line1 = New-Object system.Windows.Forms.Label
$Lbl_Line1.text = "__________________________________________________________________________________________________________________"
$Lbl_Line1.AutoSize = $true
$Lbl_Line1.width = 1000
$Lbl_Line1.height = 10
$Lbl_Line1.location = New-Object System.Drawing.Point(10,100)
$Lbl_Line1.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$Lbl_Inst2 = New-Object system.Windows.Forms.Label
$Lbl_Inst2.text = "Account Information and Administration"
$Lbl_Inst2.AutoSize = $true
$Lbl_Inst2.width = 700
$Lbl_Inst2.height = 10
$Lbl_Inst2.location = New-Object System.Drawing.Point(150,120)
$Lbl_Inst2.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$Lbl_Inst3 = New-Object system.Windows.Forms.Label
$Lbl_Inst3.text = "Information"
$Lbl_Inst3.AutoSize = $true
$Lbl_Inst3.width = 700
$Lbl_Inst3.height = 10
$Lbl_Inst3.location = New-Object System.Drawing.Point(300,150)
$Lbl_Inst3.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$Lbl_Inst4 = New-Object system.Windows.Forms.Label
$Lbl_Inst4.text = "Administration"
$Lbl_Inst4.AutoSize = $true
$Lbl_Inst4.width = 700
$Lbl_Inst4.height = 10
$Lbl_Inst4.location = New-Object System.Drawing.Point(440,150)
$Lbl_Inst4.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$CheckLockTool = New-Object system.Windows.Forms.Form
$CheckLockTool.ClientSize = New-Object System.Drawing.Point(600,360)
$CheckLockTool.text = "User Account Administration Tool"
$CheckLockTool.TopMost = $false
$CheckLocked = New-Object system.Windows.Forms.Button
$CheckLocked.text = "Check Locked"
$CheckLocked.width = 100
$CheckLocked.height = 30
$CheckLocked.location = New-Object System.Drawing.Point(300,175)
$CheckLocked.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',8)
$CheckGroups = New-Object system.Windows.Forms.Button
$CheckGroups.text = "Check Groups"
$CheckGroups.width = 100
$CheckGroups.height = 30
$CheckGroups.location = New-Object System.Drawing.Point(300,205)
$CheckGroups.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',8)
$FirstName = New-Object system.Windows.Forms.TextBox
$FirstName.Text = ""
$FirstName.multiline = $false
$FirstName.width = 100
$FirstName.height = 20
$FirstName.location = New-Object System.Drawing.Point(10,60)
$FirstName.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$Lbl_FirstName = New-Object system.Windows.Forms.Label
$Lbl_FirstName.text = "First Name"
$Lbl_FirstName.AutoSize = $true
$Lbl_FirstName.width = 25
$Lbl_FirstName.height = 10
$Lbl_FirstName.location = New-Object System.Drawing.Point(10,40)
$Lbl_FirstName.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$LastName = New-Object system.Windows.Forms.TextBox
$LastName.Text = ""
$LastName.multiline = $false
$LastName.width = 100
$LastName.height = 20
$LastName.location = New-Object System.Drawing.Point(150,60)
$LastName.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$Lbl_LastName = New-Object system.Windows.Forms.Label
$Lbl_LastName.text = "Last Name"
$Lbl_LastName.AutoSize = $true
$Lbl_LastName.width = 25
$Lbl_LastName.height = 10
$Lbl_LastName.location = New-Object System.Drawing.Point(150,40)
$Lbl_LastName.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$User = New-Object system.Windows.Forms.TextBox
$User.Text = ""
$User.multiline = $false
$User.width = 175
$User.height = 20
$User.location = New-Object System.Drawing.Point(14,170)
$User.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$Header = New-Object system.Windows.Forms.Label
$Header.text = "Enter Users Windows Login"
$Header.AutoSize = $true
$Header.width = 25
$Header.height = 10
$Header.location = New-Object System.Drawing.Point(12,150)
$Header.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$UnlockAccount = New-Object system.Windows.Forms.Button
$UnlockAccount.text = "Unlock Account"
$UnlockAccount.width = 100
$UnlockAccount.height = 30
$UnlockAccount.location = New-Object System.Drawing.Point(440,175)
$UnlockAccount.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',8)
<#
$LockAccount = New-Object system.Windows.Forms.Button
$LockAccount.text = "Lock Account"
$LockAccount.width = 100
$LockAccount.height = 30
$LockAccount.location = New-Object System.Drawing.Point(440,205)
$LockAccount.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',8)
#>
$LastLogon = New-Object system.Windows.Forms.Button
$LastLogon.text = "Last Logon"
$LastLogon.width = 100
$LastLogon.height = 30
$LastLogon.location = New-Object System.Drawing.Point(300,235)
$LastLogon.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',8)
$Header2 = New-Object system.Windows.Forms.Label
$Header2.text = "Set New Password"
$Header2.AutoSize = $true
$Header2.width = 25
$Header2.height = 10
$Header2.location = New-Object System.Drawing.Point(14,215)
$Header2.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$Password = New-Object system.Windows.Forms.TextBox
$Password.multiline = $false
$Password.width = 174
$Password.height = 20
$Password.location = New-Object System.Drawing.Point(12,235)
$Password.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$SetPassword = New-Object system.Windows.Forms.Button
$SetPassword.text = "Set Password"
$SetPassword.width = 100
$SetPassword.height = 30
$SetPassword.location = New-Object System.Drawing.Point(12,270)
$SetPassword.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',8)
$DIsableAccount = New-Object system.Windows.Forms.Button
$DIsableAccount.text = "Disable Account"
$DIsableAccount.width = 100
$DIsableAccount.height = 30
$DIsableAccount.location = New-Object System.Drawing.Point(440,235)
$DIsableAccount.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',8)
$EnableAccount = New-Object system.Windows.Forms.Button
$EnableAccount.text = "Enable Account"
$EnableAccount.width = 100
$EnableAccount.height = 30
$EnableAccount.location = New-Object System.Drawing.Point(440,205)
$EnableAccount.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',8)
$getacctname = New-Object system.Windows.Forms.Button
$getacctname.text = "Get Login"
$getacctname.width = 100
$getacctname.height = 30
$getacctname.location = New-Object System.Drawing.Point(300,50)
$getacctname.Font = New-Object System.Drawing.Font('Microsoft Sans Serif',10)
$CheckLockTool.controls.AddRange(@($Lbl_Inst5,$Lbl_Inst4,$Lbl_Inst3,$Lbl_Inst2,$Lbl_Line1,$Lbl_Inst1,$Lbl_FirstName,$Lbl_LastName,$FirstName,$LastName,$getacctname,$LastLogon,$CheckGroups,$CheckLocked,$User,$Header,$UnlockAccount,$Header2,$Password,$SetPassword,$DIsableAccount,$EnableAccount))
$CheckLocked.Add_Click({ CheckLocked })
$CheckGroups.Add_Click({ CheckGroups })
$UnlockAccount.Add_Click({ UnlockAccount })
#$LockAccount.Add_Click({ LockAccount })
$SetPassword.Add_Click({ SetPassword })
$DIsableAccount.Add_Click({ DisableAccount })
$EnableAccount.Add_Click({ EnableAccount })
$LastLogon.Add_Click({ LastLogon })
$getacctname.Add_Click({getacctname})
#region Logic
#Write your logic code here
function getacctname {
$fname= $FirstName.Text
$lname= $LastName.Text
$Result = Get-ADUser -Filter "GivenName -eq '$fname' -and SurName -eq '$lname'"| Select-Object -ExpandProperty 'SamAccountName'
$Result | Out-Gridview -Title 'Windows Logon'
}
function SetPassword {
Set-ADAccountPassword -Identity $User.text -NewPassword (ConvertTo-SecureString -AsPlainText $Password.text -Force)
[System.Windows.MessageBox]::Show('Password Changed')
}
function CheckLocked {
$Result = Get-ADUser -Identity $User.text -Properties Name, LastLogonDate, LockedOut, AccountLockOutTime, Enabled | select Name, LastLogonDate, LockedOut, AccountLockOutTime, Enabled
$Result | Out-GridView -Title 'Locked Accounts'
}
function CheckGroups {
$Result = Get-ADUser –Identity $User.text -Properties Name, Memberof | Select-Object -ExpandProperty MemberOf
$Result | Out-GridView -Title 'Group Memberships'
}
function LastLogon {
$Result = Get-ADUser -Identity $User.text -Properties Name, LastLogonDate| Select-Object -ExpandProperty LastLogonDate
$Result | Out-GridView -Title 'Last Logon'
}
function UnlockAccount {
Unlock-ADAccount -Identity $User.text
$Result = Get-ADUser -Identity $User.text -Properties Name, LastLogonDate, LockedOut, AccountLockOutTime, Enabled | select Name, LastLogonDate, LockedOut, AccountLockOutTime, Enabled
$Result | Out-GridView -Title 'Unlocked Account'
}
<#
function LockAccount {
if ($LockoutBadCount = ((([xml](Get-GPOReport -Name "Default Domain Policy" -ReportType Xml)).GPO.Computer.ExtensionData.Extension.Account |
Where-Object name -eq LockoutBadCount).SettingNumber)) {
$Password = ConvertTo-SecureString 'NotMyPassword' -AsPlainText -Force
Get-ADUser -Identity $User.text -Properties SamAccountName, UserPrincipalName, LockedOut |
ForEach-Object {
for ($i = 1; $i -le $LockoutBadCount; $i ) {
Invoke-Command -ComputerName dc01 {Get-Process
} -Credential (New-Object System.Management.Automation.PSCredential ($($_.UserPrincipalName), $Password)) -ErrorAction SilentlyContinue
}
$Result = Get-ADUser -Identity $User.text -Properties Name, LastLogonDate, LockedOut, AccountLockOutTime, Enabled | select Name, LastLogonDate, LockedOut, AccountLockOutTime, Enabled
$Result | Out-GridView -Title 'Unlocked Account'
}
}
}
#>
function EnableAccount {
Enable-ADAccount -Identity $User.text
$Result = Get-ADUser -Identity $User.text -Properties Name, LastLogonDate, LockedOut, AccountLockOutTime, Enabled | select Name, LastLogonDate, LockedOut, AccountLockOutTime, Enabled
$Result | Out-GridView -Title 'Enabled Account'
}
function DisableAccount {
Disable-ADAccount -Identity $User.text
$Result = Get-ADUser -Identity $User.text -Properties Name, LastLogonDate, LockedOut, AccountLockOutTime, Enabled | select Name, LastLogonDate, LockedOut, AccountLockOutTime, Enabled
$Result | Out-GridView -Title 'Disabled Account'
}
# Disable other types of close/exit
#$form.add_FormClosing({$_.Cancel=$true})
#Write-Output
#endregion
[void]$CheckLockTool.ShowDialog()
uj5u.com熱心網友回復:
這里沒有用于測驗的 AD 模塊,因此將使用此功能的調整版本來顯示您可以實作這一點,您只需添加-PassThru
以
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/505346.html