BAT file om snel te switchen tussen 2 dns servers

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • elmertje
  • Registratie: December 2004
  • Laatst online: 14-08 11:17
(jarig!)
Goedendan,

Waarom?: ik heb sinds kort mijn synology NAS ingesteld als mijn DNS server (om reclame te bannen).
Dit werkt allemaal erg goed. Alleen voor mijn vrouw té goed. Ze wil ook de Google Ads bovenaan de zoekresultaten aan kunnen klikken bijvoorbeeld. Ik weet wel hoe ik dit in Windows moet wijzigen. Maar om dat elke keer te doen....
Had ook al geprobeerd of een extra account/gebruiker werkt. Maar deze gebruikt dezelfde IP instellingen.

Dus de vraag:

Wie kan er meehelpen een BAT file te bouwen die wél werkt. Ik heb al wat gevonden. Maar dit werkt nog niet.

code:
1
2
3
4
5
6
@echo off
netsh
interface
ip
set address "LAN-verbinding" static addr=192.168.178.16 gateway=192.168.178.1 mask=255.255.255.0
set dns "LAN-verbinding" addr=192.168.178.13


Bovenstaande code voor 'zonder reclame via NAS' En dan verder hetzelfde maar dan 192.168.178.13 vervangen door deze ip's van Opendns: 208.67.222.222 en 208.67.220.220.

Dan heb ik dus 2 batch files waarmee ik snel kan switchen? Misschien ook nog aan het eind
'ipconfig /flushdns' op het eind erin?

Mijn eigen kennis van batch files maken is helaas te klein. Alvast bedankt voor je eventuele hulp.

Acties:
  • 0 Henk 'm!

  • basdej
  • Registratie: Augustus 2010
  • Laatst online: 26-09 15:55

basdej

OutSystems Consultant

Je zou ook gewoon die computer op normale DNS kunnen zetten en gewoon adblock in Chrome in combinatie met Privacy Badger installeren.

Hoi.


Acties:
  • +1 Henk 'm!

  • markvt
  • Registratie: Maart 2001
  • Laatst online: 26-09 15:23

markvt

Peppi Cola

Hier staat een tutorial hoe het met powershell kan:

https://blogs.technet.mic...s-via-windows-powershell/

van-tilburg.info -=- meka (sega emulator) - Proud MEDION fanclub member - KOPPIG VOLHOUDEN !


Acties:
  • 0 Henk 'm!

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 22:07

MAX3400

XBL: OctagonQontrol

Niks BAT; maak er PowerShell van... Tenminste, neem aan dat je een recent OS hebt?

code:
1
Get-DNSClientServerAddress

code:
1
Set-DNSClientServerAddress -Interface XX -ServerAddresses ("192.168.178.13")

code:
1
Set-DNSClientServerAddress -Interface XX -ServerAddresses ("208.67.222.222","208.67.220.220")

Eerste code los uitvoeren om je interface ID te raadplegen; die ID vul je in in beide XX parameters (platte cijfercode zonder quotes). De ene PowerShell noem je "GoogleADS.ps1" en de andere "GeenADS.ps1".

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Acties:
  • 0 Henk 'm!

  • Wimmel
  • Registratie: Februari 2001
  • Laatst online: 27-09 20:24

Wimmel

Hello

Ik heb dit al eens gemaakt in powershell om mijn DNS om te zetten naar een Netflix vriendelijkere omgeving.

Vul bij $getflix je externe DNS in en bij $muppetdns je interne DNS. Mijn script controleert zelf welke dns actief is en vraagt dan of je het wilt wijzigen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
$getflix = "46.166.189.67"
$muppetdns = "192.168.1.10"
$interface = Get-NetAdapter | where name -like "*external*"
$currentDNS = Get-DnsClientServerAddress -AddressFamily IPv4 -InterfaceIndex $interface.ifIndex

