我需要使用以下属性分别启用和禁用用户:
但是在检索已禁用的用户时输入正确的属性时遇到问题。你能检查并更正下面的脚本吗?此外,我需要检索具有相同属性的已启用用户。
Import-Module ActiveDirectory
Search-ADAccount –AccountDisabled -UsersOnly |
Select -Property Name,SamAccountName,EmailAddress |
Export-Csv "C:\\DisabledADUsers.csv" -NoTypeInformation -Encoding UTF8
答案 0 :(得分:0)
Search-ADAccount
仅返回用户的一部分'属性。通过Get-ADUser
管道搜索结果以获取所有属性并通过`Select-Object:
$props = 'Name', 'DisplayName', 'EmailAddress', 'Description', 'Enabled'
Search-ADAccount –AccountDisabled -UsersOnly |
Get-ADUser -Properties $props |
Select $props |
Export-Csv "C:\\DisabledADUsers.csv" -NoTypeInformation -Encoding UTF8
请注意,没有属性/属性"全名"或" AccountStatus"。如果您想要自定义属性,则必须自己创建calculated properties。
Search-ADAccount –AccountDisabled -UsersOnly |
Get-ADUser -Properties Name,DisplayName,EmailAddress,Description,Enabled |
Select-Object @{n='Full Name';e={$_.Name}},
DisplayName, EmailAddress, Description,
@{n='AccountStatus';e={@('Disabled','Enabled')[([int]$_.Enabled)]}} |
...
但是,既然您想要启用和禁用用户(仅在单独的文件中),那么单独枚举它们就没有意义了。只需致电Get-ADUser
并将结果附加到相应的文件中。
Get-ADUser -Filter * -Properties Name,DisplayName,EmailAddress,Description,Enabled |
Select-Object @{n='Full Name';e={$_.Name}},
DisplayName, EmailAddress, Description,
@{n='AccountStatus';e={@('Disabled','Enabled')[([int]$_.Enabled)]}} |
ForEach-Object {
$csv = '{0}ADUsers.csv' -f $_.AccountStatus
$_ | Export-Csv $csv -Append -NoType -Encoding UTF8
}