2014-01-16 3 views
1

У меня возникли проблемы с созданием командного файла, мне нужно сначала удалить файл .msi, а затем запустить файл .exe, это то, что у меня есть до сих пор.Создание пакетного файла для запуска exe. и вывод в файл журнала с помощью запуска/завершения GPO

echo on 

title remove mimecast 3.5.6 

if exist c:\windows\mimecastrem.tag goto alldone 

msiexec.exe /x {86C4653D-E9B2-4421-8578-D2B953FFAEDA} /qn /L "C:\windows\mimecast.log" 

start \\fcmsvr2\MimecastMSO\deploymimecast.exe /zap 

echo. >c:\windows\mimecastrem.tag 

:alldone 

rem exit 

Если я запускаю это в DOS вошел на компьютере он работает нормально, я попытался добавить это запуск и завершение работы объекта групповой политики и пакетные пробеги, но только удаляю файл .msi и не начать .exe, есть ли способ добавить к нему журнал, чтобы я мог понять, почему он не работает?

Благодаря DAVID

+0

Добавить 'паузу' до и после строки' start' для отладки. Вы можете найти разрешения, которые могут быть проблемой, если системная учетная запись используется, поскольку у нее нет доступа к сетевым ресурсам. – foxidrive

+0

Я попытался сделать паузу, и это подтвердило, что скрипт работает, но при добавлении этого параметра в logon gpo он не будет запущен, запустите \\ fcmsvr2 \ MimecastMSO \ deploymimecast.exe/zap как мне его изменить из системной учетной записи? – user3204347

+0

Я не знаю, какой объект GPO я не могу посоветовать. Было ли сообщение об ошибке на консоли до второй паузы? – foxidrive

ответ

0

Создать скрипт-обертка для захвата выходного

При попытке запуска пакетных команд из объекта групповой политики, я обычно два пакетных файлов:

  • Один пакетный файл делает всю работу.
  • Один, чтобы позвонить другому и перенаправить все выходные данные.

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

batch_worker.cmd

@ECHO OFF 
SETLOCAL 

@ECHO Proceeding with important tasks... 
REM do other stuff (delete, install, etc.) 

batch_wrapper.cmd

CALL %~dp0batch_worker.cmd > C:\Windows\TEMP\batch_worker.log 2>&1 

Self-Обертывание

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

batch_worker.cmd

@ECHO OFF 
SETLOCAL 

IF NOT "%_LOGGING%"=="1" (
    SET _LOGGING=1 
    CALL "%0" %* > C:\Windows\TEMP\batch_worker.log 2>&1 
    EXIT /B %ERRORLEVEL% 
) 

@ECHO Proceeding with important tasks... 
REM do other stuff (delete, install, etc.) 
+0

Привет, я пробовал оба, но файл журнала просто выводит файл bacth, он не говорит мне, если что-то происходит неудачно или успешно. – user3204347

0

сеть файлов из объекта групповой политики

Любые сценарии запуска, которые запускаются на компьютере Windows, будет иметь сетевой идентификатор учетной записи компьютера (COMPUTERNAME$). Обычно эта учетная запись не имеет доступа к большинству сетевых ресурсов. Единственным исключением является объект групповой политики. У всех учетных записей компьютеров есть доступ к объекту групповой политики (который хранится в виде файлов).

Если ваш сценарий нуждается в другие файлы:

  • хранить их в общедоступном для чтения месте сети (или предоставлять какой-либо член RX доступ к домену).
  • Храните их вместе с объектом групповой политики.
    Когда вы создаете/добавляете сценарий запуска, оснастка GPMC предоставляет вам доступ к сетевому местоположению (под SYSVOL), где должен находиться сценарий. Используйте этот UNC-путь для сохранения любых других файлов, к которым должен иметь доступ сценарий.
+0

Я снова создал объект групповой политики и добавил свой командный файл вместе с файлом .exe в папку запуска и запуска системы sysvol снова GPO запускается при запуске, удалив часть .msi, но все еще не запускает файл .exe, есть ли что-нибудь разрешение мудро, я пропавше? – user3204347

+0

Теперь я установил пакетный файл в \\ fcllp.lan \ SysVol \ fcllp.lan \ Policies \ {763BE5F3-610B-49BD-A7E9-045503C0DD33} \ Machine \ Scripts \ Startup \ MSORemoval.bat – user3204347

+0

Вам нужно поставить .EXE (и любой другой файл, который не хранится на всех машинах, к которым будет применяться объект групповой политики, должен запускаться сценарий) в том же каталоге, что и файл .BAT. Проблема заключается в том, что учетная запись машины не имеет доступа к '\\ fcmsvr2 \ MimecastMSO'. – mojo

Смежные вопросы