net use mapping не работает в пакетных файлах, но работает в cmd

Итак, вот проблема:

У меня есть пользователи, использующие сценарий входа в домен (имя пользователя.bat). Сценарий просто перечисляет 4 или 5 (net use letter: \\ SERVER \ directory \). Однако, когда они открывают свой сеанс, сценарий входа не работает и возвращает системную ошибку 53 или 67 для всех из них. Я попытался запустить скрипт после того, как профиль загружен и все работает, и он все еще выдает мне ошибку.

Затем я попытался запустить ту же команду в cmd.exe. Все отображается правильно. Он также работает нормально, если я подключаю диски с помощью утилиты "Инструменты> Карта сетевых дисков".

Есть ли что-нибудь, что может помешать команде работать при запуске в командном файле, но работает правильно при вводе вручную?

4 ответа

Я столкнулся с той же проблемой. Для меня решение было так:

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

Так:

net use B: \\MYSERVER не сработало и сразу привело к ошибке 53.

net use B: \\MYSERVER\Components\ не работал и привел к ошибке 53 после паузы.

net use B: \\MYSERVER\Components сделал работу.

Два варианта:

1) Используйте Process Monitor (SysInternals) с опцией ведения журнала загрузки, фильтруя по CMD.EXE и System. Следите за процессом входа и выполнением скрипта.

2) Добавьте небольшой тест в сценарий входа пользователя, который использует TBD- переключатель ROBOCOPY для ожидания доступности сервера / общего ресурса, то есть:

setlocal
set LOG_FILE=c:\temp\foo.log
echo %DATE% %TIME% >%LOG_FILE%
%SystemRoot%\System32\robocopy.exe \\server\directory c:\temp\test /tbd /eta /log+:%LOG_FILE%
echo %DATE% %TIME% >>%LOG_FILE%
endlocal

Проверьте файл журнала, чтобы увидеть, нужно ли ROBOCOPY ждать, пока сервер / общий ресурс станут доступными.

Без сценария - если ваш пакетный файл содержит операторы ifmember для Windows 7, вы можете столкнуться с проблемой. Я использовал групповую политику для сопоставления дисков, так как я считаю, что это намного проще и гибче с группами безопасности, если это необходимо.

Несколько вещей, которые вы можете попробовать.

  1. Попробуйте использовать fqdn для имени сервера, посмотрите, добьетесь ли вы лучших результатов таким образом.

  2. Вы также можете попробовать отключить любое антивирусное программное обеспечение на сервере для его тестирования. Я видел, как McAfee загружается за 1-3 минуты, прежде чем оно позволит подключиться к любому сетевому соединению. Отвечая на вопрос McAfee, они сказали, что он настроен на то, чтобы McAfee был полностью загружен, прежде чем он разрешит подключение любого tcp/ip-соединения.

Другие вопросы по тегам