当 PC 不在域中时,如何使用另一个 DNS 服务器?

当 PC 不在域中时,如何使用另一个 DNS 服务器?

我的域中有两个 DNS 服务器(在 DC 上),我的客户在办公室直接连接或通过 VPN 连接时会使用这些服务器。我想设置另一个外部 DNS 服务器,并告诉 PC 在不在域中时使用此服务器。这可以通过脚本或 GPO 实现吗?


谢谢你的回答,Emil,Esa 说得对,我的笔记本电脑都已经加入了域,我需要一个脚本来检测笔记本电脑何时连接到域,何时没有连接到域。我已将你的脚本改编为:

如果((Test-ComputerSecureChannel)-eq $ true){

write-host -fore green “我已加入域!”

} 别的 {

write-host -fore red "哎呀,工作组!" }

但它并不总是能检测到域名,不知道为什么


我还有一个想法(不知道是否可行,我没有测试过),就是为所有客户端配置手动 DNS 服务器:主 DNS 服务器 - 我的 DC1 的 DNS;辅助 DNS 服务器 - 外部 DNS 服务器。这里的问题是,我必须找到一种方法,让 Windows 立即从主 DNS 切换到辅助 DNS... 我认为必须在客户端停用缓存模式。你们觉得呢?我应该尝试找到一个脚本来检测 PC 是否在域中,还是尝试使用此解决方案?

答案1

是的! 这个帖子描述您可能用于设置 DNS 的一行代码。例如:主要值:

netsh interface ipv4 set dns "Local Area Connection" static 192.168.0.2

对于实际上专门针对域外的客户端执行此操作,我建议尝试将 netsh 命令与检查域的 if 结合起来……这也显示这里

if ((gwmi win32_computersystem).partofdomain -eq $true) {
   write-host -fore green "I am domain joined!"
} else {
   write-host -fore red "Ooops, workgroup!"
}

您还可以在启动时运行脚本,以便客户端在启动时进行检查。

无论如何,在我看来你的脚本可能看起来像这样:

if ((gwmi win32_computersystem).partofdomain -eq $true) {
   write-host -fore green "I am already joined"
} else {
   write-host -fore red "Not joined, using secondary dns"
   netsh interface ipv4 set dns "Local Area Connection" static <Ip-address>
} 

(我们的大多数答案都来自这些论坛,奇迹:p)

祝你好运,埃米尔

答案2

如果它们被配置为 DHCP 客户端(这是推荐的配置),那么它们将被分配 DHCP 服务器分配的任何 DNS 服务器。

相关内容