Быстрое создание hostlist.txt

hostlist.txtЯ неоднократно писал про то что использую в работе файл servers.txt или hostlist.txt, но ни разу не показывал как именно я собираю данные.

Вариантов масса – можно экспортировать данные из оснастки ADUC, можно рисовать руками, но лучше скриптом.

Для работы скрипта должен быть установлен модуль Active Directory Module for PowerShell (из пакета RSAT). Естественно запускаться это все должно на Windows 7.

# импортируем модуль ActiveDirectory
Import-Module ActiveDirectory
# Указываем путь для поиска
$base = ‘OU=Servers,DC=domain,DC=local’
# на всякий случай берем только свежие записи
$d = [DateTime]::Today.AddDays(-30)
# выполняем поиск
$computers = Get-ADComputer -Filter ‘PasswordLastSet -ge $d’ -Searchbase $base
# выводим результаты в файл hostlist.txt
foreach($computer in $computers) {
$computer.Name | Out-file hostlist.txt -append
}

PS уверен что приведенный ниже скрипт можно упростить :)

Выкладывайте свои варианты в комментариях.


Информация об авторе

Сергей Мариничев.
Вы можете присоединиться ко мне в Facebook или в Twitter.

Если Вам понравилась статья, то вы можете подписаться на RSS.
А также бесплатно подписаться по E-mail и получать актуальную информацию в числе первых.

Получать обновления на email

Вы можете оставить комментарий.

8 Комментариев »

 
  • 1# Kazun (82 комм.):

    -Properties dNSHostName – Можно не указывать,т.к по умолчанию в выводе и в дальнейшем не используется в вашем скрипте.

    foreach($computer in $computers) {
    $computer.Name | Out-file hostlist.txt -append
    } – Нехорошая практика,особенно если посмотреть с ProcMon,что происходит.

    Используя ваш метод,Out-File в теле цикла,получим:
    PS > $sresult | ? {$_.path -eq «F:\test.txt»} | group operation -NoElement

    Count Name
    —– —-
    127 QueryOpen
    126 CreateFile
    126 QueryStandardInformati…
    126 WriteFile
    126 CloseFile

    Вынесем Out-File из цикла.

    $computers | %{$_.Name} | out-file F:\test.txt -Append

    PS > $fresult | ? {$_.path -eq «F:\test.txt»} | group operation -NoElement

    Count Name
    —– —-
    2 QueryOpen
    1 CreateFile
    1 QueryStandardInformati…
    126 WriteFile
    1 CloseFile

      Цитировать

  • 3# Konstantin K. (19 комм.):

    а почему вы csv не используете? гораздо универсальные скрипты получаются

      Цитировать

  • 5# Kazun (82 комм.):

    Сергей Мариничев:
    Согласен.
    Только результирующий файл мы создаем единожды и поэтому можно закрыть глаза на файловые операции.

    Каков Ваш правильный вариант?

    Оба варианта рабочих,а кому,что нравится,тот пусть и выбирает вариант.

      Цитировать

  • 6# Kazun (82 комм.):

    По поводу csv тоже не соглашусь,пока не покажите примеров и ситуаций.

    А так если сильно любите CSV,то для одного значения =))

    Import-Csv serverlists.txt -Header ComputerName

      Цитировать

  • 8# Konstantin K. (19 комм.):

    я про то, что если использовать csv?, то это более универсально. можно нужные данные брать из любого csv и не задумываться о столбцах. каждый сам выбирает как ему удобно. я все стараюсь на csv если речь идет про powershell

      Цитировать

 

Добавить комментарий

XHTML: Вы можете использовать тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>