Изменение сетевых настроек на удаленной машине через 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");