Script do Windows para alterar os servidores DNS de todos os adaptadores de rede com * Gerenciamento * no nome do adaptador

1

Por ex: netsh interface ipv4 set dns gestão 10.111.253.41 interface netsh ipv4 add dns gestão 10.111.253.42 index = 2

A NIC de gerenciamento é denominada: "Management Network" em um servidor e "Management-NIC" em outro. Eu preciso executar este script contra ambos e definir os servidores DNS estaticamente.

Isso me dará o adaptador, mas como posso armazená-lo como uma variável?

Get-NetAdapter management

    
por Robert Warsing 04.01.2016 / 19:04

2 respostas

1

Obrigado, é com isso que acabei e funciona!

#Declaring Variables
$var1 = "x.x.x.x"
$var2 = "x.x.x.x"
$Adapter1 = Get-NetAdapter *management* | select -expand name

#Assigning primary and secondary DNS servers
netsh interface ipv4 set dnsservers name=$Adapter1 static $var1 primary
netsh interface ipv4 add dnsservers name=$Adapter1 $var2 index=2
Write-Host "The Primary DNS is:" $var1
Write-Host "The Secondary DNS is:" $var2
exit
    
por 05.01.2016 / 16:58
0

Você parece estar tentando usar um comando do PowerShell para obter uma referência ao adaptador de rede. O comando que você escreveu receberá o adaptador que chamou exatamente "gerenciamento". Mas como você quer apenas adaptadores que iniciem com o gerenciamento de palavras, será necessário usar uma cláusula "where" como esta:

Get-NetAdapter | Where-Object { $_.Name -like 'management*' }
# (which can also be shortened like this)
Get-NetAdapter | ?{ $_.Name -like 'management*' }
# (and assigned to a variable like this)
$adapters = Get-NetAdapter | ?{ $_.Name -like 'management*' }

Agora você tem uma referência ao seu (s) adaptador (es). Agora existem várias maneiras de definir os servidores DNS. netsh é um deles como você mencionou e provavelmente o SO mais compatível com o nível inferior. Mas se você tiver o Windows Server 2012 R2 ou o Windows 8.1, poderá usar um cmdlet Powershell chamado Set-DnsClientServerAddress

    
por 04.01.2016 / 20:15