当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 管理 LMHost

作者:精品下载站 日期:2024-12-14 07:50:18 浏览:15 分类:玩电脑

使用 PowerShell 管理 LMHost


我从事 IT 行业已经很长时间了。看到这个行业发生了怎样的变化以及它如何适应新技术,真是令人兴奋。即便如此,我还是欣赏有时“旧方法”仍然是最好方法的情况。例如,我们不再真正需要古老的 lmhosts 文件来帮助将 NETBIOS 名称解析为 IP 地址。然而,在某些情况下,lmhosts 可能会解决问题,然后使用 PowerShell 来管理它不是很好吗?

我一直在从事一个与使用 Hyper-V 和 DSC 实现教学环境自动化相关的项目。其中一项任务需要使用远程连接到新的虚拟机,但该计算机位于专用的 NAT 网络上,因此名称解析有时会成为问题。这就是 PowerShell Direct 非常有用的地方,因为它允许您通过 VM 总线建立远程处理会话。但是,目前这仅适用于从 Windows Server 2016 Hyper-V 主机到 Windows 10 或 Windows Server 2016 虚拟机。

因此,我确保我的虚拟机有一个 IP 地址,然后我可以将其与 New-PSSession 一起使用。但在某些时候,我意识到我想使用计算机名称,因此有了快速而肮脏的名称解析的名称。这是很多可能无关紧要的背景故事。

lmhosts 文件是一个纯文本文件,位于 C:\Windows\System32\Drivers\etc 中,称为 lmhosts,没有任何扩展名。尽管您会看到用作模板的 lmhosts.sam 文件,但您很可能没有该文件。本质上,该文件是 IP 地址和计算机名的文本列表。

172.16.30.200	chi-dc01
172.16.30.201	chi-dc02
172.16.30.203 	chi-dc04
172.16.30.212  	chi-hvr2

我想要的是一种 PowerShell 方式来管理这个文件。我创建了一个名为 MyLmhost 的简单模块。它有 3 个简单的命令。

[玩转系统] 使用 PowerShell 管理 LMHost

这些命令结合使用 Get-Content 和正则表达式来解析 IP 地址和计算机名称并创建对象。

[玩转系统] 使用 PowerShell 管理 LMHost

我可以轻松创建新条目:

[玩转系统] 使用 PowerShell 管理 LMHost

如果该条目不存在,则会添加该条目,否则此命令将使用新的 IP 地址或名称更新该条目。当然,我可以删除一个条目。

[玩转系统] 使用 PowerShell 管理 LMHost

每当您对文件进行更改时,它都会创建一个备份副本。每次进行更改时,备份副本都会被覆盖。

我想你们中的许多人可能对这个模块没有实际需求,但您可能会发现代码具有教育意义。您可以在 Github 上找到它:https://github.com/jdhisolutions/Mylmhost。如果您有任何疑问或问题,请在 GitHub 存储库中发布问题。

享受!

更新:您可以在 PowerShell Gallery 上找到该模块。运行安装模块 mylmhost。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