运行PowerShell脚本来备份DNS区域时出错

我有这个脚本,我试图运行,我希望将备份DNS区域。 我正尝试使用export-csv powershell cmdlet将此信息导出到csv文件中。 最后,我使用dnscmd.exe命令将区域信息导出到文本文件中并将其存储在定义的位置。

# Get Name of the server with env variable $DNSSERVER=get-content env:computername #—Define folder where to store backup —–# $BkfFolder=”c:\windows\system32\dns\backup” #—Define file name where to store Dns Settings $StrFile=Join-Path $BkfFolder “input.csv” #—-Check if folder exists. if exists, delete contents–# if (-not(test-path $BkfFolder)) { new-item $BkfFolder -Type Directory | Out-Null } else { Remove-Item $BkfFolder”\*” -recurse } #—- GET DNS SETTINGS USING WMI OBJECT ——–# #– Line wrapped should be only one line –# $List = get-WmiObject -ComputerName $DNSSERVER -Namespace root\MicrosoftDNS -Class MicrosoftDNS_Zone #—-Export information into input.csv file —# #– Line wrapped should be only one line –# $list | Select Name,ZoneType,AllowUpdate,@{Name=”MasterServers”;Expression={$_.MasterServers}}, DsIntegrated | Export-csv $strFile -NoTypeInformation #— Call Dnscmd.exe to export dns zones $list | foreach { $path=”backup\”+$_.name $cmd=”dnscmd {0} /ZoneExport {1} {2}” -f $DNSSERVER,$_.Name,$path Invoke-Expression $cmd } # End of Script #——————————————————————————————-# 

当我运行脚本时,我收到以下消息:

在这里输入图像说明

我不确定这个消息是什么意思。 我尝试input我的电脑名称,但这也不起作用。

任何帮助表示赞赏!

从第2行开始:

  $DNSSERVER=get-content env:computername 

应该:

 $DNSSERVER = $Env:Computername 

错误在这一行:

 $List = get-WmiObject -ComputerName $DNSSERVER -Namespace root\MicrosoftDNS -Class MicrosoftDNS_Zone 

确保它在同一行,而不是单独的行,它正在请求gwmi命令的类,但由于它在另一行,它没有采取它。 因为在这里确实存在这个类,所以问题应该在这个特定的线上。

另一点,它正在寻找DNS类,所以只有在Windows服务器上安装了DNSfunction或angular色的情况下才会工作。