Изменение сетевых настроек на удаленной машине через netsh - C#
Формулировка задачи:
Задача: поменять настройки сети на удаленной машине. Логин и пароль к ней имеются.
В коде C# через netsh на локальном машине меняется, на удаленной не получается.
Через командную строку получается менять и на локальной и на удаленной машине.
код в C#:
Если исключить эту строчку, то на локальной машине все работает
Но надо на удаленной, у кого есть работающий исходник? Или может кто знает другой способ?
В другой теме
Изменить в настройках сети протокол интернета (TCP/IP)
предлагают такой способ изменить настройки сети, но как сделать это на удаленной машине?
Отрывок кода:
Листинг программы
- Process p = new Process();
- p.StartInfo.FileName = "netsh.exe";
- StringBuilder parameters = new StringBuilder();
- parameters.Append("-r 199.99.9.99 -u admin -p admin");
- if (dhcp_radioButton.Checked == true)
- {
- parameters.Append(" interface ip set address name=\"").Append(name_network_textBox.Text);
- parameters.Append("\" dhcp");
- }
- else
- {
- parameters.Append(" interface ip add address name=\"").Append(name_network_textBox.Text);
- parameters.Append("\" addr=").Append(newIP_textBox.Text);
- parameters.Append(" mask=").Append(mask_textBox.Text);
- parameters.Append(" gateway=").Append(gateway_textBox.Text);
- parameters.Append(" gwmetric=").Append("1");
- }
- p.StartInfo.Arguments = parameters.ToString();
- p.StartInfo.UseShellExecute = false;
- p.StartInfo.CreateNoWindow = true;
- p.StartInfo.RedirectStandardOutput = true;
- p.Start();
Листинг программы
- parameters.Append("-r 199.99.9.99 -u admin -p admin");
Листинг программы
- /// <summary>
- /// Set's a new Gateway address of the local machine
- /// </summary>
- /// <param name="gateway">The Gateway IP Address</param>
- /// <remarks>Requires a reference to the System.Management namespace</remarks>
- public static void SetGateway(string gateway) {
- ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
- ManagementObjectCollection objMOC = objMC.GetInstances();
- foreach (ManagementObject objMO in objMOC) {
- if ((bool)objMO["IPEnabled"]) {
- try {
- ManagementBaseObject setGateway;
- ManagementBaseObject newGateway =
- objMO.GetMethodParameters("SetGateways");
- newGateway["DefaultIPGateway"] = new string[] { gateway };
- newGateway["GatewayCostMetric"] = new int[] { 1 };
- setGateway = objMO.InvokeMethod("SetGateways", newGateway, null);
- } catch (Exception) {
- throw;
- }
- }
- }
- }
Решение задачи: «Изменение сетевых настроек на удаленной машине через netsh»
textual
Листинг программы
- Process p = new Process();
- p.StartInfo.FileName = "cmd.exe";
- StringBuilder parameters = new StringBuilder();
- parameters.Append(" netsh -r 199.99.9.99 -u admin -p admin");
- parameters.Append(" interface ip set address name=local dhcp");
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д