If ($currentDNS.ServerAddresses -contains $muppetdns) {
  $title = "Netflix enabler"
  $message = "Netflix is off. Would you like to turn it on?"

  $yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", "Yes"
  $no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", "No"

  $options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)

  $result = $host.ui.PromptForChoice($title, $message, $Options, 0)

  Switch ($result)
    {
      0 { 
        Set-DnsClientServerAddress -InterfaceIndex $interface.ifIndex -ServerAddresses $getflix
        Clear-DnsClientCache
        "Restart your browser" 
        }
      1 {
        "No changes made"
        }
    }
  }

ElseIf ($currentDNS.ServerAddresses -contains $getflix) {
  $title = "Netflix enabler"
  $message = "Netflix is on. Would you like to turn it off?"

  $yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", "Yes"
  $no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", "No"

  $options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)

  $result = $host.ui.PromptForChoice($title, $message, $Options, 0)

  Switch ($result)
    {
      0 { 
        Set-DnsClientServerAddress -InterfaceIndex $interface.ifIndex -ServerAddresses $muppetdns
        Clear-DnsClientCache
        "Restart your browser" 
        }
      1 {
        "No changes made"
        }
    }
  }
Else {
  "Could not determine Netflix status"
  }

Men are from Mars, women are meteors crashing into Mars.
Discogs


Acties:
  • 0 Henk 'm!

  • elmertje
  • Registratie: December 2004
  • Laatst online: 14-08 11:17
(jarig!)
Bedankt allen. Ik ben bezig met de oplossing van wimmel. Maar ik weet niet goed hoe ik powershell machtigingen geef om scripts te draaien. Het schijnt volgens MIcrosoft opwel 7 manieren te kunnen.
Ik neem trouwens aan dat ik die code als .ps1 moest opslaan.

Ik run Powershell als admin en krijg dan dit:

File E:\Documenten\Elmer\DNS\dns.ps1 cannot be loaded because running scripts is disabled on this system. For more informati
on, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
+ CategoryInfo : SecurityError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnauthorizedAcces

Acties:
  • 0 Henk 'm!

  • Bazvv
  • Registratie: December 2007
  • Laatst online: 03:46
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned uitvoeren eerst.

Acties:
  • 0 Henk 'm!

  • elmertje
  • Registratie: December 2004
  • Laatst online: 14-08 11:17
(jarig!)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
$reclame = "208.67.222.222"
$geenreclame = "192.168.178.13"
$interface = Get-NetAdapter | where name -like "*external*"
$currentDNS = Get-DnsClientServerAddress -AddressFamily IPv4 -InterfaceIndex $interface.ifIndex

If ($currentDNS.ServerAddresses -contains $geenreclame) {
  $title = "Netflix enabler"
  $message = "Netflix is off. Would you like to turn it on?"

  $yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", "Yes"
  $no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", "No"

  $options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)

  $result = $host.ui.PromptForChoice($title, $message, $Options, 0)

  Switch ($result)
    {
      0 { 
        Set-DnsClientServerAddress -InterfaceIndex $interface.ifIndex -ServerAddresses $reclame
        Clear-DnsClientCache
        "Restart your browser" 
        }
      1 {
        "No changes made"
        }
    }
  }

ElseIf ($currentDNS.ServerAddresses -contains $reclame) {
  $title = "reclame enabler"
  $message = "reclame is on. Would you like to turn it off?"

  $yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", "Yes"
  $no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", "No"

  $options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)

  $result = $host.ui.PromptForChoice($title, $message, $Options, 0)

  Switch ($result)
    {
      0 { 
        Set-DnsClientServerAddress -InterfaceIndex $interface.ifIndex -ServerAddresses $geenreclame
        Clear-DnsClientCache
        "Restart your browser" 
        }
      1 {
        "No changes made"
        }
    }
  }
Else {
  "Could not determine status"
  }

Acties:
  • 0 Henk 'm!

  • elmertje
  • Registratie: December 2004
  • Laatst online: 14-08 11:17
