サーバーマネージャー自動起動を抑制してみた

Windows Server 2008 以降、管理者権限でログオンすると自動的に「サーバーマネージャー」が起動します。

この自動起動を抑制する方法はいくつかあり、サーバーマネージャー、グループポリシー、レジストリで設定できます。

その他に、タスクスケジューラーで抑止する方法を見つけたので紹介します。

これはあまり知られていないような気がします。

 

続きを読む

Windows 10 の Update

Windows Vista から Windows 8.1 Update までは、コントロールパネルの中に「Windows Update」というメニューがありました。

しかし、Windows 10 Enterprise Technical Preview (ビルド 10049)では、コントロールパネルの中に「Windows Update」がありません。

そのため、Windows の Update およびその設定を変更するGUIを起動するためには、別の方法が必要になります。

 

 

今のところ、下記ABの方法を確認済みです。(どちらも同じ画面が起動します。)

A: スタートメニューから「設定」を開き、表示される各種メニューのうち「保守と管理」を選択する。

B: コマンド wuapp を実行する。

 

非管理者によるActiveDirectoryの情報収集

ActiveDirectory ドメインの管理者権限を持たない標準ユーザーで、どんな情報を収集可能か試してみました。

 

 

ドメイン名は「test.local」で、ドメインコントローラーは、「DOMEKON」(OS: Windows Server 2003 R2 Service Pack 2)が一台だけという環境です。

このtest.localドメインに参加している Windows 8.1 Update に、ドメインの標準ユーザーとしてログオンした状態を想定しています。

 

<一> ドメインユーザーの一覧

net user /domain

 

 

<二> ドメインコントローラーの一覧

nltest /dclist:test.local

※ドメインコントローラーが複数台ある場合、どれがPDCエミュレーターの役割を担っているのかを特定できます。

また、各ドメインコントローラーが属しているサイト名も分かります。

 

 

<三> ドメインに参加しているコンピューターの一覧

netdom query workstation

※このコマンドは、Windows 8.1 に「リモート サーバー管理ツール」(KB2693643)をインストールすることで使えるようになります。

 

 

ARP エントリを追加してみよう。

今年も残すところあと一ヶ月となりましたので、IP アドレスと MAC アドレスを紐付ける「ARP テーブル」に、手動でエントリを追加する方法を整理してみました。

どれも CUI です。

少なくとも Windows の機能としては、GUI で行う方法は無いようです。

 

 

 

◆ ARP コマンド

" ARP -s [宛先 IP アドレス] [宛先 MAC アドレス] [登録する NIC の IP アドレス] "

おそらくもっとも古くからある手法ではないでしょうか。

Windows XP SP3 でも、Windows 8.1 Update1 でも使用できることを確認しています。

三つ目のオプション [登録する NIC の IP アドレス] は必須ではありませんが、NIC が複数あるコンピューターでは、このオプションで指定してやらないとどの NIC に登録されるかわかりません。

(どうやら、ipconfig コマンドで一番上に表示される NIC に登録されるようなのですが、確証はありません。)

なお、このコマンドにより設定したエントリは OS をシャットダウンすることで揮発してしまいます。

エントリを恒久的に使用したい場合は、 スタートアップスクリプトとしてOS 起動時に実行する等の方法があります。

 

 

 

◆ netsh コマンド

" netsh interface ipv4 add neighbors [登録する NIC 名] [宛先 IP アドレス] [宛先 MAC アドレス] "

netsh コマンド自体は Windows XP にもありますが、こうやって APR エントリを追加することができるのは Windows Vista 以降です。

[登録する NIC 名] というのは、ipconfig を実行した時に「イーサネット アダプタ XXX:」として表示される「XXX」の部分です。

「ローカル エリア接続」のようにスペースを含んでいる場合は、ダブルクォーテーション記号「"」で前後を括ります。

arp コマンドと最も違うのは、デフォルトでは OS シャットダウン時に揮発しない点でしょう。

あえて揮発させたい場合は、" sotre=active " というオプションを付与します。

 

 

 

◆ New-NetNeighbor コマンドレット

" New-NetNeighbor -InterfaceAlias [登録する NIC 名] -IPAddress [宛先 IP アドレス] -LinkLayerAddress [宛先 MAC アドレス(ハイフン無し)] "

