none
Выгрузка устаревших учетных записей серверов из AD (Powershell)

    Вопрос

  • Добрый день, коллеги!

    Я сделал скрипт, который выгружает учетные записи не активные в течении 60 дней:

    Get-ADComputer -SearchBase "OU=Servers,OU=NSK,DC=ns,DC=nsk,DC=ru"  -Filter {enabled -eq "True"} -prop *| 
    ?{$_.enabled -eq "true" -and ([DateTime]::FromFileTime($_.LastLogonTimestamp) -lt (get-date).adddays(-60))} |
    ForEach-Object
    {
    	$srv = $_.Name
        [pscustomobject]@{
    	                     Name = $srv
    	                     OperatingSystem = $_.OperatingSystem
    	                     Description = $_.Description
    	                     LastLogon = $_.([DateTime]::FromFileTime($_.LastLogonTimestamp))
                             PWDLastSet = ([DateTime]::FromFileTime($_.pwdLastSet))
    	                 }
    	
    } Export-Csv C:\Scripts\SRV_60_Days.csv -NoTypeInformation -Encoding UTF8


    Проблема в том, что после запуска скрипта, Posh у меня запрашивает такое:

    Командлет ForEach-Object в конвейере команд в позиции 2
    Укажите значения для следующих параметров:
    Process[0]: 

    Кто нибудь может проконсультировать, что ему от меня нужно? И второй момент, как в таком скрипте корректно запустить проверку по ping и внести все эти данные в csv?

    Спасибо, за любой ответ.


    • Изменено eclegolas 10 декабря 2018 г. 14:59 правка ошибок
    10 декабря 2018 г. 9:44

Ответы

  • Foreach-Object и { ( | Foreach-Object { ) - должно быть на одной строке,а не как у вас в скрипте на разных:

    ForEach-Object

    {

    Для пинга добавить поле:

    Ping = Test-Connection $_.DNSHostName -Quiet -Count 2







    • Изменено KazunEditor 10 декабря 2018 г. 9:58
    • Помечено в качестве ответа eclegolas 10 декабря 2018 г. 10:11
    10 декабря 2018 г. 9:51
    Отвечающий

Все ответы