Лучший отвечающий
PoSH формат выходного файла

Вопрос
-
Добрый день,
есть скрипт
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 -
> я не понимаю синтаксиса %{$_.name}
% - это же алиас для foreach
см. help % -full
написать можно так: ...|%{"$_.name - $date"}
- Помечено в качестве ответа Andrii Dovbnia 16 апреля 2010 г. 10:49
16 апреля 2010 г. 10:46
Все ответы
-
как-то так:
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 -
еще один вопрос в догонку) если можно.
я после получения файла 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