@@ -405,7 +405,7 @@
}
static void
-do_dns_domain_wmic(bool add, const struct tuntap *tt)
+do_dns_domain_pwsh(bool add, const struct tuntap *tt)
{
if (!tt->options.domain)
{
@@ -413,10 +413,13 @@
}
struct argv argv = argv_new();
- argv_printf(&argv, "%s%s nicconfig where (InterfaceIndex=%ld) call SetDNSDomain '%s'",
- get_win_sys_path(), WMIC_PATH_SUFFIX, tt->adapter_index,
+ argv_printf(&argv,
+ "%s%s -NoProfile -NonInteractive -Command Set-DnsClient -InterfaceIndex %lu -ConnectionSpecificSuffix '%s'",
+ get_win_sys_path(),
+ POWERSHELL_PATH_SUFFIX,
+ tt->adapter_index,
add ? tt->options.domain : "");
- exec_command("WMIC", &argv, 1, M_WARN);
+ exec_command("PowerShell", &argv, 1, M_WARN);
argv_free(&argv);
}
@@ -1208,7 +1211,7 @@
if (!tt->did_ifconfig_setup)
{
- do_dns_domain_wmic(true, tt);
+ do_dns_domain_pwsh(true, tt);
}
}
#else /* platforms we have no IPv6 code for */
@@ -1527,7 +1530,7 @@
NI_IP_NETMASK | NI_OPTIONS);
}
- do_dns_domain_wmic(true, tt);
+ do_dns_domain_pwsh(true, tt);
}
@@ -6547,7 +6550,7 @@
{
if (!tt->did_ifconfig_setup)
{
- do_dns_domain_wmic(false, tt);
+ do_dns_domain_pwsh(false, tt);
}
netsh_delete_address_dns(tt, true, &gc);
@@ -6574,7 +6577,7 @@
}
else
{
- do_dns_domain_wmic(false, tt);
+ do_dns_domain_pwsh(false, tt);
if (tt->options.ip_win32_type == IPW32_SET_NETSH)
{
@@ -40,7 +40,7 @@
#define WIN_ROUTE_PATH_SUFFIX "\\system32\\route.exe"
#define WIN_IPCONFIG_PATH_SUFFIX "\\system32\\ipconfig.exe"
#define WIN_NET_PATH_SUFFIX "\\system32\\net.exe"
-#define WMIC_PATH_SUFFIX "\\system32\\wbem\\wmic.exe"
+#define POWERSHELL_PATH_SUFFIX "\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"
/*
* Win32-specific OpenVPN code, targeted at the mingw