我的域中有两个 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 服务器。