Назад | Перейти на главную страницу

удаленное выполнение команд на сервере Windows 2003

У меня есть единственная команда, которую я хотел бы выполнить на удаленном сервере Windows 2003.

Я пробовал wmic, который работает, но единственный способ отобразить стандартный вывод - это перенаправить его в локальный файл, а затем перечислить локальный файл (что-то неуклюжее).

Я также пробовал psexec, но, похоже, у него проблемы с работой с серверами Windows 2003 (по крайней мере, сообщается, что последняя версия работает, а более старые версии недоступны).

Я пытался держаться подальше от утилиты Windows rcmd, потому что считаю, что необходимо установить серверный компонент, и я не хотел предоставлять общий доступ к командной строке на машине.

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

Примечание:

Вот очень простой пример, который я использовал, пытаясь заставить PsExec работать:

C:\Program Files\SysInternalsSuite>psexec \\remote-svr -i -u MyUsername D:\Public\do.bat

PsExec v1.95 - Execute processes remotely
Copyright (C) 2001-2009 Mark Russinovich
Sysinternals - www.sysinternals.com

Password:

D:\Public\do.bat exited on remote-svr with error code 1.

Мой пример файла do.bat прост и содержит только следующую строку:

copy dg.bmp dg1.bmp

Исходный файл dg.bmp присутствует на удаленном компьютере, а файл назначения - нет. У меня есть доступ на запись к удаленному компьютеру.

Когда я выполняю указанную выше команду PsExec, файл do.bat не запускается (хотя у меня есть привилегии на удаленном сервере), и я не получаю на консоль ожидаемого вывода. Мне нравится идея использования PsExec, поэтому, если есть какие-либо советы о том, что я делаю неправильно, я был бы признателен их выслушать.

Спасибо...

Какие именно проблемы возникают с PSExec и W2k3? Мы широко используем их вместе в более чем 500 серверных средах W2k3 ...

Фактически, весь пакет PSTools потрясает мой мир.

РЕДАКТИРОВАТЬ:

Это продолжение вашего редактирования исходного билета.

Проблема, с которой вы столкнулись, заключается в том, что «копия» является функцией CMD.exe. Он не существует как отдельный исполняемый файл сам по себе. То же, что нет ни Del.exe, ни MD.exe и т. Д.

Если вы хотите, чтобы ваш пример работал, вам нужно вызвать CMD через PSexec и передать ему команду копирования. Вот пример:

psexec -u MyDomain\MyUsername -p MyPassword \\MyServer cmd.exe /c copy c:\sys\util\monitor_localhost.bat blah.bat

Результат такой:

==================================
PsExec v1.86 - Execute processes remotely Copyright (C) 2001-2007 Mark Russinovich Sysinternals - www.sysinternals.com

1 file(s) copied. cmd.exe exited on fcgwnt53 with error code 0.
==================================

Админ-арсенал позволяет выполнять удаленные команды к одной, некоторым или всем вашим системам Windows. Попробовать можно бесплатно.

После того, как вы выберете, на каком компьютере (-ах) выполнить вашу команду, просто выберите Инструменты -> Удаленное управление, и вы в пути.

Стандартные команды могут выполняться через telnet, который по умолчанию отключен на всех рабочих станциях Microsoft, но может быть включен через GPO и добавление пользователя в группу объектов «Пользователи Telnet». Этого должно хватить для большинства системных команд.

Вы можете попробовать опцию «-c» для psexec. Он скопирует файл в удаленную систему, а затем выполнит его, в противном случае он будет ожидать, что он будет присутствовать в удаленной системе. Так что что-то вроде (скопируйте do.bat в c: локальной системы, а затем):

psexec -c \ remote-svr -i -u MyUsername c: \ do.bat

Кроме того, почему вы хотите, чтобы это взаимодействовало с сеансом рабочего стола удаленной системы (параметр -i)?

hth, ~ H

Общая команда предполагает, что do.bat локально присутствует на удаленном сервере в указанном месте. Если это не так, вы можете попросить psexec.exe скопировать файл с вашего локального компьютера на удаленный, используя параметр -C, а затем запустить его.

Также, как указано, если вы не делаете ничего интерактивного со скриптом, не включайте параметр -I.

Я пробовал beyondexec.exe, это хорошая замена psexec.exe.

Но я предпочитаю psexec.exe, так как он теперь предоставляется Microsoft, поэтому ястребам безопасности легче оправдать его существование на серверах.

Я могу ошибаться, но разве PS 2.0 не допускает удаленных команд, а PS 1.0 - только локальных?

Я не могу сказать, что когда-либо пробовал это на машине с Windows, но в Linux вы можете ограничить команды, которые ssh может выполнять, с помощью скрипта Authprogs.

Я установил версию ssh для HP в большинстве своих систем Windows для удаленного использования командной строки. Я обнаружил, что его довольно легко установить по сравнению с некоторыми другими дистрибутивами ssh для Windows. Погуглите «SP25021», чтобы найти установщик, предоставленный HP.

Я уверен, что доступны гораздо более новые версии sshd для Windows. Я бы посоветовал использовать самую последнюю возможную версию, если ваши системы не защищены серьезными брандмауэрами.

См .: Ограничение команд SSH. http://www.cmdln.org/2008/02/11/restricting-ssh-commands/