写一个活动目录自主解锁的powershell脚本,要求用户输入账号,就可以自主解锁,要求输入管理员账号凭据不能有弹框
时间: 2024-04-15 18:26:16 浏览: 103
Powershell监控操作系统用户账号事件并预警
以下是一个 PowerShell 脚本示例,用于在活动目录中自主解锁用户账号。脚本中要求用户输入账号和管理员账号的凭据,以进行解锁操作,并且会禁用弹出窗口提示:
```powershell
$accountName = Read-Host "请输入要解锁的账号名称"
$credential = Get-Credential -Message "请输入管理员账号的凭据" -UserName "Administrator"
$secureStringPwd = $credential.Password
$plainTextPwd = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($secureStringPwd))
$secpasswd = ConvertTo-SecureString -String $plainTextPwd -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ($credential.UserName, $secpasswd)
$account = Get-ADUser -Identity $accountName
if ($account) {
Unlock-ADAccount -Identity $account.SamAccountName -Credential $mycreds
Write-Host "账号 $accountName 已成功解锁"
} else {
Write-Host "找不到账号 $accountName,请确保输入正确的账号名称"
}
```
在脚本中,首先使用 `Read-Host` 命令提示用户输入要解锁的账号名称。然后,使用 `Get-Credential` 命令获取管理员账号的凭据,以便后续解锁操作所需。
接下来,将管理员账号的凭据转换为安全字符串,并创建一个新的 PSCredential 对象。
然后,使用 `Get-ADUser` 命令根据用户输入的名称获取账号对象。
如果找到了账号对象,则使用 `Unlock-ADAccount` 命令和管理员账号的凭据解锁该账号,并输出相应的成功提示消息。
如果找不到账号对象,则输出错误消息提示用户确认输入的账号名称是否正确。
请确保在运行此脚本之前,已经加载了活动目录(Active Directory)相关的 PowerShell 模块,或者在运行脚本之前添加 `Import-Module ActiveDirectory` 来加载所需的模块。注意,凭据的安全性非常重要,请妥善保管和处理凭据信息。
阅读全文