Erro ao executar o script do powershell para fazer backup de zonas de DNS

1

Eu tenho este script que estou tentando executar, que espero fazer backup de zonas DNS. Eu estou tentando exportar essas informações em um arquivo csv usando o cmdlet export-csv powershell. Por fim, uso o comando dnscmd.exe para exportar as informações das zonas para um arquivo de texto e armazená-las no local definido.

 # 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
#——————————————————————————————-#

Quando executo o script, recebo a seguinte mensagem:

Não sei exatamente o que esta mensagem está dizendo. Eu tentei introduzir o nome do meu computador, mas isso também não funciona.

Qualquer ajuda é apreciada!

    
por Ahad Sheriff 02.06.2017 / 17:57

1 resposta

3

Da linha 2:

 $DNSSERVER=get-content env:computername

deve ser:

$DNSSERVER = $Env:Computername

O erro está nesta linha:

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

Certifique-se de que esteja na mesma linha em vez de linhas separadas. Ele está solicitando a classe para o comando gwmi, mas como está em outra linha, não está aceitando. Porque a classe existe aqui , então o problema deve estar nessa linha em particular.

Outro ponto que está procurando pela classe DNS é que só funcionaria se os servidores do Windows tivessem o recurso ou a função DNS instalado.

    
por 02.06.2017 / 18:29