PowerShellでDDNS NowのIPアドレス登録を更新する

お久しぶりです。

表記の通りWindowsからDDNS Nowに登録しているIPアドレスを更新したかったけど余計なソフトを入れたくなかったのでPowerShellからやる方法を採用しましたのでやり方を共有します。

DDNS NowはよくできていてDiceというソフトをインストールしても更新できますが、そんなことしなくてもAPIをたたけば更新される仕様なのです。
今回はPowerShellのSystem.Net.WebClientを使用してAPIをたたきます。

まずはDDNS Nowのページに行き必要情報をメモしてきます。

一つ目はここのユーザIDをメモしてください。

2つ目はここのトークンIDをコピーしてください

以下のようなシェルを記載し保存します

$url = 'https://f5.si/update.php?domain=【ユーザID】&password=【トークン】'
$wc = New-Object System.Net.WebClient
$wc.QueryString.Add("q", "Powershell")

$resstr = $wc.DownloadString($url)
Write-Output($resstr)

 

最後にPowerShellから実行して以下の表示が出ればOKです。

 

ついでなのでこれをタスクスケジューラに登録して自動化しましょう
タスクスケジューラを開いたら左メニューから「タスクの作成」をクリックします

タスクの名称はなんでもよいので適当に入力します

トリガータブに移動し「新規」をクリックします

IPアドレスなんて頻繁に更新されるものでもないので1日1回実行されれば十分でしょう
「毎日」を選択してOKをクリックします

操作タブに移動し「新規」をクリックします

以下の2か所をそれぞれ入力します

プログラム/スクリプト →    %Systemroot%\System32\WindowsPowerShell\v1.0\powershell.exe

引数の追加 →  -ExecutionPolicy Bypass 【先ほど作成したスクリプトのパス】

 

ここまで出来たらOKをクリックして保存します

とりあえずざっくり書いてみました。タスクスケジューラの書き方は一般的なものなので分りにくければ他のサイトも参考にしてみてください