Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как проверить есть ли пользователь или нет (http://forum.oszone.net/showthread.php?t=139056)

rromms 30-04-2009 20:44 1108230

Как проверить есть ли пользователь или нет
 
Знающие люди, помогите разобраться с таким вопросом:
Надо проверить есть ли пользователь или нет с такой учетной записью, если есть - поменять пароль, если нет - то создать.
Как по отдельности сделать разобрался и все получается, но хочется большего...

Petya V4sechkin 30-04-2009 21:30 1108255

Код:

Net User юзер пароль 2>nul
If %ErrorLevel% Neq 0 (
  Net User юзер пароль /Add
)


rromms 01-05-2009 14:33 1108525

Большое спасибо, буду пробовать.

If %ErrorLevel% Neq 0 - это, как понял, проверка на ошибку, которую возвращает

Net User юзер пароль 2>nul

и если код этой ошибки не равен 0, то пользователь добавляется.

А что означает "2>nul"?

Заранее Вам благодарен!

El Scorpio 01-05-2009 14:54 1108542

Цитата:

Цитата rromms
2>nul »

Означает, что второй поток (сообщения об ошибках) будет направлен в устройство вывода nul (в никуда)
Без этого на экран выводилось бы "Не найдено имя пользователя"

mitiya 02-05-2009 01:01 1108924

El Scorpio, немного не потеме, но можно по подробней про потоки. Сколько их всего и тд, или ссылочку ;)

Iska 02-05-2009 03:50 1108968

Вкратце здесь: Стандартные потоки — Википедия

rromms 19-05-2009 22:15 1122748

Большое спасибо за науку. Код работает на 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 1123062

rromms, перенос строки нормальный сделайте. Другим текстовым редактором (а не тем, какой вы использовали).

rromms 20-05-2009 18:08 1123298

Так вроде нормальный стоит - 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 1123316

Цитата:

Цитата rromms
в конце каждой строки ставлю "& vbCr" - перенос строки.

Поменяйте на & vbCrLf

rromms 20-05-2009 18:30 1123319

Понял, спасибо, сейчас попробую!

rromms 20-05-2009 18:58 1123356

Спасибо, все заработало!

Petya V4sechkin 20-05-2009 18:59 1123357

rromms, если интересуют подробности (что такое CR = Carriage Return = возврат каретки и LF = Line Feed = подача строки):
Цитата:

История

На механических пишущих машинках имелся рычаг для возврата каретки к левому краю текста. При его использовании специальный механизм прокручивал вал, подвигая бумагу вверх для освобождения места для новой строки.

На АЦПУ функции возврата каретки (головки) и подачи новой строки были разделены, откуда традиция представления перевода строки как CR LF перешла и к текстовым файлам.

root221 13-07-2011 16:02 1712562

Petya V4sechkin, ОтжоГ =)) Хорошая история...

У меня помоему досих пор есть такая машинка, на даче, если я её невыкинул.


Время: 03:03.

Время: 03:03.
© OSzone.net 2001-