これだけコマンドではなく PowerShell です。

Windows 8 や Windows Server 2012 以降で使えるようになった、「NetTCPIP」モジュールに含まれています。

前述の二つのコマンドと違って、MAC アドレスを二桁ずつハイフン記号「-」で区切ってはいけません。

デフォルトでは OS シャットダウン時に揮発ないので、あえて揮発させたい場合は、" -PolicySotre ActiveStore " というオプションを付与します。

 

 

 

ServerManager.exe

Windows Server 2008 の「サーバー マネージャ」と Windows Server 2008 R2 の「サーバー マネージャー」の実体は、「Microsoft管理コンソール(mmc.exe)」のスナップインの一つである「ServerManager.msc」でした。

 

 

一方、Windows Server 2012 や Windows Server 2012 R2 の「サーバー マネージャー」はプロセスとして独立し、「%systemroot%¥System32」にある「ServerManager.exe」になっています。

そのため、コマンドプロンプトや「ファイル名を指定して実行」に「ServerManager.msc」と打ち込んでも起動出来ません。

 

接続先ドメインコントローラー確認方法

ドメインに参加している端末は、起動時にドメインコントローラーに接続します。

起動後のユーザーログオン時の認証等は、基本的に起動時に接続したドメインコントローラーに認証してもらいます。

現在、端末がどのドメインコントローラーに接続しているのかを確認する、一番手っ取り早い方法は " net-user /domain " コマンドです。

これは本来、ドメインユーザーの一覧を表示するコマンドなのですが、「情報提供元」として「現在接続しているドメインコントローラー」が表示されるため、ソレを確認する用途にも使えます。

他に " nltest /sc_query:<domainname> " コマンドでも確認可能ですが、このコマンドは Windows Server 2003 では標準では使えません。(Support Tools に含まれています。)

 

 

なお、ドメイン内に複数のドメインコントローラーがある場合、端末が起動時に接続するドメインコントローラを指定する方法は、「サイトを切り分ける」以外に無いようです。

Get-Partition の方が Get-Volume より便利?

"Get-Partition" も、”Get-Vlume“ と同じく、Windows Server 2012 の PowerShell 3.0 から使えるようになったコマンドレットの一つです。

前回の記事では、"Get-Volume" コマンドレットは必ずしも “diskpart” コマンドにおける “list volume” の代用にはならないということを書きましたが、"Get-Partition" コマンドレットであれば代用どころかより豊富な情報が得られることを確認しました。

コンピューター上に存在するパーティションの一覧が、ご丁寧にディスク毎に分かれて表示されますし、その中にはちゃんと「EFI システムパーティション」(100MB)も載っています。

ただし、そのパーティションが「EFI システムパーティション」であるとはどこにも書いてません。「Type」という項目が「System」になっていることが特徴的だと言えますが、それだけです。(Cドライブなど、普通のパーティションは同項目が「Basic」になっています。)

 

 

またさらに、「予約」領域が、"Get-Partition" コマンドレットで表示出来ることを確認しました。「Type」は「Reserved」です。

この領域は、“diskpart” コマンドの "list partition" によって確認出来ますが、“list volume” や、「ディスクの管理」画面では表示されません。

Get-Volume で表示されないパーティションがあった。

Windows Server 2012 の PowerShell 3.0 から使えるようになったコマンドレットの一つに、"Get-Volume" というものが有ります。

特にオプションを付けずにそのまま実行すると、現状でそのコンピューター内に存在するパーティションが全て表示されます。

要するに "diskpart" コマンドにおける "list volume" と同じようなものか・・・ と思っていたのですが、必ずしもそうではないケースもあるということに気づきました。

 

 

普段、各種確認/検証作業は Windows Server 2012 の Hyper-V 上にある仮想マシンで行っているのですが、ふとした思いつきで、ホスト側でもこの "Get-Volume" コマンドレットを実行してみました。

すると、その結果には "diskpart" の "list volume" や、「ディスクの管理画面」には表示される「EFI システムパーティション」というパーティション(100MB)が表示されていません。

 

 

