Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10

Модерирует : KLASS, IFkO

vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108

   

vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Задачи на bat-файлах 10
(часть 1, часть 2, часть 3, часть 4, часть 5, часть 6, часть 7, часть 8, часть 9)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки
 
Полезные утилиты
 
Готовые решения и частые вопросы:
  • Встроенный справочник по командам
  • Создание помощи по всем командам консоли 2000 и XP
  • Делаем паузу в командном файле стандартными средствами Windows
  • Альтернативные решения »
  • Работа с текстом, датой, и файлами »
  • Администрирование, автоматизация и сеть »
  • Работа с переменными и параметрами ком. строки »
     
    Описания работы команд и символов участниками темы:
    · setlocal enabledelayedexpansion и переменные окружения
    · символы & и && в командной строке
    · Переменная %0

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    del

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 22:39 07-02-2011 | Исправлено: Free_Soft, 22:51 07-02-2011
    gammaray

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые специалисты, нужна Ваша помощь!
    Ситуация такая. Есть расшаренные папка \\server\folder
    Раньше к ней подключались через логин условно login1. Теперь надо подключаться через login2. Но в механизме Сохранения имен пользователей и паролей осталась старая запись login1.  
    Пишу такой бат-файл:

    Код:
    net use * /delete /y
    net use /persistent:yes
    net use z: \\server\folder /user:login2

    После выполнения бат-файла успешно добавляется сетевой диск Z и в папку есть доступ. Но после перезагрузки компьютера диск остается, а доступа нет, т.к. Windows, используя упомянутый выше механизм, пытается зайти на этот диск по старому логину login1, а нужно по login2. Почитал здесь http://support.microsoft.com/kb/281660 - не понял толком. Каким-то образом можно в бат-файле прописать, чтобы изменялся сохраненный логин в этом механизме и после перезагрузки на диск Z винда пыталась зайти с уже новым логином? Может кто подскажет? Копать надо в сторону savecred? Может есть примеры?

    Всего записей: 14 | Зарегистр. 15-01-2007 | Отправлено: 16:28 08-02-2011 | Исправлено: gammaray, 16:31 08-02-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    gammaray
    По твоей ссылке описано использование утилиты "Учетные записи пользователей", которая запускается командой: control userpasswords2
    Выполни эту команду, откроется оконо "Учетные записи пользователей", перейди на закладку "Дополнительно", жми кнопку "управление паролями" и добавь новый набор ресурс/логин/пароль.
     
    Другой вариант - вставить твой батник в автозагрузку

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 16:37 08-02-2011
    Accessor



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Цитата:
    добавь новый набор ресурс/логин/пароль.  
    Может новый набор добавлять и не надо. А вот старый удалить нужно.gammaray команда, по идее должна выглядеть так:
    net use z: \\server\folder /user:login2 /persistent:yes

    Всего записей: 2863 | Зарегистр. 31-10-2003 | Отправлено: 18:33 08-02-2011
    gammaray

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Accessor
    В том-то и проблема, что не хочу я ставить батник в автозагрузку и делать паузы на пинг. Тем более не вариант вручную через GUI править эти учетные записи. Задача следующая: создать универсальный бат-файл, который потом запустить на конечных компах так, чтобы пользователи этих компов не видели никакой информации о подключении к серверу. Поэтому и хочется все прописать в бат-файлах.  

    Цитата:
    net use z: \\server\folder /user:login2 /persistent:yes

    Так у меня так и прописано. Просто команду persistent я вынес вначало, чтобы сохранялись все диски после перезагрузки.
    Может кто подскажет, как с помощью только одного бат-файла решить проблему с этими сохраненными ключами учетных записей? Есть какая-то консольная команда для работы с этими записями? Ключ savecred может толком кто-нить объяснить, как работает и для чего нужен?

    Всего записей: 14 | Зарегистр. 15-01-2007 | Отправлено: 10:52 09-02-2011
    lizun



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как можно реализовать такую хотелку:
    Есть лог-файл, туда пишется результат работы батника.
    В Батнике надо сделать настройку, позволяющую отключать вывод в лог-файл.
    Чтобы не менять кучу кода, хочется что-то похожее на перенаправление не в лог-файл, а в nil:
     

    Код:
    @echo off
    set EnableLog=Yes
    set logfile="C:\log.txt"
     
    if not "%EnableLog%"=="Yes" set %logfile%=nil
       
    echo test Log>%logfile%
     
    pause
     

    Всего записей: 440 | Зарегистр. 16-01-2007 | Отправлено: 11:01 09-02-2011
    Accessor



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gammaray
    Цитата:
    создать универсальный бат-файл, который потом запустить на конечных компах так, чтобы пользователи этих компов не видели никакой информации о подключении к серверу.

    Честно сказать, идеология подхода у вас неверная. Зачем делать подключение нескольких пользователей под одним и тем же логином, да ещё чтобы они его не знали? Обеспечьте правами к этой шаре каждому нуждающемуся пользователю и всё...
    параметр savecred, как я понимаю, как раз и призван сохранять учётные данные. К сожалению, нигде нет подробной документации

    Всего записей: 2863 | Зарегистр. 31-10-2003 | Отправлено: 11:16 09-02-2011
    gammaray

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Accessor
    В том-то и дело, что пользователей этих туча и логинов у них моря. К тому же в сети есть повторяющиеся логины аля admin, при этом с этими логинами одновременно сидят пользователи которым надо давать доступ и которым наоборот ни в коем случае его давать нельзя. Поэтому и возникла идея с 1 общим логинов для всех нужных пользователей. Ага, про savecred толком ничего непонятно. Пример их не работает. В таком виде:

    Код:
    net use z: \\server\folder /u:login2 /savecred

    выдает ошибку "Используется команда с конфликтующими ключами". Да и я так понял, что этот savecred работает в том случае, если выполнение net use порождает запрос логина и пароля на подключение (у меня net use такой запрос никогда не вызывал, даже когда я его заранее с неправильным логином вызывал; подключала диск, но к нему соответственно нет доступа).  
    Более того! Щас потестил такой вариант. Удалил через GUI все сохраненные ключи и выполнил бат-файл:

    Код:
     
    net use * /delete /y
    net use /persistent:yes
    net use z: \\server\folder /user:login2
     

    Батник выполнился успешно, диски подключились, НО к ним теперь нет доступа! Т.е. по ходу винда всегда берет данные из своих сохраненных ключей. Но тогда возникает вопрос, а для чего тогда вообще писать /user:login2, если все равно толку от этого нет? Непонятно вообщем ничего... Неужели никто с такой проблемой не сталкивался?
    P.S. Да, кстати... Ссылку я с самого начала немного не ту дал... Вот эта ближе по теме http://support.microsoft.com/kb/287536

    Всего записей: 14 | Зарегистр. 15-01-2007 | Отправлено: 11:31 09-02-2011 | Исправлено: gammaray, 12:28 09-02-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    gammaray

    Цитата:
    В том-то и дело, что пользователей этих туча и логинов у них моря.

    Дык может уже подумать об АД? И проблема твоя автоматически рассосется.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:53 09-02-2011
    gammaray

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Была бы моя воля - давно бы сделал. Но не разрешают. Хотят минимум изменений и максимум безопасности... Вот так...( Поэтому и приходится в батниках разбираться...

    Всего записей: 14 | Зарегистр. 15-01-2007 | Отправлено: 13:02 09-02-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    gammaray
    У пользователя login2 пароля нет?

    Цитата:
    Батник выполнился успешно, диски подключились, НО к ним теперь нет доступа!

    Посмотри на сервере под каким юзером прошло подключение.
     
    Кстати, а какая винда у тебя в качестве сервера?

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 13:12 09-02-2011
    gammaray

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Пароля у пользователя login2 нет. Сделано это пока что временно ввиду того, что у меня в памяти засело, что win xp не сохраняет пароли при подключении сетевого диска (сохраняется только имя). Каждый раз при обращении к сетевому диску этот пароль приходится вводить снова. А большинство конечных компов функционирует как раз на win xp. Надо настроить так, чтобы один раз этот сетевой диск подрубить и больше пользователи ни о чем не заморачивались и всегда могли на него зайти.
    На сервере стоит Windows Server 2003 R2 x64.  
    Посмотрел на серваке в Управлении файловым сервером, что подключения по login2 нет. Может где-то в логах осталось, что была попытка подключения? Как посмотреть?

    Всего записей: 14 | Зарегистр. 15-01-2007 | Отправлено: 13:51 09-02-2011
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Может где-то в логах осталось, что была попытка подключения? Как посмотреть?
    в лог безопастности посмотри

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 14:07 09-02-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    gammaray
    Значит есть подключение от пользователя залогиненного на рабочей станции?
    А юзер login2 на сервере заведен? и ему даны права на нужную шару?

    Цитата:
    Как посмотреть?

    Я обычно смотрю в "управлении компьютером".
     
    Добавлено:

    Цитата:
    Надо настроить так, чтобы один раз этот сетевой диск подрубить и больше пользователи ни о чем не заморачивались и всегда могли на него зайти.  

    Если мне память не изменяет, то винда имеет привычку сбрасывать пароли время от времени.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 14:14 09-02-2011
    gammaray

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Ну конечно создал! Когда я в ручную создаю ключ на пользователя login2 (win+r, control userpasswords2, Дополнительно, Управление паролями - как раз упомянутый выше механизм Сохранения имен пользователей и паролей), то все работает. Диски подключаются и соединение с ними нормально восстанавливается после перезагрузки компа. Но хочется как-то обойти использование GUI, чтобы только запустить батник и все сразу нормально заработало.
    В логах безопасности никакой инфы о подключения не нашел. Через Управление компьютером можно смотреть (так же как и через управление ролью Файловые сервер) текущие сеансы. Но там, как я понимаю, именно отображаются текущие установленные сеансы. А попытки подключения сетевого диска там не отображаются. Как-то далеко мы уже от темы с бат-файлами ушли. Вообщем проблема такова: как с помощью командной строки добавить ключ с записью login2???
    Ответ фактически прописан здесь: http://support.microsoft.com/kb/287536
    Там прямо так и написано: "По умолчанию, механизм "Сохранение имен пользователей и паролей" создает "ключ" для любого подключения в интерфейсе GUI, требующего использования различных учетных данных. При создании подключения из командной строки с использованием команды "net use" и при вводе учетной информации данный ключ не создается."
    И приводится пример для ключа /savecred. Только он не работает у меня (см. посты выше). Кто-нибудь знает, как им точно пользоваться?
     
    Добавлено:
    Нашел вот здесь: http://forum.ixbt.com/topic.cgi?id=22:62104#15
    Но что это за папка такая IPC$? Это какая-то системная шара. На серваке у меня она тоже есть. После выполнения команды:

    Код:
    net use \\server\IPC$ /user:login2

    шара снова становится доступной. Но это опять же вариант с бат-файлом на автозагрузке, который не подходит. Бат-файл должен выполниться один раз и все потом должно работать.  
    P.S. Что все таки это за папка IPC$? И что означает маппинг net use без указания сетевого диска? Папка эта все равно никак недоступна, но после выполнения net use (просмотр текущих сетевых соединений) выводится:
    Локальный  Удаленный
    Z:               \\server\folder
                      \\server\IPC$
     
     
    Добавлено:
    Так... Про папку IPC$ что-то нашел: http://support.microsoft.com/default.aspx?scid=kb;ru;314984
    Написано: "Общий ресурс IPC$ используется при организации временных подключений, создаваемых приложениями для обмена данными с помощью именованных каналов. Как правило, он применяется для удаленного администрирования серверов в сети."
    Но как я уже говорил подключаться к этой папке нельзя, никакие батники в автозагрузке стоять не должны. Так что вопрос остается все тот же: как пользоваться ключом /savecred. И то ли это вообще, что мне нужно в моей ситуации?
     
    Добавлено:
    Дальше - больше! Реально надо использовать ключ /savecred. Сделал следующее:

    Код:
    net use z: \\server\folder /savecred  

    Запросил в командной строке логин и пароль, я его ввел, диск подрубился и САМОЕ ГЛАВНОЕ этот ключ создался в Управлении паролями! Остается последний вопрос. Как сделать так, чтобы в самом батник прописать логин и пароль, чтобы он не запрашивался при его исполнении? Выполнение:

    Код:
    net use z: \\server\folder /u:login2 /savecred
     
    приводит к ошибке "Используется команда с конфликтующими ключам" хотя здесь http://support.microsoft.com/kb/287536 в примерах прописывается аналогичная команда! Где ошибка? Помогите, ПЛИЗ!

    Всего записей: 14 | Зарегистр. 15-01-2007 | Отправлено: 14:26 09-02-2011 | Исправлено: gammaray, 14:54 09-02-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    gammaray
    Ну тогда посмотри сюда: net help use
     
    Затем задай пароль для login2 и этот пароль задавай сразу в net use и указывай ключи /savecred и /persistent:yes
    Может получится.
     
    Надеюсь у тебя рабочка не на WinXP Home?
     

    Цитата:
    И что означает маппинг net use без указания сетевого диска?

    Ты же можешь обращаться к ресурсу и по UNC типа \\server\share\document.doc и вовсе не обязательно назначать букву шаре. Команда net use без указания сетевого диска скажет винде, что надо использовать указанное имя пользователя и пароль для доступа к указанной шаре.
     
    Добавлено:

    Цитата:
    приводит к ошибке "Используется команда с конфликтующими ключам"

    Может имеется ввиду, что конфликтует с уже сохраненной конфигурацией.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:33 09-02-2011
    gammaray

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Смотри, ситуация такая. Я заранее удалил все сохраненные ключи. Про хелпы я уже перечитал кучу инфы! Я щас вообще тестирую на клиенте Windows 7 Ultinate. Конечные компы на Win XP Pro, так что механизм сохранения паролей там есть (в курсе, что его нет на Home). Так вот. Пароля у login2 нет. Как в net use кстати это указать (что пароль пустой). Да и до пароля даже дело не доходит.  

    Код:
    net use z: \\server\folder /u:login2 /savecred
    уже вызывает ошибку "Используется команда с конфликтующими ключам". Т.е. не нравится ему, что я туда уже логин вписываю, потому что так

    Код:
    net use z: \\server\folder /savecred

    работает нормально, но приходится вводить логин и пароль (пустой) вручную. А пользователь этого сделать не сможет. Надо такой батник сделать, чтобы запустить его ЕДИНОЖДЫ на конечных компах и он безо всяких доп. вопросов должен замапить диски так, чтобы они были доступны и после перезагрузки.

    Всего записей: 14 | Зарегистр. 15-01-2007 | Отправлено: 15:50 09-02-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    gammaray
    Задай юзеру пароль!
    Если с /savecred не прокатит, посмотри, может достаточно будет /persistent:yes.
     
    Добавлено:
    да, в net help use про savecred написано, что этот параметр игнорируется, если пароль не запрашивается.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 16:03 09-02-2011
    gammaray

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Не могу я пароль поставить. Идеология такая, что у нас паролей быть не должно. Только один для входа на сервер и все. Это уже не мои замуты... Да и дело не в пустом пароле. Так

    Код:
    net use z: \\server\folder "" /user:login2

    можно задать пустой пароль с помощью "".  /savecred нужен обязательно, потому что иначе после перезагрузки диски восстанавливаются (если /persistent:yes), но к ним нет доступа, потому что не сохранен ключ на доступ. Я уже хочу хотя бы от пользователей скрыть логин. http://support.microsoft.com/kb/287536 пишут так:
    При вводе команды net use * \\ имя компьютера \ имя ресурса /u: имя домена \ имя пользователя /savecred пользователю будет необходимо ввести пароль.
    Так как нужно написать, чтобы уже вшить логин в этот батник и при этом не было бы ошибки о конфликтующих ключах? Почему  

    Код:
    net use z: \\server\folder /u:login2 /savecred
    выдает эту ошибку, хотя написано в точности по их примеру?

    Всего записей: 14 | Зарегистр. 15-01-2007 | Отправлено: 16:23 09-02-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    gammaray
    Я тебе уже выше написал про это, вот цитата из хелпа:

    Цитата:
    /SAVECRED          Указывает, что имя пользователя и пароль следует  
                                   сохранить. Этот параметр игнорируется, если команда не
                                   запрашивает имя пользователя и пароль.

     

    Похоже способа сделать то что ты хочешь и так как ты хочешь нет.
    Выбирай другие варианты.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 16:39 09-02-2011
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru