PowerShell ਨਾਲ Windows VPN ਅਡੈਪਟਰ ਉੱਤੇ DNS ਸੈੱਟ ਕਰੋ, ਫਿਰ ਜਾਂਚੋ
Windows ਟਨਲ ਦਾ DNS ਪਰੋਫ਼ਾਈਲ ਨਾਲ ਨਹੀਂ, ਅਡੈਪਟਰ ਨਾਲ ਜੋੜਦਾ ਹੈ। ਕਨੈਕਟ ਹੋਣ ਤੋਂ ਬਾਅਦ ਇਸਨੂੰ PowerShell ਵਿੱਚ ਸੈੱਟ ਕਰੋ, ਫਿਰ ਦੁਬਾਰਾ ਕਨੈਕਟ ਕਰਨ ਉੱਤੇ ਇਹ ਬਚਦਾ ਹੈ ਜਾਂ ਨਹੀਂ, ਇਹ ਜਾਂਚੋ।
Windows VPN ਕਨੈਕਸ਼ਨ ਉਸ ਪਰੋਫ਼ਾਈਲ ਵਿੱਚ DNS ਸਰਵਰ ਨਹੀਂ ਰੱਖਦਾ ਜਿਸਨੂੰ ਤੁਸੀਂ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਸੋਧਦੇ ਹੋ। ਜਦੋਂ ਟਨਲ ਉੱਠਦਾ ਹੈ, ਕਲਾਇੰਟ ਗੇਟਵੇ ਨਾਲ IP ਕੌਂਫਿਗਰੇਸ਼ਨ ਬਾਰੇ ਗੱਲਬਾਤ ਕਰਦਾ ਹੈ, ਗੇਟਵੇ ਰਿਜ਼ਾਲਵਰਾਂ ਦੀ ਸੂਚੀ ਭੇਜਦਾ ਹੈ, ਅਤੇ Windows ਇਸਨੂੰ ਟਨਲ ਅਡੈਪਟਰ ਉੱਤੇ ਲਾਗੂ ਕਰਦਾ ਹੈ। ਉਹ ਅਡੈਪਟਰ ਤੁਹਾਡੇ Wi-Fi ਜਾਂ Ethernet ਤੋਂ ਵੱਖਰਾ ਇੰਟਰਫ਼ੇਸ ਹੈ, ਅਤੇ ਸੂਚੀ ਇੰਟਰਫ਼ੇਸ ਦੀ ਹੈ, ਪਰੋਫ਼ਾਈਲ ਦੀ ਨਹੀਂ। ਜਦੋਂ ਤੁਸੀਂ ਜਾਣ ਜਾਂਦੇ ਹੋ ਕਿ ਕਿਹੜੀ ਚੀਜ਼ ਕੋਲ ਮੁੱਲ ਹੈ, ਤਾਂ PowerShell ਵਿੱਚ ਇਸਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨਾ ਇੱਕ ਹੀ ਕਮਾਂਡ ਹੈ; ਓਵਰਰਾਈਡ ਨੂੰ ਦੁਬਾਰਾ ਕਨੈਕਟ ਹੋਣ ਤੱਕ ਟਿਕਾਉਣਾ ਉਹ ਹਿੱਸਾ ਹੈ ਜਿਸ ਲਈ ਫ਼ੈਸਲਾ ਲੋੜੀਂਦਾ ਹੈ।
ਪਤਾ ਕਿਹੜੀ ਚੀਜ਼ ਕੋਲ ਹੈ
RAS ਟਨਲ ਅਡੈਪਟਰ ਤਦ ਬਣਾਉਂਦਾ ਹੈ ਜਦੋਂ ਕਨੈਕਸ਼ਨ ਸਫਲ ਹੁੰਦਾ ਹੈ ਅਤੇ ਤਦ ਹਟਾਉਂਦਾ ਹੈ ਜਦੋਂ ਕਨੈਕਸ਼ਨ ਟੁੱਟਦਾ ਹੈ। ਤੁਸੀਂ ipconfig /all ਵਿੱਚ ਜੋ DNS ਸਰਵਰ ਦੇਖਦੇ ਹੋ, ਉਹ ਉਸੇ ਕੌਂਫਿਗਰੇਸ਼ਨ ਦੀ ਅਦਲਾ-ਬਦਲੀ ਦੌਰਾਨ, IPv4 ਅਤੇ IPv6 ਪਤਿਆਂ ਤੇ ਰਸਤਿਆਂ ਦੇ ਕੋਲ ਆਉਂਦੇ ਹਨ। ਕਿਉਂਕਿ ਮੁੱਲ ਇੰਟਰਫ਼ੇਸ ਨਾਲ ਜੁੜਿਆ ਹੈ, Set-DnsClientServerAddress ਉਸ ਚੀਜ਼ ਵਿੱਚ ਲਿਖਦਾ ਹੈ ਜੋ ਕਨੈਕਸ਼ਨ ਹੋਣ ਤੱਕ ਹੀ ਹੁੰਦੀ ਹੈ।
ਇਹ ਇੱਕ ਤੱਥ ਹੀ VPN DNS ਦੇ ਆਲੇ-ਦੁਆਲੇ ਦੀ ਬਹੁਤੀ ਉਲਝਣ ਸਮਝਾਉਂਦਾ ਹੈ। ਪਰੋਫ਼ਾਈਲ ਡਿਸਕਨੈਕਟ ਹੋਣ 'ਤੇ ਵੀ ਵੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਪਰ ਇਸ਼ਾਰਾ ਕਰਨ ਲਈ ਇੰਟਰਫ਼ੇਸ ਨਹੀਂ ਹੈ, ਇਸ ਲਈ VPN ਉਪਨਾਮ ਉੱਤੇ cmdlet ਕਾਲ ਕਰਨ ਵਾਲੀ ਲੌਗਇਨ ਸਕ੍ਰਿਪਟ ਕਿਸੇ ਦੇ ਕਨੈਕਟ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਫੇਲ੍ਹ ਹੋ ਜਾਂਦੀ ਹੈ। ਇਹ ਉਸ ਬਦਲਾਅ ਨੂੰ ਵੀ ਸਮਝਾਉਂਦਾ ਹੈ ਜੋ ਵਾਪਸ ਹੋਇਆ ਜਾਪਦਾ ਹੈ: ਕੁਝ ਵਾਪਸ ਨਹੀਂ ਹੋਇਆ, ਇੰਟਰਫ਼ੇਸ ਤਬਾਹ ਹੋਇਆ ਅਤੇ ਗੇਟਵੇ ਵੱਲੋਂ ਭੇਜੇ ਮੁੱਲਾਂ ਨਾਲ ਦੁਬਾਰਾ ਬਣਾਇਆ ਗਿਆ।
DNS ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਉਪਨਾਮ ਲੱਭੋ
ਪਰੋਫ਼ਾਈਲ ਦਾ ਨਾਮ ਅਤੇ ਇੰਟਰਫ਼ੇਸ ਉਪਨਾਮ ਆਮ ਤੌਰ 'ਤੇ ਇੱਕੋ ਸਟ੍ਰਿੰਗ ਹੁੰਦੇ ਹਨ, ਪਰ ਉਹ ਇੱਕੋ ਚੀਜ਼ ਨਹੀਂ। Get-VpnConnection ਪਰੋਫ਼ਾਈਲਾਂ ਦੀ ਸੂਚੀ ਦਿਖਾਉਂਦਾ ਹੈ; Get-NetAdapter ਉਹ ਇੰਟਰਫ਼ੇਸ ਦਿਖਾਉਂਦਾ ਹੈ ਜੋ Windows ਕੋਲ ਸੱਚਮੁੱਚ ਹਨ। DNS cmdlet ਦੂਜਾ ਚਾਹੁੰਦੇ ਹਨ, ਅਤੇ ਇਹ ਦੋਵੇਂ ਲੋਕਾਂ ਦੀ ਉਮੀਦ ਨਾਲੋਂ ਵੱਧ ਵਾਰ ਵੱਖਰੇ ਹੁੰਦੇ ਹਨ, ਖ਼ਾਸਕਰ ਜਦੋਂ ਕਲਾਇੰਟ ਅਡੈਪਟਰ ਦੇ ਨਾਮ ਵਿੱਚ "(RAS)" ਵਰਗਾ ਵੇਰਵਾ ਜੋੜ ਦਿੰਦਾ ਹੈ।
ਜੇ ਪਰੋਫ਼ਾਈਲ ਨਹੀਂ ਹੈ, ਤਾਂ PowerShell ਮੂਲ ਐਂਟਰੀ ਬਣਾ ਸਕਦਾ ਹੈ। ਟਨਲ ਕਿਸਮ ਅਤੇ ਪ੍ਰਮਾਣਿਕਤਾ ਗੇਟਵੇ ਵੱਲੋਂ ਦਿੱਤੇ ਨਾਲ ਮੇਲ ਖਾਣੀ ਚਾਹੀਦੀ ਹੈ, ਕਿਉਂਕਿ ਅਸੰਗਤੀ ਬਣਾਉਣ ਵੇਲੇ ਨਹੀਂ, ਕਨੈਕਟ ਹੋਣ ਵੇਲੇ ਦਿਖਦੀ ਹੈ:
Add-VpnConnection -Name "Corporate" -ServerAddress vpn.example.net `
-TunnelType Ikev2 -EncryptionLevel Required `
-AuthenticationMethod Eap -AllUserConnection
ਇੱਕ ਵਾਰ ਕਨੈਕਟ ਕਰੋ, ਫਿਰ ਕੋਈ ਵੀ DNS ਕਮਾਂਡ ਲਿਖਣ ਤੋਂ ਪਹਿਲਾਂ ਅਸਲ ਉਪਨਾਮ ਪੜ੍ਹੋ:
rasdial.exe "Corporate"
Get-NetAdapter | Where-Object InterfaceDescription -like "*VPN*"
Get-DnsClientServerAddress -InterfaceAlias "Corporate"
ਓਵਰਰਾਈਡ ਸਹੀ ਕ੍ਰਮ ਵਿੱਚ ਲਾਗੂ ਕਰੋ
ਕ੍ਰਮ ਸਿੰਟੈਕਸ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਅਡੈਪਟਰ ਚਾਲੂ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਉਪਨਾਮ ਹੱਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਖਾਤੇ ਨੂੰ ਇੰਟਰਫ਼ੇਸ ਸੈਟਿੰਗਾਂ ਬਦਲਣ ਦੀ ਇਜਾਜ਼ਤ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। ਪ੍ਰਤੀ-ਵਰਤੋਂਕਾਰ ਕਨੈਕਸ਼ਨ ਆਮ ਤੌਰ 'ਤੇ ਸਾਈਨ-ਇਨ ਵਰਤੋਂਕਾਰ ਤੋਂ ਬਦਲਾਅ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ; -AllUserConnection ਨਾਲ ਬਣਿਆ ਸਭ-ਵਰਤੋਂਕਾਰ ਕਨੈਕਸ਼ਨ ਆਮ ਤੌਰ 'ਤੇ ਉੱਨਤ shell ਮੰਗਦਾ ਹੈ।
cmdlet ਆਪ ਹੀ ਇੱਕ ਲਾਈਨ ਹੈ, Microsoft ਦੇ Set-DnsClientServerAddress ਹਵਾਲੇ ਵਿੱਚ ਦਰਜ:
Set-DnsClientServerAddress -InterfaceAlias "Corporate" -ServerAddresses 10.20.0.53,10.20.0.54
Get-DnsClientServerAddress -InterfaceAlias "Corporate" -AddressFamily IPv4
ਫੇਲ੍ਹ ਹੋਣ ਦੇ ਦੋ ਢੰਗ ਇੱਕ ਨਜ਼ਰ ਵਿੱਚ ਪਛਾਣਨ ਯੋਗ ਹਨ। ਗਲਤ ਉਪਨਾਮ cmdlet ਤੋਂ ਗਲਤੀ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਇਹ ਚੰਗਾ ਨਤੀਜਾ ਹੈ, ਕਿਉਂਕਿ ਚੁੱਪ ਇਸ ਨਾਲੋਂ ਬੁਰੀ ਹੁੰਦੀ। ਸਹੀ cmdlet ਦਾ ਕੋਈ ਦਿਖਣ ਵਾਲਾ ਪ੍ਰਭਾਵ ਨਾ ਹੋਣਾ ਆਮ ਤੌਰ 'ਤੇ ਇਸ ਦਾ ਅਰਥ ਹੈ ਕਿ ਤੁਸੀਂ ਗਲਤ ਅਡੈਪਟਰ ਵੇਖ ਰਹੇ ਹੋ: ਕਿਸੇ ਹੋਰ ਕਲਾਇੰਟ ਤੋਂ ਬਚਿਆ ਟਨਲ ਅਡੈਪਟਰ, ਮਿਲਦਾ-ਜੁਲਦਾ ਵੇਰਵਾ ਵਾਲਾ ਭੌਤਿਕ ਨੈੱਟਵਰਕ ਕਾਰਡ, ਜਾਂ ਵੱਖਰੇ ਵਾਤਾਵਰਨ ਵਾਲੇ ਨੈੱਟਵਰਕ ਔਜ਼ਾਰ ਵੱਲੋਂ ਬਣਾਇਆ ਦੂਜਾ ਵਰਚੁਅਲ ਅਡੈਪਟਰ।
ਦੁਬਾਰਾ ਕਨੈਕਟ ਕਰਨ ਨਾਲ ਬਦਲਾਅ ਕਿਉਂ ਰੱਦ ਹੋ ਸਕਦਾ ਹੈ
ਓਵਰਰਾਈਡ ਇੰਟਰਫ਼ੇਸ ਦੀ ਇੱਕ ਹੀ ਉਦਾਹਰਣ ਦਾ ਹੁੰਦਾ ਹੈ। ਜਦੋਂ ਕਲਾਇੰਟ ਅਡੈਪਟਰ ਤੋੜ ਕੇ ਅਗਲੇ ਕਨੈਕਸ਼ਨ 'ਤੇ ਦੁਬਾਰਾ ਬਣਾਉਂਦਾ ਹੈ, ਭੇਜੇ ਮੁੱਲ ਦੁਬਾਰਾ ਲਾਗੂ ਹੁੰਦੇ ਹਨ ਅਤੇ ਤੁਹਾਡੀ ਸੂਚੀ ਚਲੀ ਜਾਂਦੀ ਹੈ। ਕੁਝ ਕਲਾਇੰਟ ਹਰ ਕਨੈਕਸ਼ਨ 'ਤੇ ਇੰਟਰਫ਼ੇਸ ਦੁਬਾਰਾ ਬਣਾਉਂਦੇ ਹਨ; ਹੋਰ ਸੈਸ਼ਨ ਭਰ ਇਸਨੂੰ ਮੁੜ ਵਰਤਦੇ ਹਨ। Get-NetAdapter ਵਿੱਚ ਇੰਟਰਫ਼ੇਸ ਸੂਚਕਾਂਕ ਦੀ ਦੋ ਕਨੈਕਸ਼ਨਾਂ ਵਿਚਕਾਰ ਤੁਲਨਾ ਕਰੋ ਅਤੇ ਤੁਸੀਂ ਜਾਣ ਜਾਓਗੇ ਕਿ ਤੁਹਾਡੇ ਕੋਲ ਕਿਹੜਾ ਵਿਵਹਾਰ ਹੈ।
ਤਿੰਨ ਟਿਕਾਊ ਜਵਾਬ ਹਨ, ਅਤੇ ਇਨ੍ਹਾਂ ਨੂੰ ਇੱਕ ਉੱਤੇ ਦੂਜਾ ਰੱਖਣਾ ਆਪਣੀਆਂ ਹੀ ਖ਼ਰਾਬੀਆਂ ਪੈਦਾ ਕਰਦਾ ਹੈ। ਕਨੈਕਸ਼ਨ-ਵਿਸ਼ੇਸ਼ DNS ਪਿਛੇਤਰ ਅਤੇ NRPT ਨਿਯਮ ਸਿਰਫ਼ ਅੰਦਰੂਨੀ ਨਾਮਸਥਾਨ ਨੂੰ ਅੰਦਰੂਨੀ ਰਿਜ਼ਾਲਵਰ ਤੱਕ ਭੇਜਦਾ ਹੈ ਅਤੇ ਜਨਤਕ ਨਾਮਾਂ ਨੂੰ ਛੱਡ ਦਿੰਦਾ ਹੈ। VPN ਕਨੈਕਸ਼ਨ ਉੱਤੇ ਲਾਗੂ ਗਰੁੱਪ ਨੀਤੀ ਜਾਂ MDM ਸੈਟਿੰਗ ਬਿਨਾਂ ਕਿਸੇ ਸਕ੍ਰਿਪਟ ਦੇ ਕਨੈਕਸ਼ਨ ਵੇਲੇ DNS ਸੈੱਟ ਕਰਦੀ ਹੈ। ਕਨੈਕਸ਼ਨ ਘਟਨਾ 'ਤੇ ਪ੍ਰਤੀਕਿਰਿਆ ਦੇ ਕੇ cmdlet ਦੁਬਾਰਾ ਚਲਾਉਣ ਵਾਲਾ ਨਿਯਤ ਕੰਮ ਕਠੋਰ ਵਿਕਲਪ ਹੈ, ਪਰ ਇਹ ਕੰਮ ਕਰਦਾ ਹੈ ਅਤੇ ਲੌਗ ਛੱਡਦਾ ਹੈ। DNS ਲਈ ਇੱਕ ਹੀ ਮਾਲਕ ਚੁਣੋ ਅਤੇ ਲਿਖੋ ਕਿ ਕਿਹੜਾ ਹੈ।
ਇੱਕ ਲੇਬਲ ਵਾਲੇ ਅੰਦਰੂਨੀ ਨਾਮਾਂ ਨੂੰ ਵੀ ਪਿਛੇਤਰ ਖੋਜ ਸੂਚੀ ਚਾਹੀਦੀ ਹੈ। Set-DnsClientGlobalSetting -SuffixSearchList ਪੂਰੀ ਮਸ਼ੀਨ 'ਤੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਇਹ ਕੰਪਿਊਟਰ ਦੇ ਹਰ ਅਡੈਪਟਰ ਲਈ, Ethernet ਸਮੇਤ, ਹੱਲ ਬਦਲਦਾ ਹੈ। ਇਮੇਜ ਵਿੱਚ ਜਾਣ ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰਯੋਗਸ਼ਾਲਾ ਦੀ ਮਸ਼ੀਨ 'ਤੇ ਇਸਨੂੰ ਪਰਖੋ।
ਸਿਰਫ਼ ਸੈਟਿੰਗ ਨਹੀਂ, ਹੱਲ ਵੀ ਜਾਂਚੋ
ਅਡੈਪਟਰ ਉੱਤੇ ਸੂਚੀਬੱਧ ਰਿਜ਼ਾਲਵਰ ਸਿਰਫ਼ ਇਹ ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਮੁੱਲ ਲਿਖਿਆ ਗਿਆ ਹੈ। ਇੱਛਤ ਸਰਵਰ ਨੂੰ ਸਿੱਧਾ ਪੁੱਛੋ, ਫਿਰ ਆਮ ਰਸਤੇ ਰਾਹੀਂ ਪੁੱਛੋ:
Resolve-DnsName server01.corp.example -Server 10.20.0.53
Resolve-DnsName server01.corp.example
ਇਹ ਵੰਡ ਦੱਸਦੀ ਹੈ ਕਿ ਖ਼ਰਾਬੀ ਕਿੱਥੇ ਹੈ। ਸਿੱਧੀ ਕੁਏਰੀ ਜਵਾਬ ਦਿੰਦੀ ਹੈ ਅਤੇ ਆਮ ਕੁਏਰੀ ਫੇਲ੍ਹ ਹੁੰਦੀ ਹੈ: ਅਡੈਪਟਰ ਸੈਟਿੰਗ ਜਾਂ ਪਿਛੇਤਰ ਸੂਚੀ ਲਾਗੂ ਨਹੀਂ ਹੈ। ਦੋਵੇਂ ਫੇਲ੍ਹ ਹੁੰਦੀਆਂ ਹਨ: ਰਿਜ਼ਾਲਵਰ ਟਨਲ ਰਾਹੀਂ ਪਹੁੰਚ ਤੋਂ ਬਾਹਰ ਹੈ, ਇਸ ਲਈ DNS ਨੂੰ ਦੁਬਾਰਾ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਰਸਤੇ ਅਤੇ ਫਾਇਰਵਾਲ ਨਿਯਮ ਵੇਖੋ। ਸਿੱਧੀ ਕੁਏਰੀ ਫੇਲ੍ਹ ਹੁੰਦੀ ਹੈ ਜਦੋਂ ਕਿ ਆਮ ਕੁਏਰੀ ਕਿਤੇ ਹੋਰੋਂ ਜਵਾਬ ਦਿੰਦੀ ਹੈ: ਵੰਡਿਆ DNS ਗਲਤ ਕੌਂਫਿਗਰ ਹੈ ਅਤੇ ਅੰਦਰੂਨੀ ਨਾਮ ਦਾ ਜਵਾਬ ਜਨਤਕ ਰਿਜ਼ਾਲਵਰ ਦੇ ਰਿਹਾ ਹੈ, ਜੋ ਕਨੈਕਟੀਵਿਟੀ ਸਮੱਸਿਆ ਤੋਂ ਪਹਿਲਾਂ ਨੀਤੀ ਦੀ ਸਮੱਸਿਆ ਹੈ।
ਪਰਖ ਦੋ ਵਾਰ ਚਲਾਓ, ਇੱਕ ਵਾਰ ਕਨੈਕਟ ਹੋਣ ਤੋਂ ਤੁਰੰਤ ਬਾਅਦ ਅਤੇ ਇੱਕ ਵਾਰ ਡਿਸਕਨੈਕਟ ਤੇ ਦੁਬਾਰਾ ਕਨੈਕਟ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਅਤੇ ਦੋਵੇਂ ਵਾਰਾਂ ਦੇ Get-DnsClientServerAddress ਆਉਟਪੁੱਟ ਦੀ ਤੁਲਨਾ ਕਰੋ। ਜੇ ਭੇਜਿਆ ਮੁੱਲ ਦੂਜੇ ਕਨੈਕਸ਼ਨ 'ਤੇ ਵਾਪਸ ਆ ਗਿਆ, ਤਾਂ ਓਵਰਰਾਈਡ ਅਡੈਪਟਰ ਨਾਲ ਹੀ ਜੀਵਿਆ ਅਤੇ ਮਰਿਆ, ਅਤੇ ਸਿਰਫ਼ ਪਿਛਲੇ ਭਾਗ ਦਾ NRPT ਜਾਂ ਨੀਤੀ ਰਸਤਾ ਹੀ ਟਿਕੇਗਾ। ਦੋਵੇਂ ਟ੍ਰਾਂਸਕ੍ਰਿਪਟ ਅਤੇ ਕਨੈਕਸ਼ਨ ਦੇ ਸਮਾਂ-ਚਿੰਨ੍ਹ ਸੰਭਾਲ ਕੇ ਰੱਖੋ; ਇਹ ਟਿਕਦਾ ਹੈ ਜਾਂ ਨਹੀਂ, ਇਹ ਸਵਾਲ ਸੋਧਾਂ ਦੇ ਅਗਲੇ ਦੌਰ ਨਾਲੋਂ ਤੇਜ਼ੀ ਨਾਲ ਨਿਪਟਾਉਂਦੇ ਹਨ।