Показать полную графическую версию : [решено] Как проверить есть ли пользователь или нет
Знающие люди, помогите разобраться с таким вопросом:
Надо проверить есть ли пользователь или нет с такой учетной записью, если есть - поменять пароль, если нет - то создать.
Как по отдельности сделать разобрался и все получается, но хочется большего...
Petya V4sechkin
30-04-2009, 21:30
Net User юзер пароль 2>nul
If %ErrorLevel% Neq 0 (
Net User юзер пароль /Add
)
Большое спасибо, буду пробовать.
If %ErrorLevel% Neq 0 - это, как понял, проверка на ошибку, которую возвращает
Net User юзер пароль 2>nul
и если код этой ошибки не равен 0, то пользователь добавляется.
А что означает "2>nul"?
Заранее Вам благодарен!
El Scorpio
01-05-2009, 14:54
2>nul »
Означает, что второй поток (сообщения об ошибках) будет направлен в устройство вывода nul (в никуда)
Без этого на экран выводилось бы "Не найдено имя пользователя"
El Scorpio, немного не потеме, но можно по подробней про потоки. Сколько их всего и тд, или ссылочку ;)
Вкратце здесь: Стандартные потоки — Википедия (http://ru.wikipedia.org/wiki/Stdin#.D0.A1.D1.82.D0.B0.D0.BD.D0.B4.D0.B0.D1.80.D1.82.D0.BD.D1.8B.D0.B9_.D0.B2.D0.B2.D0.BE.D0.B4)
Большое спасибо за науку. Код работает на 100%.
Но столкнулся с такой вот неясной ситуацией - когда надо поменять пароль или добавить одного пользователя, то все в порядке батник работает.
А когда двух и больше, код батника вроде:
Net User юзер пароль 2>nul
If %ErrorLevel% Neq 0 (
Net User юзер пароль /Add
)
Net User юзер1 пароль1 2>nul
If %ErrorLevel% Neq 0 (
Net User юзер1 пароль1 /Add
)
в той же директории появляется файлик nulIf без расширения, в котором пишет"Неизвестный параметр /ADD)NET." и далее про синтаксис.
Однако когда пробую запустить этот же батник "psexec \\host -u user -p pass -c E:\batts\BUH.bat" , то удаленном ПК работает без проблем.
В чем может быть дело?
Petya V4sechkin
20-05-2009, 12:11
rromms, перенос строки нормальный сделайте. Другим текстовым редактором (а не тем, какой вы использовали).
Так вроде нормальный стоит - Akelpad.
Но не в этом дело.
Я собираю эти батники в процедуре MS Access - в конце каждой строки ставлю "& vbCr" - перенос строки.
Когда открываю его в Akelpad 4.15- переносы строки стоят везде.
Ручная правка переносов, типа удалить и снова поставить - не помогает.
И не работает почему-то, если локально запускать.
А если - "psexec \\host -u user -p pass -c E:\batts\BUH.bat" - работает.
В строке состояния только почему-то пишет: MAC 1251(Кириллица) - может из-за этого?
Petya V4sechkin
20-05-2009, 18:25
в конце каждой строки ставлю "& vbCr" - перенос строки.
Поменяйте на & vbCrLf
Понял, спасибо, сейчас попробую!
Petya V4sechkin
20-05-2009, 18:59
rromms, если интересуют подробности (http://ru.wikipedia.org/wiki/Перевод_строки) (что такое CR = Carriage Return = возврат каретки и LF = Line Feed = подача строки):
История
На механических пишущих машинках имелся рычаг для возврата каретки к левому краю текста. При его использовании специальный механизм прокручивал вал, подвигая бумагу вверх для освобождения места для новой строки.
На АЦПУ функции возврата каретки (головки) и подачи новой строки были разделены, откуда традиция представления перевода строки как CR LF перешла и к текстовым файлам.
Petya V4sechkin, ОтжоГ =)) Хорошая история...
У меня помоему досих пор есть такая машинка, на даче, если я её невыкинул.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.