実現したいこと
IPの自動取得とDNSの自動取得にチェックをつけたい
現在は固定IPの削除は固定DNSの削除はできており
以下のようにチェックが外れない
前提
これまでは毎朝、スタートアップのフォルダに入れてWi-Fiアダプターに固定のIPを入れて毎朝つないで
いたのですが、方針が切り替わって、画面右隅のアクションセンター
からの切り替えで、無線の切り替えを行うことになりました。
発生している問題・エラーメッセージ
ネットから拾ってきたスクリプトを現在動いているスクリプトに統合して動かかそうと簡単に考えていましたが、5~4個ほどのDHPC設定ができるというスクリプトをくっつけたが、
結果は上記の写真の通り。
今朝も手動で
netsh interface ip set address "Wi-Fi" dhcp
netsh interface ip set dnsservers "Wi-Fi" dhcp
を実施するも
いましがた
https://atmarkit.itmedia.co.jp/ait/articles/0705/25/news145.html
この記事を読んで、
ipconfig /release
ipconfig /renew
を実行したのち手動で
netsh interface ipv4 set add name="Wi-Fi" source=dhcp
netsh interface ipv4 set dnsservers name="wi-Fi" source=dhcp
はうまくとおりました。
これはいったん開放してからでないと、
だめという決まりがあるのでしょうか?
該当のソースコード
startup.powershell
1<# : 2@echo off 3openfiles >nul 2>&1 4if errorlevel 1 ( 5 powershell start-process "'%~f0'" -verb runas 6 goto :EOF 7) 8powershell -noprofile -command "invoke-expression (get-content '%~f0' -raw)" 9goto :EOF 10#> 11 12 13# 以下 powershell スクリプト 14$adapter = Get-NetAdapter | Where-Object {$_.InterfaceAlias -eq "Wi-Fi"} 15 16 17# アダプターのコンフィグを取得 18$conf = $adapter | Get-NetIPConfiguration 19 20# IPアドレスが設定されている場合 21If ($conf.IPv4Address.IPAddress) { 22 23 # その設定を削除する 24 $adapter | Remove-NetIPAddress -AddressFamily "IPv4" -Confirm:$false 25} 26 27# デフォルトゲートウェイが設定されている場合 28If ($conf.Ipv4DefaultGateway) { 29 30 # その設定を削除する 31 $adapter | Remove-NetRoute -AddressFamily "IPv4" -Confirm:$false 32} 33 34# 以下が追加した 35 36$IPType = "IPv4" 37$adapter = Get-NetAdapter | ? {$_.Status -eq "up"} 38$interface = $adapter | Get-NetIPInterface -AddressFamily $IPType 39If ($interface.Dhcp -eq "Disabled") { 40 # Remove existing gateway 41 If (($interface | Get-NetIPConfiguration).Ipv4DefaultGateway) { 42 $interface | Remove-NetRoute -Confirm:$false 43 } 44 # Enable DHCP 45 $interface | Set-NetIPInterface -DHCP Enabled 46 # Configure the DNS Servers automatically 47 $interface | Set-DnsClientServerAddress -ResetServerAddresses 48} 49
試したこと
DHCPと表題に書いてあるものを張り付けて試しましたが、
アダプターのプロパティ IPv4で確認すると
空欄になっているだけで、IPもDNSも自動取得にチェックがはいっていませんでした。
どのように修正すればうまくチェックが付くのでしょうか?
それとも僕だけの問題なのか
Windowsのバージョンアップの際のエラーなのか?
補足情報(FW/ツールのバージョンなど)
$IPType = "IPv4" $IPTypeに"IPv4"を代入
$adapter = Get-NetAdapter | ? {$_.Status -eq "up"} 今 up=接続しているネットワークアダプターを$adapterで取得
$interface = $adapter | Get-NetIPInterface -AddressFamily $IPType
今立ち接続しているネットワークの情報が入った$adapterの情報でIPv4のネットワークのものを$interfaceへ代入
If ($interface.Dhcp -eq "Disabled") {
Remove existing gateway
If (($interface | Get-NetIPConfiguration).Ipv4DefaultGateway) {
$interface | Remove-NetRoute -Confirm:$false
インターフェースのdhcpが利用不可ならーーーー
IPv4のデフォルトゲートウェイの値をとれ
Enable DHCP
$interface | Set-NetIPInterface -DHCP Enabled
DHCPを利用可能にチェックをつける
Configure the DNS Servers automatically
$interface | Set-DnsClientServerAddress -ResetServerAddresses
DNSも自動取得にする
くらいのレベルでcodeは読めていると思います。