Параметры учетной записи пользователя
Добрый День!
требуется у пользователей домена снять признак "Срок пароля не ограничен" и результат вывести в файл, только там где не получилось снять признак
Код:
cls
Import-Csv D:\1234.csv | ForEach-Object -Process {$UserLogonName = $_.UserLogonName
$check = Get-ADUser -Identity $UserLogonName | Set-ADUser -PasswordNeverExpires:$False}
if ($check -ne $true) {(Get-ADUser -Identity $UserLogonName |select Name) | Out-File "D:\1\proc.txt" -Append}
Выводится только последний пользователь у которого не получилось снять признак.
Как добавить весь отрицательный результат в файл?
|
Цитата:
Цитата lox-ness
Как добавить весь отрицательный результат в файл? »
|
Разместить условие внутри цикла ForEach-Object. И не делать два запроса Get-ADUser -Identity $UserLogonName.
|
именно условие проверки и не могу сообразить как прикрутить
Пробовали так
Код:
cls
$user = gc D:\1234.txt
$check = Get-ADUser -Identity $UserLogonName | Set-ADUser -PasswordNeverExpires:$False
ForEach ($UserLogonName in $User)
{
if ($check -ne $true)
{Сюда честно не могу понять чего написать | Out-File -Append D:\1\2.txt
}
}
Так вообще не работает и признак не снимает и не выводит
|
Зачем теперь Вы вынесли:
Цитата:
Цитата lox-ness
$check = Get-ADUser -Identity $UserLogonName | Set-ADUser -PasswordNeverExpires:$False »
|
вовне цикла?
И… мне негде и не на чем проверять, но Set-ADUser утверждает, что данный командлет возвращает либо None, либо Microsoft.ActiveDirectory.Management.ADUser, но никак не boolean. Посему я вообще не уверен в том, что Ваш алгоритм работает. Ждите коллег.
|
Код:
Import-Csv D:\1234.csv | ForEach-Object {
try
{
$UserLogonName = $_.UserLogonName
Get-ADUser -Identity $UserLogonName | Set-ADUser -PasswordNeverExpires $False -ErrorAction Stop
}
catch
{
$UserLogonName | Out-File "D:\1\proc.txt" -Append
}
}
|
Время: 22:47.
© OSzone.net 2001-