我正在尝试编写一个脚本来创建一个新的dns区域,但是当在其中传递变量时,它会给我一个error_invalid_name
。手动运行命令时,它可以正常工作。当我回显命令它正确输出所以我现在卡住了。我还尝试将变量作为字符串传递,并将整个"abc.domain.com /zoneadd $Zone /dsprimary"
设置为字符串。
这是我的脚本:
import-csv -path C:\List.csv -Delimiter "`t" | ForEach-Object {
$Zone = $_.Zone
$Zone #outputs 10.10.10.in-addr.arpa
dnscmd serverDC.domain.com /zoneadd $Zone /dsprimary
有效的手动命令是
dnscmd serverDC.domain.com /zoneadd 10.10.10.in-addr.arpa /dsprimary
答案 0 :(得分:0)
检查$Zone
是否有任何不属于那里的前导或尾随字符:
Import-Csv -Path 'C:\List.csv' -Delimiter "`t" | ForEach-Object {
$Zone = $_.Zone
"-$Zone-"
dnscmd serverDC.domain.com /zoneadd $Zone /dsprimary
}
我可以通过在区域名称后面添加一个空格来重现您描述的问题:
PS C:\> Import-Csv .\test.csv -Delimiter "`t" | % {
>> $Zone = $_.Zone
>> "-$Zone-"
>> dnscmd $env:COMPUTERNAME /zoneadd $Zone /dsprimary
>> }
>>
-10.10.10.in-addr.arpa -
DNS server DC01 version is 6.1.7600
Creating zone in built-in domain directory partition...
Command failed: ERROR_INVALID_NAME 123 0x7B