У меня Windows Server 2012 и клиент Windows 7.
Я хочу запустить psexec на моем клиенте Windows, чтобы выполнить .bat
файл на моем сервере:
psexec /accepteula \\MyServer -u MyUser -p Mypass -d -i "C:/test.bat"
Команда возвращает:
Доступ закрыт.
Когда я вхожу в свой клиент с пользователем домена, команда запускается и не терпит неудачу.
Но мне нравится запускать его с локальным (не доменным) пользователем.
Я знаю, что это очень старый вопрос, но ответы на него невероятно неполные, и это лучший результат поиска.
Итак, для работы PSEXEC с машиной есть несколько предварительных условий. В основном это ..
На компьютере, не присоединенном к домену, у вас должен быть локальный администратор. Вы будете использовать это имя пользователя при подключении к машине через psexec.
Если компьютер присоединен к домену, вам нужно будет использовать либо локального администратора на целевой машине, либо учетную запись администратора домена.
На машине должна быть открыта административная общая папка, а пользователь, к которому вы подключаетесь, должен иметь разрешения на доступ к общей папке. (Администраторы)
У вас должны быть определенные правила брандмауэра. (Опять же, то, что обычно включается при присоединении к домену.)
Довольно часто даже на машинах, присоединенных к домену, возникают проблемы с общими правами администратора на компьютере домена или проблемы, когда совместное использование не работает. В Windows Vista и более поздних версиях распространенной причиной является то, что были введены некоторые дополнительные меры безопасности / фильтрации, и некоторые разделы реестра не включались / не добавлялись, когда компьютер был присоединен к домену. Вы можете увидеть, как решить эту проблему здесь: https://support.microsoft.com/en-us/help/947232/error-message-when-you-try-to-access-an-administrative-share-on-a-wind
Другая проблема, которая часто возникает, - это необходимость добавления правил брандмауэра. В брандмауэре Windows вы должны установить «Разрешить» конкретное правило «Удаленное управление службами».
Чтобы добавить этот раздел реестра и правила брандмауэра, вы можете выполнить следующие команды.
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
netsh advfirewall firewall add rule name="PSExec TCP" dir=in action=allow protocol=TCP localport=445
netsh advfirewall firewall add rule name="PSExec UDP" dir=in action=allow protocol=UDP localport=137
Если вы собираетесь войти на свой компьютер с локальной учетной записью, даже если компьютер присоединен к домену (я не знаю, почему вы хотите это сделать), и вы пытаетесь запустить команду на присоединенном сервере к домену, вы должны убедиться, что используете правильное имя пользователя и пароль для пользователя домена на сервере.
Попробуй это -
psexec /accepteula \\server -u domain\username -p passwd -e "C:\test.bat"
Убедитесь, что учетная запись пользователя домена, которую вы используете для запуска test.bat на сервере, имеет правильные права безопасности для запуска файла на сервере.
В случае, если вы запускаете C: \ test.bat как локальный пользователь, доменом будет имя компьютера, на котором есть локальный пользователь, которого вы используете.
Учетная запись, под которой работает PSexec, должна существовать на сервере. Если вы хотите запустить команду как локальную учетную запись на сервере, присоединенном к домену, вам необходимо создать локальную учетную запись на сервере, присоединенном к домену, с тем же именем пользователя и паролем, что и на вашей рабочей станции.
Если вы просто хотите запустить команду со своей рабочей станции (не присоединенной к домену?), Вы должны сделать то, что предложил пользователь 5870571.