チャブーンです。
この件ですが、おっしゃる動作(ネットワークが動作する場合、ログオン時に外部に確認を行おうとする)は、条件が合えば「既定の動作」となり、無効化することはできません。たとえば以下ですが、すべてではなありません。
- 移動ユーザープロファイルが有効
- フォルダーリダイレクトが有効
- オフラインファイルが有効
- Azureとの連携 (「職場または学校にアクセスする」にEntra ID(メールアドレス)が登録されている)
AWSとの連携、が何を意味しているのか、こちらではわかりませんが、おそらくやりたい「オンラインであってもOSとしてはオフライン状態でログオンを行う」設定は残念ですが、存在しないです。過去OSで様々な問題があり、修正した結果今のWindowsではこれを既定としている、認識です。
どうしてもオフラインにしたい場合、ネットワークカードを強制的に無効化し、ドライバーレベルで実際に遮断する、以外の方法はないでしょう。
# TCP/IPにバインドしたNICの取得 (IP通信可)
[Array]$IPv4BindingAliases = Get-NetAdapterBinding | where {$_.ComponentID -eq "ms_tcpip" -and $_.Enabled -eq "True"} | select ifAlias
# $IPv4BindingAliasesからリンクアップしているNICの取得
[Array]$UpLinkwithIPv4BindAliases =
Foreach ($IPv4BindingAliase in $IPv4BindingAliases) {
IF ((Get-NetAdapter $IPv4BindingAliase.ifAlias).Status -eq "Up") {
$IPv4BindingAliase.ifAlias
}
}
# システム環境変数 DISABLENIC の設定
$DisableNIC = $UpLinkwithIPv4BindAliases -join ','
[Environment]::SetEnvironmentVariable("DISABLENIC", "$DisableNIC" , [EnvironmentVariableTarget]::Machine)
# 対象NICの無効化
Foreach ($UpLinkwithIPv4BindAlias in $UpLinkwithIPv4BindAliases) {
Disable-NetAdapter $UpLinkwithIPv4BindAlias -Confirm:$false
}
で、この状態でログオンした後、タスクスケジューラーでネットワークカードを有効化する、という方法をとれば、利用者が「ログオン後に有効化した」と同じ状況が作れます。利用者自身は管理者権限ないのでしょうから、SYSTEMアカウント権限で実行する必要があります。
# DisableしたNICを DISABLENIC 環境変数から取得
[Array]$UpLinkwithIPv4BindAliases = $ENV:DISABLENIC -split ","
# 対象NICの有効化
Foreach ($UpLinkwithIPv4BindAlias in $UpLinkwithIPv4BindAliases) {
Enable-NetAdapter $UpLinkwithIPv4BindAlias -Confirm:$false
}
ここまでして、やりたいですか?という話しになると思います。もし私でしたら、運用でカバーする、というやり方になるかと。つまりは、
なお、この現象は暫くサインインしなかったアカウントにて発生している様子です
とならないように、利用者(ユーザー)に周知徹底してもらい、最初から起こらないようにする、が妥当なように、思います。