【问题标题】:add-DHCPServer4Filter how to use parameter as inputadd-DHCPServer4Filter 如何使用参数作为输入
【发布时间】:2026-02-15 12:55:02
【问题描述】:

我收到如下所述的错误:

Cannot validate argument on parameter 'MacAddress'. The argument is null or empty. Provide an argument that is not null or empty,and then try the command again. + category info : invalidData: (:) [add-dhcpserverv4filter], parameterbidingvalidationexception + fullyqualifiederrorID : parameterargumentvalidationerror, add-dhcpserverv4filter

我从其他脚本中获取了一个mac地址和描述参数,所以我的脚本如下:

$mac= "00-01-02-03-04-05"
$desc= "PC-alibaba" 
add-dhcpserverv4Filter -computername pc-alibaba -list allow -macaddress $mac -description $desc

所以我相信是导致此错误的参数, 如果我使用下面的代码,它可以正常运行。

add-dhcpserverv4Filter -computername pc-alibaba -list allow -macaddress "00-01-02-03-04-05" -description "PC-alibaba"

那么我该怎么做才能让它允许参数作为 macadress 和描述? 提前致谢。

【问题讨论】:

  • 你得到什么错误信息?
  • @jisaak 它显示无法验证参数“MacAddress”的参数。参数为 null 或空。提供一个不为 null 或空的参数,然后重试该命令。 + 类别信息:invalidData: (:) [add-dhcpserverv4filter],parameterbidingvalidationexception +fullyqualifiederrorID:paragumentvalidationerror,add-dhcpserverv4filter
  • 嗯,你可以尝试写$($mac),但首先检查$mac 是否包含某些内容
  • @jisaak 我确定它包含一些东西,我尝试如下,它仍然显示相同的错误 -Macaddress $($FinalMac) -description $($Desc)
  • 嗯好的。抱歉 - 不知道如何解决这个问题...

标签: powershell dhcp


【解决方案1】:

标准的调试方式是使用write-host在控制台写入解析后的命令。之后,将命令复制粘贴回命令行以查看它是否运行。不要键入您从write-host 获得的命令,使用复制粘贴以完全使用您尝试运行的相同命令。像这样,

write-host "add-dhcpserverv4Filter -computername pc-alibaba -list allow -macaddress $mac -description $desc"

【讨论】:

  • 感谢分享,不胜感激。我从写主机得到的命令和我写的完全一样,没有使用参数。
  • 我想我找到了错误,因为我正在使用调用会话,所以我猜变量没有传递到会话中,谢谢你的帮助^^
  • @StephenieTan 这里的教训是包括这样一个重要的信息,比如在下一个问题的另一个会话中。