解锁锁定域用户的命令
Command to Unlock a locked domain user
我一直在使用这些来列出我域中的锁定用户并提示我输入 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 文件会非常相同...
感谢所有阅读和帮助的人。
Powershell 总是试图优化它为您提供的输出。因此,输出顺序可能与您在脚本中的命令所期望的顺序不同。如果可能,它将连接输出以提高可读性,尤其是当它是同一类型的对象时。要打破这一点,您可以使用格式 cmdlet,例如 Format-Table
par example.
Search-ADAccount -LockedOut |
Select-Object -Property Name, sAMAccountName, DistinguishedName |
Format-Table
$user = Read-Host -Prompt 'Enter user account (SAMACCOUNTNAME) to unlock or press ENTER to refresh list'
Search-ADAccount -LockedOut |
Where-Object -FilterScript {$_.samaccountname -eq $user} |
Unlock-ADAccount
至少,它在我的环境中有效。
顺便说一句:从 Powershell 版本 3 开始,您不再需要显式导入模块。它们将自动导入。更好的做法是在脚本顶部使用 #Requires 语句,例如 #Requires -Modules activedirectory
。如果没有安装活动目录模块
,这甚至会阻止脚本运行
我一直在使用这些来列出我域中的锁定用户并提示我输入 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 文件会非常相同...
感谢所有阅读和帮助的人。
Powershell 总是试图优化它为您提供的输出。因此,输出顺序可能与您在脚本中的命令所期望的顺序不同。如果可能,它将连接输出以提高可读性,尤其是当它是同一类型的对象时。要打破这一点,您可以使用格式 cmdlet,例如 Format-Table
par example.
Search-ADAccount -LockedOut |
Select-Object -Property Name, sAMAccountName, DistinguishedName |
Format-Table
$user = Read-Host -Prompt 'Enter user account (SAMACCOUNTNAME) to unlock or press ENTER to refresh list'
Search-ADAccount -LockedOut |
Where-Object -FilterScript {$_.samaccountname -eq $user} |
Unlock-ADAccount
至少,它在我的环境中有效。
顺便说一句:从 Powershell 版本 3 开始,您不再需要显式导入模块。它们将自动导入。更好的做法是在脚本顶部使用 #Requires 语句,例如 #Requires -Modules activedirectory
。如果没有安装活动目录模块