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

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

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

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 109 110 111 112 113 114 115 116 117

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    01MDM



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

    Цитата:
    не сочти за неуча

    Да я сам не далек. Все эти доменные примочки для меня как другая галактика.. Так уж жизнь сложилась.

    Цитата:
    какие будут предложения?

    Если нужно выполнить команду на "третьем" компьютере, то подозреваю надо прописать psexec в start.bat на втором. Хотя какой смысл запускать батник на "втором", чтоб он отработал на "третьем". Когда можно все это сделать с "первого".
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:33 04-09-2009
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Цитата:
    Да я сам не далек. Все эти доменные примочки для меня как другая галактика.. Так уж жизнь сложилась.

    Цитата:
    Если нужно выполнить команду на "третьем" компьютере, то подозреваю надо прописать psexec в start.bat на втором. Хотя какой смысл запускать батник на "втором", чтоб он отработал на "третьем". Когда можно все это сделать с "первого".

    вообщем что бы объяснить что вообще происходит попробую заново изложить мое первое сообщение по этой теме.
     
    имеется домен под управление Win 2003 Server. имеется 2некоторые машины сети. на обе машины логинятся 2 самых обыкновенных юзера. просто один из них начальник второго. далее начальнику надо выполнить кое, что на компьютере подчиненного, отсюда и весь сыр бор. на компе начальник я кладу батник и psexec( точнее все это я заверну в *.exe файл для сохранности паролей которые прописаны в батнике ), дальше я видимо выкладываю батник( start.bat - не путать с тем что запускает psexec ) на сетевой диск подчиненного и оттуда он уже выполнится через psexec.
    у меня остались ще сомнения, но это я проверю завтра на работе. а сомнения берутся из того, что start.bat просто бесшумно должен изменить ключ в реестре( запустив start.reg с ключом /s ) , НО у учетки подчиненного нету прав на изменение реестра и выполнение bat-файлов.  
    вот и вопрос psexec попытается запустить start.bat от имени подчиненного, начальника или доменного админа( последний прописан в строке запуска psexec -u -p )???
    я тут подумал а зачем мне нужен start.bat??? я ведь могу в psexec написать так
    Код:
    psexec \\192.168.48.4 -u Administartor -p password T:\start.reg /s
    но последнее мое сомнение это не отменяет и суть все также

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 20:53 04-09-2009 | Исправлено: Alukardd, 20:59 04-09-2009
    fd1136

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

    Цитата:
    T:\start.reg /s

    Так не пойдет.
     
    Надо

    Код:
     
    regedit /s T:\start.reg

    Всего записей: 49 | Зарегистр. 09-11-2006 | Отправлено: 21:36 04-09-2009
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    fd1136
    спс. может ты заодно скажешь от чьего имени пойдет выполнение regedit?

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 21:38 04-09-2009
    01MDM



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

    Цитата:
    start.bat просто бесшумно должен изменить ключ в реестре

    Так зачем тебе psexec? Reg.exe нормально меняет ключи в реестре удаленной машины..
    Даже можешь загрузить все ветки к себе в свое "логово" или к начальнику.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:39 04-09-2009
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    эм... мне не нужно утилит удаленной правки реестра или еще что-то в этом роде... надо что бы все происходило по клику на батник( а точнее конвертированный в exe ) за компом начальника! ни каких умных действий и тому прочий доступ начальника к реестру подчиненного не допустимы!( мне все равно кто они между собой, админ пока еще я и ни кто кроме меня не будет копаться в системе, а тем более в реестре, намеренно или нет меняя значения, которые не следует трогать )

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 22:48 04-09-2009 | Исправлено: Alukardd, 22:48 04-09-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alukardd
    Ну так и составь батник/exe через reg
     
    reg add
    reg load
    reg unload
     
    Все в твоих силах без стронних утилит, а-ля psexec.exe
     

    Код:
     
    @echo off
     
    reg load hku\NACHALNIC \\192.168.4.44\C$\Documents and Settings\PODCHINENNY\ntuser.dat"
    reg add hku\NACHALNIC\test\test\test /v "Iam" /t reg_sz /d "Я начальник, ты ..." /f
    reg unload hku\NACHALNIC
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:51 04-09-2009 | Исправлено: 01MDM, 23:06 04-09-2009
    Alukardd



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

    Цитата:
    reg add  
    reg load  
    reg unload

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

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 23:09 04-09-2009
    01MDM



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

    Цитата:
    с какими правами он будет пытаться занести данные в реестр???

    Со своими, текущими.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:11 04-09-2009
    Alukardd



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

    Цитата:
    Со своими, текущими.

    это с какими?
    1 - с правами учетки начальника. который инициирует выполнение psexec
    2 - с правами бедного подчиненного над реестром которго происходит надругательство
    3 - с правами учетки доменного админа от имени которого psexec подключился к компу подчиненного

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 23:42 04-09-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alukardd
    С правами, кто запускает. У начальника хватит сил? Допустим, без всяких доменных заморочек, я спокойно выполняю эти команды со своего ноутбука с администаторской УЗ (XP Home) на компьютере в другой комнате (XP Pro). На компьютере, где вносятся изменения в реестр, должна быть запущена служба "Удаленный реестр" (RemoteRegistry)

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:52 04-09-2009
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    кароче ладно тяжко так с тобой объяснятся) спсибо за помощь по bat части) права завтра проверю...( точнее уже сегодня)

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 00:37 05-09-2009
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    а вот и я
    вообщем тут дело такое с этой бедой...
    все исправил что надо было положил на общий ресурс reg.bat( он через команду reg add всё прекрасно меняет ) но psexec видимо не умеет работать с сетвым диском ( I:\reg.bat в моем случае ).
    Код:
    psexec \\192.168.47.%%i -u DOMAIN\Alukardd -p password I:\reg.bat

    не долго думая положил на удаленную машину( подчиненного )новый бат -start.bat  следующего содержания
    Код:
    I:\reg.bat
    , подумав что сама-то машина знает о своих сетевых дисках! ан нет и тут при выполнения кода так
    Код:
    psexec \\192.168.47.%%i -u DOMAIN\Alukardd -p password D:\1\start.bat
    он мне ругнулся что диска I:\ он не знает!!! если прийти и нажать на файл start.bat на машине подчиненного, то он почему-то знает о сущетсвовании I:\ и все выполнит, а при удаленном запуске он вдруг забывает про него!
    я вообще в ступоре теперь, если я не могу psexec передать адрес вида \\server\file не могу и через сетевой диск I:\file, не класть же КАЖДОМУ подчиненному файл на комп или в профиль.
     
    Добавлено:
    это просто пиииип!!!
    вообщем файл теперь открывается ( я его положил каждому на локальный диск LogOn скриптом ), срабатывает пишет "Операция успешно завершена" - это типо внесение в реестр произошло, дальше psexec говорит что "error code 0" и вообще все в шоколаде...
    а на деле ни чего не изменилось, на компе подчиненного все осталось как будто скрипт и не работал! этого я вообще не понимаю, ладно пишет ошибка, так исправим, а так хз в чем дело даже!
     
    Добавлено:
    все это очень странно, выполнил psexec . . . cmd.exe открылась командная строка, команды типа mkdir выполнились на удаленной машине, а типа reg add нет!
    здается мне что реестр удаленно поправить не удастся по крайней мере ветки HKCU, хотя бред - команда-то выполняется локально от имени системы!!!
     
    Добавлено:
    Я кажется втыкнул в очередной прикол винды, теперь надо решить следующую проблему...
    вообщем все операции с реестром особенно над ветками HKCU следует выполнять от имени пользователя у которого требуется произвести изменение, т.е. на удаленной машине надо юзать не reg add, a
    Код:
    runas /noprofile /user:DOMAIN\user "D:\start.bat"
    это только пример вся трабла в том что тут нельзя задать пароль а на машину с которой вызывается все это( т.е. машина начальника ) удаленный ввод не перенаправляется и считается что пасс неверный!!!
    кароче вникать в этот бред ни кого не прошу... хочу только что бы кто-о подсказал либо как передать пароль в runas, либо как подругому выполнить батник от имени нужного пользователя?

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 15:13 05-09-2009 | Исправлено: Alukardd, 18:10 05-09-2009
    AgentMario

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите пожалуйста!
    Вот энто вот :
     
    dir /b >test.cfg
     
    перезаписывает файл в который заносит все имена имеющиеся в данном каталоге. Нужно чтобы он записывал только имена папок! Либо же удалял из этого файла ненужные строки, так как я знаю имена ненужныхфайлов в этом каталоге лежит батник и этот же файл, который он перезаписывает (test.cfg).
    Второе было бы лучше!

    Всего записей: 5 | Зарегистр. 25-08-2009 | Отправлено: 01:21 06-09-2009 | Исправлено: AgentMario, 01:22 06-09-2009
    ewild

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AgentMario не забывайте о справке команда /?  
     

    Код:
    dir /?
    ...
      /A          Displays files with specified attributes.
      attributes   D  Directories
    ...
      /B          Uses bare format (no heading information or summary)
     

     

    Цитата:
    dir /b >test.cfg
    ...
    чтобы он записывал только имена папок!

    Таким образом вам подойдет

    Код:
    dir /b /a:d >test.cfg

     
    Примечание:
    dir /b /a:d возвращает имена папок (e.g. "111" "222")
    dir /b /s /a:d возвращает полные пути (e.g. "C:\test\111" "C:\test\222" "C:\test\222\333")

    Всего записей: 1194 | Зарегистр. 13-08-2005 | Отправлено: 02:00 06-09-2009 | Исправлено: ewild, 02:07 06-09-2009
    AgentMario

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо! И правда.. чёт я завтыкал глянуть в справку... А как насчёт второго варианта? чтоб он удалял строки. Можно по именам, а можно что просто удалял последнии 2 строки.

    Всего записей: 5 | Зарегистр. 25-08-2009 | Отправлено: 03:19 06-09-2009
    01MDM



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

    Цитата:
    как передать пароль в runas, либо как подругому выполнить батник от имени нужного пользователя?

    Никак. Runas принимает пароль только с клавиатуры. Psexec.

    Цитата:
    здается мне что реестр удаленно поправить не удастся по крайней мере ветки HKCU

    Я же приводил пример, как можно добавить значение в HKCU любого пользователя на удаленной машине, независимо от того залогинен он или нет.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 08:12 06-09-2009
    Alukardd



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

    Цитата:
    Никак. Runas принимает пароль только с клавиатуры.  

    это я нашол как делается...
    а с батником есть решение! вот такое:
     
    echo пароль | runas /netonly /user:workgroup\user "shutdown /s /m \\xxx.xxx.xxx.xx"
    rem переназначение стандартного вывода программы 'echo' на стандартный ввод программы 'runas'
     
    runas /netonly /user:workgroup\user "shutdown /s /m \\xxx.xxx.xxx.xx" <текстовый_файл_с_паролем
    rem переназначение стандартного ввода программы 'runas'
     

    Цитата:
    Я же приводил пример, как можно добавить значение в HKCU любого пользователя на удаленной машине, независимо от того залогинен он или нет.

    если повторишься или кинешь ссылочку, то буду оч признателен, а то с runas плохой вариант т.к. начальнику придется вводить пароли подчиненных( это по крайней мере неудобно смотреть их для каждого подчиненного ).

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 13:59 06-09-2009
    01MDM



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

    Цитата:
    echo пароль | runas /netonly /user:workgroup\user "shutdown /s /m \\xxx.xxx.xxx.xx"  

     
    Ну не знаю, такой вариант обсуждался. У меня не работает, но без /netonly.  
     

    Цитата:
    если повторишься или кинешь ссылочку,

    Да, что-то с залогиненным не получается... Пятница... Беру слова обратно.  
    С незалогиненным:

    Код:
     
    reg load hku\test "\\192.168.0.1\C$\Documents and Settings\user\ntuser.dat"
    reg add hku\test\environment /v "test" /t reg_sz /d "test" /f
    reg unload hku\test  
     

     
    Т.е подгружаешь куст реестра неактивного пользователя "user" с машины \\192.168.0.1 в свой реестр (в hku), вносишь изменения, выгружаешь.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:53 06-09-2009 | Исправлено: 01MDM, 14:57 06-09-2009
    Alukardd



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

    Цитата:
    Т.е подгружаешь куст реестра неактивного пользователя "user" с машины \\192.168.0.1 в свой реестр (в hku), вносишь изменения, выгружаешь.

    эм.. профиль у меня сетеой

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 15:51 06-09-2009 | Исправлено: Alukardd, 16:49 06-09-2009
       

    Страницы: 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 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru