Я тоже изучал это, так как я тоже хочу удаленно развернуть программное обеспечение. Я выбрал пакет sniff pstools, поскольку он доказал свою надежность в таких задачах удаленного администрирования.
Я должен признать, что определенно переосмыслил этот вызов. Вы, вероятно, уже сделали свой анализ кода и обнаружили то же самое, что и я. Я надеюсь, что, оставив этот пост, мы сможем помочь другим разработчикам.
Вот так pstools выполняет выполнение произвольного кода:
Копирует исполняемый файл системной службы в \\ server \ admin $ (либо вы должны иметь локального администратора на удаленном компьютере, либо предоставить учетные данные). После копирования файла он использует API-интерфейс Service Control Manager, чтобы сделать скопированный файл системной службой и запустить его.
Очевидно, что эта системная служба теперь может делать все, что хочет, включая привязку к именованному каналу RPC. В нашем случае системная служба установит MSI. Чтобы получить подтверждение успешной установки, вы можете либо удаленно опросить раздел реестра, либо функцию rpc. В любом случае, вы должны удалить системную службу, когда вы закончите, и удалить файл (psexec не делает этого, я думаю, они не хотят, чтобы он использовался тайно, и в этом случае оставление службы позади, по крайней мере, даст у администратора есть реальный шанс узнать, что кто-то скомпрометировал их компьютер.) Этот метод не требует предварительной настройки удаленной машины, просто у вас есть права администратора и что общий доступ к файлам и rpc открыты в брандмауэре.
Я видел демоверсии в C # с использованием WMI, но мне не нравятся эти решения. Обмен файлами и RPC, скорее всего, будут открыты в брандмауэрах. Если это не так, общий доступ к файлам и удаленное управление MMC удаленного сервера не будут работать. WMI может быть заблокирован и по-прежнему оставлять эти функции.
Я работал со многими программами, которые выполняют удаленную установку, и многие из них не так надежны, как pstools. Я предполагаю, что это потому, что разработчики используют другие методы, которые не так открыты на уровне брандмауэра.
Простое решение часто бывает неуловимым. Как всегда, моя шляпа снята людям SysInternals. Они - настоящие хакеры в позитивном старом школьном значении этого слова!