(jarig!)
code:
1
2
3
4
5
6
7
8
9
10
PS C:\WINDOWS\system32> E:\Documenten\Elmer\DNS\dns.ps1
Get-DnsClientServerAddress : Cannot validate argument on parameter 'InterfaceIndex'. The argument is null. Provide a valid v
alue for the argument, and then try running the command again.
At E:\Documenten\Elmer\DNS\dns.ps1:4 char:78
+ ... tServerAddress -AddressFamily IPv4 -InterfaceIndex $interface.ifIndex
+                                                        ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Get-DnsClientServerAddress], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Get-DnsClientServerAddress
 
Could not determine status

Acties:
  • 0 Henk 'm!

  • elmertje
  • Registratie: December 2004
  • Laatst online: 14-08 11:17
(jarig!)
Nog bedankt Bazvv

Acties:
  • 0 Henk 'm!

  • elmertje
  • Registratie: December 2004
  • Laatst online: 14-08 11:17
(jarig!)
Het werkt!
gewoon tweaken.... thx


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
$reclame = "208.67.222.222"
$geenreclame = "192.168.178.13"
$interface = Get-NetAdapter | where name -like "*LAN-verbinding*"
$currentDNS = Get-DnsClientServerAddress -AddressFamily IPv4 -InterfaceIndex $interface.ifIndex

If ($currentDNS.ServerAddresses -contains $geenreclame) {
  $title = "reclame enabler"
  $message = "reclame is off. Would you like to turn it on?"

  $yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", "Yes"
  $no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", "No"

  $options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)

  $result = $host.ui.PromptForChoice($title, $message, $Options, 0)

  Switch ($result)
    {
      0 { 
        Set-DnsClientServerAddress -InterfaceIndex $interface.ifIndex -ServerAddresses $reclame
        Clear-DnsClientCache
        "Restart your browser" 
        }
      1 {
        "No changes made"
        }
    }
  }

ElseIf ($currentDNS.ServerAddresses -contains $reclame) {
  $title = "reclame enabler"
  $message = "reclame is on. Would you like to turn it off?"

  $yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", "Yes"
  $no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", "No"

  $options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)

  $result = $host.ui.PromptForChoice($title, $message, $Options, 0)

  Switch ($result)
    {
      0 { 
        Set-DnsClientServerAddress -InterfaceIndex $interface.ifIndex -ServerAddresses $geenreclame
        Clear-DnsClientCache
        "Restart your browser" 
        }
      1 {
        "No changes made"
        }
    }
  }
Else {
  "Could not determine status"
  }

Acties:
  • 0 Henk 'm!

  • elmertje
  • Registratie: December 2004
  • Laatst online: 14-08 11:17
(jarig!)
Het is waarschijnlijk nogal een noob vraag. Maar hoe krijg ik een snelkoppeling op mijn bureaublad die het script gelijk uitvoert ZONDER eerst powershell te openen (dan moet ik in het programma het script nog runnen), want dit is te lastig voor mijn huisgenoten.
Nogal geklooid maar wat ik ook doe, het programma opent ook. Ook vanuit CMD enz...

Acties:
  • 0 Henk 'm!

  • Wimmel
  • Registratie: Februari 2001
  • Laatst online: 27-09 20:24

Wimmel

Hello

Het volgende in je snelkoppeling zetten
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -File "pad en bestand.ps1"

Men are from Mars, women are meteors crashing into Mars.
Discogs


Acties:
  • +1 Henk 'm!

  • Equator
  • Registratie: April 2001
  • Laatst online: 26-09 19:31

Equator

Crew Council

#whisky #barista

@elmertje Zou je in het vervolg je laatste bericht aan willen passen? Nu heb je 5 berichten achter elkaar gepost, en dat komt wat drammerig over.

Verder is een batch/Powershell/$script natuurlijk niets voor Netwerken. Dus verplaats ik het topic naar Windows Clients :)

Acties:
  • 0 Henk 'm!

  • elmertje
  • Registratie: December 2004
  • Laatst online: 14-08 11:17
(jarig!)
Ok, duidelijk. En bedankt wimmel.
Pagina: 1