2017-06-29 3 views
0

Benötigen Sie Hilfe beim Erstellen eines einzelnen Powershell-Skripts, das mit Windows 7 (Powershell 2.0) und Windows 10 (Powershell 5.0) funktioniert, sodass ich es pushen kann über GPO. * Wir haben keine Domäne DHCP war wir bekommen IP von MPLS-Router mietet ...Powershell-Skript zum Festlegen neuer DNS-Einstellungen in Windows 7 und Windows 10 mit einem Skript

Bisher habe ich für Fenster die folgenden mit einer Batch-Datei ausgeführt haben 7 (Nicht-Powershell)

@ECHO OFF 

set vardns1=1.1.1.1 
set vardns2=2.2.2.2 


ECHO Setting Primary DNS 
netsh int ip set dns name = "Local Area Connection" source = static addr = %vardns1% 

ECHO Setting Secondary DNS 
netsh int ip add dns name = "Local Area Connection" addr = %vardns2% 

ECHO Flushing DNS 
ipconfig /flushdns 

ECHO Registering New DNS settings 
ipconfig /registerdns 

Und das Code für Windows 10 (Power 5,0)

If (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent 
()).IsInRole([Security.Principal.WindowsBuiltInRole]"Administrator")) { 
       Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs 
       Exit 
      } 
    #The servers that we want to use 
    $newDNSServers = "1.1.1.1","2.2.2.2" 

    # Get all network adapters that already have DNS servers set 
    $adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.DNSServerSearchOrder -ne $null} 

    # Set the DNS server search order for all of the previously-found adapters 
    $adapters | ForEach-Object {$_.SetDNSServerSearchOrder($newDNSServers)} 

    #Flushing DNS 
    ipconfig /flushdns 

    #Registering DNS 
    ipconfig /registerdns 

    Set-DnsClientGlobalSetting -SuffixSearchList @("mydomain.local") 

Antwort

0

zwei Build-Skripte und WMI-Filterung auf dem GPO verwenden eine auf W10 und ein anderes auf W7-Systemen zu laufen. Einfacher als ein polymorphes Skript zu erstellen.

0

Warum können Sie das Windows 10 Powershell-Skript nicht auf Ihren Windows 7-Computern ausführen?

Sie legen die DNS-Adressen mit WMI fest sollte es kein Problem sein.

Können Sie versuchen, es lokal auf einem Windows 7-Rechner ausführen und den Fehler teilen?

Wenn Sie Powershell über GPO verwenden, kann es nett sein, Fehler in eine Protokolldatei zu schreiben.

sogar grundlegend so etwas wie dies am Ende des Skriptes

if($Error) 
{ 
    Export-Clixml -Path C:\GPOError.xml 
} 

Dies wird das gesamte Fehler Objekt (e) Sie es es in Powershell importieren zurück und betrachten speichert

Importieren- mit Clixml