none
PoSH формат выходного файла RRS feed

  • Вопрос

  • Добрый день,

    есть скрипт

     

    foreach ( $username in (get-content ‘C:\oracle\script\test1\export.lst’)) {$write=Get-QADuser $username -enabled | Select-Object name |Format-Table nameWrite-Output $write >> "C:\oracle\script\test1\imp.log"}

    скрипт проверяет наличие пользователей из списка  export.lst  выбирает незаблокированые учетки для вывода в файл imp.log . 

    Но поскольку запись в файл  Write-Output $write >> "C:\oracle\script\test1\imp.log" ведется внутри цикла на выход я получаю такие записи(повторение поля Name):

    Name----andrewtName----net1100Name----cs3Name----cs4Name----net0048Name----net0047   

    даже если я выношу >> "C:\oracle\script\test1\imp.log" за пределы цикла. формат выходного файла такой же.

     

    Как сделать так чтоб формат файла на выходе был таким:

    andrewt

    net1100

    cs1

    cs2

    и тд

     

    15 апреля 2010 г. 10:32

Ответы

Все ответы

  • как-то так:

    get-content C:\oracle\script\test1\export.lst|get-qaduser -enabled|%{$_.name}>C:\oracle\script\test1\imp.log

    • Помечено в качестве ответа Andrii Dovbnia 15 апреля 2010 г. 11:33
    15 апреля 2010 г. 11:05
  • как-то так:

    get-content C:\oracle\script\test1\export.lst|get-qaduser -enabled|%{$_.name}>C:\oracle\script\test1\imp.log

    спасибо
    окончательный скрипт:
    foreach ( $username in (get-content ‘C:\oracle\script\test1\export.lst’))
    { get-content C:\oracle\script\test1\export.lst|get-qaduser -enabled|%{$_.name}>C:\oracle\script\test1\imp.log}

    15 апреля 2010 г. 11:33
  • не, не, не. Окончательный вариант это то, что я написал ;) (всего одна строка)

    в вашем варианте получаются лишние циклы: сначала вы перебираете всех пользователей в из файла export.lst’foreach ( $username in (get-content ‘C:\oracle\script\test1\export.lst’)), а потом, для каждого пользователя, опять извлекаете построчно содержимое файла этого же файла при помощи того же get-content. Этого делать не надо.

    15 апреля 2010 г. 12:05
  • ааа...спасибо )

    ошибся.

    15 апреля 2010 г. 13:23
  • s.h.s.

    еще один вопрос в догонку) если можно.

    я после получения файла  imp.log хочу заблокировать пользователей из этого файла.

    тоесть как-то так: 

    Add-PSSnapin Quest.ActiveRoles.ADManagement

    foreach ( $username in (get-content ‘C:\oracle\script\imp.log’)) {

    Disable-QADUser $username 

    }

    но тоже хочу сохранить блокирование пользователя в отдельный файл

    такого формата:

    %date% %time% %username%

     

    Покажите хоть куда смотреть чтоб разобраться.

    Спасибо!

    15 апреля 2010 г. 13:43
  • > Add-PSSnapin Quest.ActiveRoles.ADManagement

    чтобы не подключать в каждом скрипте ту или иную оснастку, можно подключать их все оптом в профиле PoSh (это что-то типа autoexec.bat для DOS).Например, в профиль можно добавить такую строку: get-pssnapin -registered | add-pssnapin -passthru -ErrorAction SilentlyContinue  (мой профиль можно посмотреть здесь: http://shss.wordpress.com/2009/12/28/powershell-profile/ )

    > Покажите хоть куда смотреть чтоб разобраться.

    см. в сторону get-date

    Например, (Get-date).date

    get-date|fl

    get-date|get-member

    15 апреля 2010 г. 19:38
  • s.h.s.

    Не получается  вставить $date=Get-Date -format "dd-MMM-yyyy HH:mm" чтоб даная запись попадала в imp.log

    по прежднему отображаются только имена учеток.

    16 апреля 2010 г. 9:37
  • каким образом вы пытаетесь выполнить вставку даты в файл?

    16 апреля 2010 г. 10:30
  • я не знаю куда вставить переменную $date, чтоб пошла запись в файл.

    Если я делаю таким образом get-content C:\oracle\script\test1\export.lst|get-qaduser -enabled|%{$_.name}{$date}>C:\oracle\script\test1\imp.log

    то в выходном файле только дата.

    я не понимаю синтаксиса %{$_.name}

    16 апреля 2010 г. 10:37
  • > я не понимаю синтаксиса %{$_.name}

    % - это же алиас для foreach

    см. help % -full

    написать можно так: ...|%{"$_.name  - $date"}

    • Помечено в качестве ответа Andrii Dovbnia 16 апреля 2010 г. 10:49
    16 апреля 2010 г. 10:46
  • спасибо за подсказку.)
    16 апреля 2010 г. 10:49