如何阻止我的 MAC 地址被视为数字?

How can I stop my MAC address from being seen as a number?

我正在使用 cmdlet 在 Windows Server 2016 DHCP 服务的范围内创建允许 MAC 的策略。

我有一个 C# 代码可以生成包含所有信息的脚本,它是合法的,MAC 地址是正确的,但 PowerShell 结果是 "translate" 一些地址,比如 8634971886e5863497188600000.

生成的语句为:

Add-DhcpServerv4Policy -Name Test -Condition OR -ScopeId 127.0.0.1 -MacAddress EQ,8634971886e5

如果我引用它,它会说缺少运算符EQ。

Add-DhcpServerv4Policy -Name Test -Condition OR -ScopeId 127.0.0.1 -MacAddress "EQ,8634971886e5"

我在 MAC 中添加了连字符并且效果很好。

谢谢!

所以根据documentation for Add-DhcpServerv4Policy-MacAddress就是要找一个字符串数组。他们给出的例子与你自己的例子非常相似。

PS C:\> Add-DhcpServerv4Policy -Name HyperVPolicy -Condition OR -MacAddress EQ,00155D*,000569*

但是,如您所见,有些 MAC 被视为数字,因为它们不是 quoted/typed 字符串。评论一直在告诉您引用字符串,但我认为这样做不正确。不要引用 entire 字符串,但它是单独的 elements,因此它是一个字符串数组。来自您的评论

Add-DhcpServerv4Policy -Name Test -Condition OR -ScopeId 127.0.0.1 -MacAddress "EQ,8634971886e5"

-MacAddress 正在发送一个字符串。第一个元素不是比较器,因此您得到的错误。

相反,它应该是...

Add-DhcpServerv4Policy -Name Test -Condition OR -ScopeId 127.0.0.1 -MacAddress "EQ","8634971886e5"

很好,但我想让你知道其他人想告诉你什么。