2016-11-29 6 views
1

Я пытаюсь выполнить пакетный скрипт с удаленного сервера с помощью WMIC и получить выход прилагается «WMIC_Output.JPG»несоответствие выхода пакетного сценария через WMIC

WMIC_Output

Выход я вижу из команда не является точной. когда я запускаю тот же скрипт на реальном сервере, я могу видеть правильный вывод. См. Прилагаемый скриншот «Выход.JPG» Output

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

Пожалуйста, дайте мне знать параметры/переключатели WMIC, которые необходимо включить, чтобы получить требуемый выход.

-Abhi

+0

является возможность перенаправить вывод в файл, а затем прочитать его? – npocmaka

+0

Поместите команду «cd» в пакетный файл. Вероятно, это покажет вам, что вы находитесь в каком-то каталоге, например, «C: \ Windows \ System32» или какой-то такой каталог по умолчанию. Возможно, вам придется изменить файл bat, чтобы он попал в нужный каталог до начала выполнения. – blackpen

+0

@blackpen Я меняю каталог в сценарии перед выполнением команды кд C: \ Program Files \ Амазонка \ AWSCLI \ C: команды AWS .... -Abhi –

ответ

0

Выполнить его, указав /k opiton для cmd.exe. Вы также должны защищать пробелы в имени командного файла, используя кавычки.

C:\Users\user>wmic /node:localhost process call create 'cmd.exe /k "C:\\Users\user\\AWS__APIGATEWAY - 4xerror - Windows.bat" ' 

Детали:

При выполнении ...

C:\Users\user>wmic /node:localhost process call create "cmd.exe C:\\Users\user\\AWS__APIGATEWAY - 4xerror - Windows.bat" 
Executing (Win32_Process)->Create() 
Method execution successful. 
Out Parameters: 
instance of __PARAMETERS 
{ 
     ProcessId = 2192; 
     ReturnValue = 0; 
}; 

В cmd.exe потребности /k вариант. Когда мы добавляем опцию «/ к» ...

C:\Users\user>wmic /node:localhost process call create "cmd.exe /k C:\\Users\user\\AWS__APIGATEWAY - 4xerror - Windows.bat" 
Executing (Win32_Process)->Create() 
Method execution successful. 
Out Parameters: 
instance of __PARAMETERS 
{ 
     ProcessId = 4064; 
     ReturnValue = 0; 
}; 

и показывает это в появившемся всплывающем окне:

'C:\\Users\user\\AWS__APIGATEWAY' is not recognized as an internal or external command, 
operable program or batch file. 

C:\Windows\system32> 

Когда мы помещаем в кавычки имя пакетного файла, он выполняет правильно и производит выход в новом окне CMD:

C:\Users\user>wmic /node:localhost process call create 'cmd.exe /k "C:\\Users\user\\AWS__APIGATEWAY - 4xerror - Windows.bat" ' 
Executing (Win32_Process)->Create() 
Method execution successful. 
Out Parameters: 
instance of __PARAMETERS 
{ 
     ProcessId = 5788; 
     ReturnValue = 0; 
}; 
+0

Я все еще получаю ту же ошибку. Не знаю, где я ошибаюсь. C: \ Users \ a-Abhinandan.aithal> wmic/node: вызов процесса create 'cmd.exe/k "E: \\ SiteScope \\ scripts.remote \\ AWS_APIGATEWAY - 4xxerror - Win dows.bat "' Выполнение (Win32_Process) -> Создать() Выполнение способа успешно. Параметры выхода: экземпляр __PARAMETERS { ProcessId = 5128; ReturnValue = 0; }; -Abhi –

+0

Если вы замените содержимое своего скрипта шлюза на одну команду проверки liner, это успешно работает? – blackpen

0

, как npocmaka сказал вам sendoutput в файл, а затем прочитать его. С wmic экранирование сложно. Пожалуйста, попробуйте

set "fileout=c:\....\output.txt" 
wmic /node:dnvprdsis11.....org process call create "cmd /c E:\\sitescope\\...Windows.bat > \"%fileout%\"" >NUL 2>NUL 
ping localhost -n 2 -w 300 >NUL 
if exist "%fileout%" type "%fileout%" 

... > \"%fileout%\ ..." также может понадобиться избежать ... ^> \"%fileout%\" ...