我正在使用cmdlet在Windows Server 2016 DHCP服务范围内创建允许MAC的策略。
我有一个C#代码,它生成包含所有信息的脚本,并且它是合法的,MAC地址是正确的,但PowerShell会将某些地址“翻译”为8634971886e5
到863497188600000
。
生成的语句是:
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"
答案 0 :(得分:2)
所以根据documentation for Add-DhcpServerv4Policy
-MacAddress
正在寻找一个字符串数组。他们给出的例子和你自己的例子大致相同。
PS C:\> Add-DhcpServerv4Policy -Name HyperVPolicy -Condition OR -MacAddress EQ,00155D*,000569*
但是,正如您所看到的那些MAC被视为数字,因为它们没有被引用/键入字符串。评论已经告诉你引用字符串,但我认为这是错误的。不要引用整个字符串,而是它的各个元素,这样它就是一个字符串数组。来自您的评论
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"
Your workaround obviously works很好,但我想让你知道其他人试图告诉你什么。
答案 1 :(得分:1)
我已经在MAC中添加了连字符,效果很好。
非常感谢!