このパーティションは、"mountvol" コマンドにより表示される「現在のマウントポイントとボリューム名の考えられる値」の一覧にも表示されません。

そのため、このパーティションが "Get-Volume" コマンドレットの結果に表示されないのは、「マウントされていない」ことが原因ではないかと考えられます。

"mountvol" コマンドのオプションを調べてみると "/S" というものがあり、その効能は「EFI システムパーティションを与えられたドライブにマウントします。」となっています。

おそらく、この方法でこのパーティションをマウントしてやれば、"Get-Volume" コマンドレットの結果にも表示されるようになるのでしょう。

が、ホストの環境はあまり弄りたくないので未確認です。

 

 

typeperf コマンドでパフォーマンスを確認

パフォーマンスモニタを起動する " perfmon " コマンドや、カウンンタを設定/起動/停止する " logman " コマンドは知っていましたが、今日初めて " typeperf " コマンドというものを知りました。

 

 

指定したカウンタの値を1秒間隔で取り続け、コマンドプロンプト上で確認出来ます。

ある程度しっかりしたログを取りたいなら別ですが、ちょっとした確認にはこちらの方が便利かもしれません。

(Windows XP SP3 および Windows 8.1 Preview で使えました。)

 

 

テックネットの記事はこちら =>  Typeperf

 

 

” システムで予約済み ” パーティション <2>

OS インストール時に勝手に作られるこの「システムで予約済み」パーティションですが、実は作らずに OS をインストールすることも可能です。

そうした場合、Bootフォルダなどが自動的にCドライブ内に作成されます。つまり、Windows Server 2008 やWindows Vistaと同じスタイルになるというわけです。

 

 

以下に、私が実際に行った手順を紹介します。

※Windows Server 2012 の Hyper-V 上の仮想サーバーにて、Windows Server 2008 R2 SP1  を用いました。

1. サーバーをOSインストールメディアから起動します。

2. 最初の画面で言語やキーボードを選択した後、そのままストレートにOSをインストールするのではなく、まずは「コンピューターを修復する」を選択して「システム回復オプション」を起動します。

3. ラジオボタンの選択は既定(上下二つのうち、上側にチェックが入っていると思います。)のまま「次へ」ボタンを押し、次の画面からコマンドプロンプトを起動します。

4. コマンドプロンプトにて"diskpart" を実行し、下記 -a) 〜 -h) のコマンドにより、OSをインストールするCドライブを作成します。

-a) list disk

現在接続されているHDDの一覧を表示します。

-b) select disk X

OSをインストールしたいHDDを選択します。

X には、a) にて確認したそのHDDのナンバーを入れます。

-c) clean

現在そのHDD内にあるパーティションやデータを一掃します。

-d) create partition primary

そのHDDに新しいプライマリパーティションを作成します。

特にサイズを指定していないので、そのHDDを余すところなく目一杯使います。

-e) list vol

HDDにボリュームが作成されたことを確認します。

-f) select vol Y

作成されたボリュームを選択します。

Y には、e) にて確認したそのボリュームのナンバーを入れます。

-g) assign letter=C

ボリュームにドライブ文字「C」を割り当てます。

-h) list vol

ボリュームにドライブ文字「C」が割り当てられた事を確認します。

5. ウィンドウ右上の[×]でコマンドプロンプトを閉じ、同様にシステム回復オプションも閉じ、「Windows のインストール」画面に戻ります。

6. ここから先は通常のOSインストール手順と基本的に同じです。インストール場所を選択する画面では、先ほどdiskpartコマンドにより作成したCドライブを選択します。

7. OS インストール完了後、ログオンして「ディスクの管理」画面を開き、「システムで予約済み」パーティションが無い事を確認します。

 

 

さて、「システムで予約済み」パーティションが無い状態というのは、通常と比べて何がちがうのでしょうか?

試した限りでは、「Windows Server バックアップ」にて、「ベアメタル回復」オプションを選択せずにCドライブ単体をバックアップした場合にも、そのバックアップデータから新品HDDへのベアメタル回復が可能であることを確認しました。(通常はできないことです。)

※可能だとは言っても、このような回復は正式にサポートされる方法ではないはずなので、万が一回復に失敗しても自己責任となります。