【发布时间】:2018-06-23 10:49:02
【问题描述】:
我一直在使用这些来列出我域中的锁定用户并提示我输入 samaccountname 以解锁所需的用户: 我用 3 个文件做到了。
第一个是 ps1 列出所有这些
import-module activedirectory
search-adaccount -lockedout | select name, samaccountname, OU
第二个是另一个ps1文件:
$user = Read-Host "Enter user account (SAMACCOUNTNAME) to unlock or press ENTER to refresh list"
Search-ADAccount -LockedOut | Where {$_.samaccountname -eq $user} | Unlock-ADAccount
为了执行上述文件,我使用 .bat 文件:
:loop
powershell.exe -ExecutionPolicy Bypass -File c:\ps\lockedlist.ps1
powershell.exe -ExecutionPolicy Bypass -File c:\ps\unlock.ps1
cls
goto loop
当我运行它时...它列出了所有锁定的用户,我可以复制粘贴每个 samaacount 名称来解锁它们
但问题是,当我想使用一个 ps1 文件时,它不起作用。它只是要求 samaccountname 但它没有列出它
import-module activedirectory
search-adaccount -lockedout | select name, samaccountname, OU
$user = Read-Host "Enter user account (SAMACCOUNTNAME) to unlock or press ENTER to refresh list"
Search-ADAccount -LockedOut | Where {$_.samaccountname -eq $user} | Unlock-ADAccount
我知道 .bat 文件会非常相似...
感谢所有阅读和帮助的人。
【问题讨论】:
-
为什么要对锁定的帐户进行两次搜索?实际上你所需要的就是这样的:
Search-ADAccount -LockedOut | Unlock-ADAccount!? -
顺便说一句:“OU”不是您从 cmdlet
Search-ADAccount的输出中获得的属性。您可以获得“DistinguishedName”。 -
对您在脚本中体验到的行为的想法。 Powershell 总是尝试为您“优化”输出。因此,Powershell 生成的输出不必与您运行的命令的顺序相同。如果您将
Format-Table放在初始Search-ADAccount后面,您将获得所需的输出。 -
我使用 Search-ADAccount -LockedOut 两次:一次列出所有锁定的用户,第二次解锁我从列表中找到的用户
-
格式表不起作用。你能解释更多吗?也许我做错了
标签: powershell dns directory command locked