有没有办法在计算机列表上运行并在其上启用 NetBios?

有没有办法在计算机列表上运行并在其上启用 NetBios?

我正在寻找一种方法,在约一个月的有限时间内在我的域中的所有服务器上启用 NetBios,然后我应该再次禁用它(它被我们正在使用的某些库存应用程序使用)。你知道如何实现这个目标吗?Powershell 脚本会很好。

答案1

以下脚本将通过 PowerShell 执行您想要的操作。您需要一个文本文件,其中每行包含每个服务器的名称。该脚本假定每个系统上都有一个活动 NIC。如果您有多个活动 NIC,则需要循环遍历它们,并在每个 NIC 上进行设置。

$computers = Get-Content -Path "S:\ome path\to text file.txt"

foreach ($computer in $computers)
{
    $NIC = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "IPEnabled = true" -ComputerName $computer
    $NIC.SetTcpipNetbios("1")
}

如果您的所有服务器都在一个 OU 中,则可以使用 QuestAD cmdlet 将它们全部拉入 $computers 变量,然后通过这种方式传递名称。

答案2

使用 Wmic

创建一个单独的文本文件,其中包含 CSV 列表或以回车符分隔的计算机名称列表,名为somefile.txt

然后从适当的权限帐户运行以下命令:

wmic /node:@somefile.txt /interactive:off nicconfig where TcpipNetbiosOptions=0 call SetTcpipNetbios 1
wmic /node:@somefile.txt /interactive:off nicconfig where TcpipNetbiosOptions=2 call SetTcpipNetbios 1

完成后,将上述代码更改为 SetTcpipNetbios 为 2(禁用)。(0 通过 DHCP 设置)

相关内容