Изменение сетевых настроек на удаленной машине через 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");
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д