Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Параметры учетной записи пользователя (http://forum.oszone.net/showthread.php?t=327955)

lox-ness 28-06-2017 20:19 2747911

Параметры учетной записи пользователя
 
Добрый День!
требуется у пользователей домена снять признак "Срок пароля не ограничен" и результат вывести в файл, только там где не получилось снять признак
Код:

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}

Выводится только последний пользователь у которого не получилось снять признак.
Как добавить весь отрицательный результат в файл?

Iska 28-06-2017 21:46 2747923

Цитата:

Цитата lox-ness
Как добавить весь отрицательный результат в файл? »

Разместить условие внутри цикла ForEach-Object. И не делать два запроса Get-ADUser -Identity $UserLogonName.

lox-ness 28-06-2017 22:10 2747929

именно условие проверки и не могу сообразить как прикрутить
Пробовали так
Код:

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
}
}

Так вообще не работает и признак не снимает и не выводит

Iska 28-06-2017 22:20 2747931

Зачем теперь Вы вынесли:
Цитата:

Цитата lox-ness
$check = Get-ADUser -Identity $UserLogonName | Set-ADUser -PasswordNeverExpires:$False »

вовне цикла?

И… мне негде и не на чем проверять, но Set-ADUser утверждает, что данный командлет возвращает либо None, либо Microsoft.ActiveDirectory.Management.ADUser, но никак не boolean. Посему я вообще не уверен в том, что Ваш алгоритм работает. Ждите коллег.

Kazun 29-06-2017 08:58 2747986

Код:

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
        }
}


lox-ness 29-06-2017 20:03 2748183

Спасибо, за помощь


Время: 22:47.

Время: 22:47.
© OSzone.net 2001-