Я хочу удаленно запустить программу на Win2k8R2 Server, Web Edition, которая устанавливает службы Windows.
Установка службы afaik возможна только при наличии «экрана> 0» - это означает, что пользователь должен войти в систему, чтобы сделать это (я где-то читал, что диалоговое окно входа в систему представляет «экран 0», поправьте меня, если я м здесь не так).
Поэтому, чтобы получить экран, я открываю RDP-соединение и затем запускаю программу установки exe, которая устанавливает все без вывода сообщений.
Я заставил его работать на Windows Server 2003 уже. На 2008 R2, хотя это больше не работает.
Я предполагаю, что может быть какая-то политика безопасности или даже совершенно другая техника для достижения того, чего я хочу.
Вот код:
this.axMsRdpClient7 = new AxMSTSCLib.AxMsRdpClient7();
// ... some GUI stuff happens here..
axMsRdpClient7.Server = hostname;
axMsRdpClient7.UserName = username;
axMsRdpClient7.AdvancedSettings.Compress = -1;
axMsRdpClient7.AdvancedSettings2.DisplayConnectionBar = true;
axMsRdpClient7.AdvancedSettings7.ClearTextPassword = userpassword;
axMsRdpClient7.AdvancedSettings2.EncryptionEnabled = -1;
// Set start program information. vvv THIS IS NOT GOING TO BE EXECUTED vvv
axMsRdpClient7.SecuredSettings.StartProgram = executablePath + " " + arguments;
axMsRdpClient7.SecuredSettings.WorkDir = workingDirectory;
// ... here I'm attaching some events like OnDisconnect...
// Start connection
axMsRdpClient7.Connect();
// Now the startprogram should be executed, but doesn't.
// (at this time its ok that I have to manually log off to reach disconnect. Except you have a better idea to disconnect after startprogram finishes)
while (axMsRdpClient7.Connected != 0)
{
Application.DoEvents();
Thread.Sleep(1);
}
// End connection
axMsRdpClient7.Disconnect();
Кто-нибудь знает, почему StartProgram не выполняется? У меня нет ошибок, просто не запускается.
Или кто-нибудь знает лучший способ удаленной установки служб?
Заранее спасибо!