前回の記事の最後で、「障害が一過性のものなら大した問題にならない」と書きました。
では、障害が継続し、B-D 間でセキュアチャネルを確立できない状態のままだと、どのような影響が出るのかを具体的に紹介します。
(起こり得ることの全てを網羅できているわけではありません。)
Active Directory ドメインに参加しているコンピューターは、起動時に必ずドメインコントローラーへ接続し、セッションを確立します。
このセッションは暗号化されており、「セキュアチャネル」と呼ばれます。
「セキュアチャネル」そのものついては、マイクロソフトの中の人が書かれているブログ「ドメインにログオンできない ~ セキュア チャネルの破損 ~」で詳しく解説されているので、ここでは割愛します。
独立研究開発法人 情報通信研究機構が公開しているタイムサーバーから時刻情報を取得し、ローカルコンピューターの時刻として設定するコマンドレットです。
Set-Date (Invoke-WebRequest -Uri https://ntp-a1.nict.go.jp/cgi-bin/time).Headers.Date
今回は、約1年前に書いた記事と関係する内容です。
Get-ScheduledTask コマンドレットを用いてタスクのスケジュールを確認する方法を紹介していましたが、その記述には少し無駄がありました。
もっとシンプルな記述でも良いことを知ったので、改めて紹介します。
Windows Server 2008 以降、管理者権限でログオンすると自動的に「サーバーマネージャー」が起動します。
この自動起動を抑制する方法はいくつかあり、サーバーマネージャー、グループポリシー、レジストリで設定できます。
その他に、タスクスケジューラーで抑止する方法を見つけたので紹介します。
これはあまり知られていないような気がします。
昨日書いたスクリプトを、一部改良しました。
出力されるテキストファイルは、実行した「Get-Netホニャララ」コマンドレットがそのままファイル名になります。
昨日のスクリプトでは、拡張子「.txt」までの間に長いスペースが発生してしまいますので、ちゃんと「Get-Netホニャララ.txt」となるようにしたのが以下のスクリプトです。
===============================
Get-Command -name Get-Net* | Format-List name | Out-File .¥1.txt
$1 = Get-Content .¥1.txt
$2 = $1.length -4
$C = 2
While($C -le $2)
{
$A = $1[$C]
$B = -join $A[7..100]
Invoke-Expression $B | Out-File .¥$B.txt
$C = $C +2
}
===============================
なお、PowerShellで「Get-Netホニャララ」が使えるようになるのは、Windows8 や Windows Server 2012以降です。
PowerShellで何らかの設定情報を収集するためには、大抵の場合「Get-ホニャララ」というコマンドレットを実行します。
NIC(ネットワークアダプター)に関係する設定情報であれば、「Get-NetIPAddress」や「Get-NetAdapterHardwareinfo」のように、「Get-Netホニャララ」というコマンドレットで概ね取得可能です。
それらを一気に実行するスクリプトを書いてみました。
(実行結果は、それぞれのコマンドレットごとに独立したテキストファイルとして、カレントディレクトリに出力されます。)
===============================
Get-Command -name Get-Net* | Format-Table name | Out-File .¥1.txt
$1 = Get-Content .¥1.txt
$2 = $1.length -3
$C = 3
While($C -le $2)
{
$A = $1[$C]
Invoke-Expression $A | Out-File .¥$A.txt
$C = $C +1
}
===============================
Windows Server 2012 や Windows 8 以降、PowerShell に「NetSecurity」モジュールが追加されたことで、Windows ファイアウォールを設定できるようになりました。
Windows Server 2012 や Windows 8 に限りませんが、近年の Windows OS は、デフォルトで 外部からの ping に応答しないようになっています。
これは、「Windows ファイアウォール」が有効で、なおかつ 「ICMP の応答を許可する設定」が無効だからです。
応答させるためには、「Windows ファイアウォール」自体を無効化するか、もしくは 「ICMP の応答を許可する設定」を有効化する必要があります。
今回は、後者の設定を PowerShell でやってみます。(IPv4 による通信を想定)
なお、この設定は GUI「セキュリティが強化された Windows ファイアウォール」において、「ファイルとプリンターの共有(エコー要求 - ICMPv4 受信)」という表示名で存在します。
まずは、デフォルトの設定が無効であることを確認します。
(Get-NetFirewallRule -name FPS-ICMP4-ERQ-In).Enable
↓2015/11/14 末尾の一文字が欠けていたので修正しました。
(Get-NetFirewallRule -name FPS-ICMP4-ERQ-In).Enabled
この実行結果は「False」となるはずです。
続いて、この設定を有効化します。
Set-NetFirewallRule -name FPS-ICMP4-ERQ-In -enabled true
これにより、外部からの ping に応答するようになります。
前述の確認用コマンドレットの実行結果も、「True」になるはずです。
(OSの再起動や、ネットワークアダプタの無効化・有効化といった作業は特に必要ありません。)