【发布时间】:2021-11-06 01:46:34
【问题描述】:
所以我试图设置一个脚本来解锁用户帐户。
现在这就是我所拥有的:
function unlocktm
{
$user = read-host "Who is the user?"
Unlock-ADAccount -Identity $user -Credential adminaccount
Write-host "Account for $user has been unlocked!"
}
现在是困难的部分,我们的用户名是基于他们的电子邮件。我们像去年一样切换了电子邮件格式。所以有些人的电子邮件是 jdoe@company.com 而其他人的电子邮件是 john.doe@company.com
所以当我现在拥有的那个脚本问“谁是用户?”时我必须输入并知道用户的用户名样式(first.lastname 或 flastname)。好吧,有 1500 个用户,我不完全知道每个人的电子邮件。
所以我想做的就是让它在询问“这个用户是谁?”时做到这一点。我可以只输入 John Doe,它将运行我设置的第二个脚本,该脚本可以在 AD 中搜索该用户,提取属性并将其应用到第一个脚本中。让我解释得更好。目前我有第二个脚本是这样的:
function findtm
{
$Firstname = Read-Host "What is the users Firstname?"
$Lastname = Read-Host "What is the Users Lastname?"
Get-ADUser -Filter "Surname -like '$Lastname*' -and GivenName -like '$Firstname*'"
}
这会提取有关该用户的信息并向我展示他们的电子邮件样式。该电子邮件样式位于“samaccountname”下。
所以最终,我需要它做的是:
我运行该函数,它要求我提供用户。
我可以输入“John Doe”
然后它将在后台运行第二个脚本来搜索“John Doe”,然后如果找到 John Doe,它会获取“samaccountname”属性(john.doe 或 jdoe),并将其附加到代替“john doe”回答,然后脚本为 john doe 运行 unlockad 命令并解锁他的帐户。
我可能在很大程度上考虑过这一点,但我认为 If-else 可以做到,但我不知道如何设置它以提取“samaccountname”属性。
【问题讨论】:
-
不需要第二个脚本,您可以将两个函数放在一个脚本中。
标签: powershell