Power Automate(以降、PA)のフローを作った際に調べてわかったことを記録の形にして投稿します。
指摘やアドバイスは大歓迎です。よろしくお願いいたします。
はじめに
リモートワークで仕事をする際、社内VPNに接続して打刻をする必要がある。毎回、同じことをすることがめんどくさいこともあり、PAのフローを作るきっかけになった。PAを使えば、一回のクリックで済むはず!
打刻はブラウザ操作機能でできるが、VPNに接続するのはどうしたらいいかわからなかった。
GUI操作で接続
最初は、タスクバーにあるWifiマークをクリックし、クイックメニューからVPNを選択して接続する流れにしようとして、PAでフローを作ってみたところ、クイックメニューがグループで認識していたため、中にある項目をクリックするのが難しかった。
GUI操作でしたら簡単に作れると思ったため、以下の操作フローで作った
Windowsの設定 → 「ネットワークとインターネット」 → VPN → VPN名の横にある「接続」ボタンを押下
まず、PowerShellスクリプトに「control system」を設定する。(先に接続設定をしておく必要がある)こうすることでWindowsの設定画面が開くことができる(ちなみに、「control」にすると、コントロールパネル画面が表れる)
これでも実装はできたが、一発でVPNにつなぐことができる方法がないか調べてみた。
PowerShellで対応
1.PowerShellスクリプト作成
Windowsのrasphoneを用いたら、VPNに簡単に接続することもできることが分かった。
早速、PA側に「PowerShellスクリプトの実行」を作成
スクリプトの内容は以下の通り。
VPN名を自分の環境に合わせて置き換えするだけでOK!
これで既に接続されている場合、スキップすることができる
(逆にVPN接続を切りたい場合は以下の「Disconnected」を「Connected」に変更するだけで対応可能)
$vpnName = "VPN名";
$vpn = Get-VpnConnection -Name $vpnName;
# 接続していない場合
if($vpn.ConnectionStatus -eq "Disconnected"){
rasphone -d $vpnName;
}
2. 接続ダイアログボックスの非表示
既にVPN設定が完了していてもPowerShellで実行すると、以下のダイアログが表示され、「接続」ボタンを押す手間がかかる。
ここで、以下のファインをメモ帳などで開く
C:\Users\【ユーザー名】\AppData\Roaming\Microsoft\Network\Connections\Pbk\rasphone.pbk
VPN名の下にいろんな設定がある。その中で「PreviewUserPw」で検索すると、以下のようにデフォルト値が「1」になっている
[VPN名]
Encoding=1
PBVersion=8
Type=2
・
・
・
PreviewUserPw=1
「PreviewUserPw=1」から「PreviewUserPw=0」に変更する。
こうすることでダイアログボックスを表示されず、接続ができる!
最後に
PAを使ってもWindows関連機能を使う際はできるだけPowerShellやcmdを活用した方が手間を減るんだなと思いました。(何故かPAを利用する時にはGUI操作をしないと、という理由のないプレッシャーを感じますね、、)