Server OS Cafe -6ページ目

Server OS Cafe

Server OSの紹介等

今回は手動でバックアップを取得してみます。


■GUIの場合

1.Server ManagerのWindows Server バックアップの操作メニューから「バックアップ(1回限り)」を選択します。


 WindowsServerBackupMenu


2.バックアップ対象をサーバー全体かボリュームを指定するかを選択します。


 WSBManu1

 ボリュームを指定する場合は以下の画面からバックアップを取得するボリュームを選択します。
 
 WSBManu2

 スケジュールの時と同様、ファイル単位、ディレクトリ単位で
 バックアップ対象を指定することはできません。


3.バックアップ先を指定します。


 WSBManu3

 「ローカルドライブ」を選択した場合はHDDかDVDのドライブ文字を指定します。


 WSBManu4

 「リモート共有フォルダ」を選択した場合は共有名を
 UNC形式(\\コンピュータ名\共有名)で指定します。

 
 WSBManu6

 また共有フォルダの場合はバックアップフォルダのアクセス権を
 共有フォルダから継承するか、継承しないかも指定します。
 継承しないを選択した場合は以下のダイアログが表示され
 バックアップ先のフォルダのアクセス権を持つユーザー名の入力が
 要求されます。

 
 WSBManu7

4.バックアップの種類を「VSSコピーバックアップ」と「VSS完全バックアップ」から選択します。


 WSBManu5


5.以上で設定は完了し、バックアップが開始されます。


 WSBManu8

 

 この画面を終了させてもバックアップはバックグラウンドで実施され、
 その進捗はスケジュールの時と同様、「メッセージ」欄で確認できます。

 
 WSBManu9

 バックアップを中止する場合はコマンドプロンプトで「wbadmin stop job 」を実行します。


■コマンドの場合
1.コマンドの場合はwbadmin start backup で手動のバックアップが行われます。
 

 <オプション>
 -backupTarget:バックアップ先を指定します。
        HDD、DVDに採る場合はドライブ文字を指定します。
        ※スケジュールのバックアップで使用するwbadmin enable backupでは
          ディスクIDを指定していましたが、手動の場合はドライブ文字になります。
          共有フォルダに採る場合はUNC形式で共有名を指定します。
 -include:バックアップに含めるボリュームをドライブ文字で指定します。
 -allCritical:このオプションを指定すると自動的にシステム回復に必要なボリューム(通常はC)が
        バックアップ対象になります。
 -vssFull:このオプションを指定するとバックアップの種類が「VSS完全バックアップ」になります。
 -noVerify:このオプションを指定するとDVD等のリムーバブルディスクにバックアップを採った時に
        エラーの検証が行われません。
 -user:共有フォルダにバックアップを採る場合にアクセス権のあるユーザーを指定します。
 -password:-userで指定したユーザーのパスワード。
 -inheritAcl:共有フォルダにバックアップを採る場合にこのオプションを指定すると
       バックアップフォルダのアクセス権を共有フォルダから継承します。
 -quiet:バックアップ実行中にプロンプトが表示されません。


C:\Users\Administrator>wbadmin start backup -backuptarget:d: -include:c:
wbadmin 1.0 - バックアップ コマンド ライン ツール
(C) Copyright 2004 Microsoft Corp.

ボリューム情報を取得しています...

これによりボリューム ローカル ディスク(C:) を d: にバックアップします。

バックアップ処理を開始しますか?
[Y] はい [N] いいえ Y

D: へのバックアップを開始しています

バックアップを要求されたボリュームのシャドウ コピーを作成しています。
バックアップを要求されたボリュームのシャドウ コピーを作成しています。
バックアップを要求されたボリュームのシャドウ コピーを作成しています。
バックアップを要求されたボリュームのシャドウ コピーを作成しています。
バックアップを要求されたボリュームのシャドウ コピーを作成しています。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (0%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (0%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (0%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (1%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (1%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (3%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (3%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (5%) をコピーしました。
・・・・・・・・・・・・・・・・・(省略)・・・・・・・・・・・・・・・・・・・・
ボリューム ローカル ディスク(C:) のバックアップを実行中に (95%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (96%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (96%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (96%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (97%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (97%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (97%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (97%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (98%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (98%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (99%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (99%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (99%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (100%) をコピーしました。
バックアップが完了しました。

バックアップの概要:
------------------

ボリューム ローカル ディスク(C:) のバックアップは正常に完了しました。

C:\Users\Administrator>

 wbadmin start backupはバックアップが終了するまで制御を返しません。
 wbadmin start backupの実行中にCtrl + Cで中断した場合、バックアップは停止せず

 バックグラウンドで続行されます。

 この場合もバックアップの進捗はwbadmin get status で確認できます。
 バックアップを中止するにはwbadmin stop job を実行する必要があります。


■作成されたバックアップの確認
 バックアップ先にディスクを指定した場合はそのディスクの直下に
 共有フォルダを指定した場合は共有フォルダの下に
 以下のフォルダ構成でバックアップが作成されています。


  WindowsImageBackup\コンピュータ名\Backup yyyy-mm-dd xxxxxx
                          \Catalog

 
 WSBManuFile

 

 バックアップファイルはVHD形式になっています。
 Virtual Server 2005 R2 SP1で試した見たところ
 このVHD単体で仮想マシンを動作させることはできませんでしたが
 別のVHDにOSをインストールした仮想マシンに
 このVHDを追加するとこのVHDの中身を見ることができました。


[関連記事]

[Win2008RC1]Windows Server バックアップ:1.スケジュールバックアップ

[Win2008RC1]Windows Server バックアップ:3.バックアップの確認

[Win2008RC1]Windows Server バックアップ:4.復元

[Win2008RC1]Windows Server バックアップ:5.システム回復

[Win2008]Windows Server バックアップ:6.システム状態のバックアップ

さてWindows Server 2008の開発も完了したようで、

早くもMSDNサブスクリプション会員は以下のサイトから

RTM(製品出荷版)をダウンロードできるようになっています。


MSDNサブスクリプション会員サイト


でもこのBlogはそんなことはおかいまいなしに

まいぺ~すに進めていきたいと思います。


今回からはWindows Server バックアップを取り上げていきます。

う~ん、とうとう長年親しんだ「Ntbackup」が無くなってしまいましたね~

で、新しく登場したWindows Server バックアップなんですが

使いやすくなっているのでしょうか?

MSDN TechNet:Windows Server バックアップ からWindows Server バックアップの

特徴を列挙すると以下のようになります。


・Volume Shadow Copy Service(VSS)とブロック レベル バックアップのテクノロジーを使用。

 バックアップはボリューム単位。

 復元はOS/ファイル/フォルダ/ボリューム単位。

・システムボリュームは常にバックアップ対象となる

・バックアップ先はスケジュールの場合は専用のHDDが1個必要、

 手動の場合は、専用のHDD、共有フォルダ、DVDから選択可能。

 なお、テープは選択不可。

・ディスク使用量が自動管理され、使い切ると古いバックアップの領域から再利用される

・リモート管理可能

・Windows回復ツールと組み合わせればOSの修復が高速に可能。

 また別のサーバーに復元することも可。


Ntbackupとの比較は以下のサイトの説明がわかりやすくて良いかと思います。


富士通:使ってみてわかった!Windows Serverバックアップの特徴


とりあえずまずWindows Server バックアップの機能を追加する手順からいきます。


・フルインストール(GUIあり)の場合

Server Mangerで機能の追加を行い、Windows Server バックアップを追加します。

Windows Server バックアップのコマンドラインツールを選択すると

Power Shellも一緒に選択されます。


 WindowsServerBackup1


・Server Coreの場合

 ocsetupコマンドで追加します。



まずGUIの方でWindows Server Backupの機能を確認してみましょう。

Server Managerで[記憶域]-[Windows Server バックアップ]を選択すると

Windows Server バックアップの操作画面が表示されます。


WindowsServerBackup2


右端が操作項目の一覧ですが以下のものがありますね。


WindowsServerBackupMenu


「パフォーマンス設定の構成」を選択すると以下のような画面が表示されて

完全バックアップを行うか、増分バックアップを行うかが選択できます。


WindowsServerBackupType

「カスタム」にした場合はボリューム単位で完全バックアップか増分バックアップか選択できます。


次にスケジュールでのバックアップを行ってみたいと思います。

上の項目から「バックアップスケジュール」を選択すると

スケジュール設定を行うダイアログ画面が表示されます。


1.まずバックアップ対象のボリュームを選択します。


 WindowsServerBackup3


 カスタムの場合はバックアップするボリュームを選択できますが、

 ファイル単位、ディレクトリ単位で指定することはできません。

 またシステムボリュームをバックアップ対象から外すことはできません。


 WindowsServerBackup4


2.次にバックアップを実行する時刻を指定します。


 WindowsServerBackup5


 1日1回の場合も、1日複数回の場合も

 リストの中から時間を選択するようになっていて

 0分台か30分台しか選ぶことができません。

 例えば11:45とかをバックアップ開始時間として指定したい場合は

 GUIではなく後述のWbadminコマンドを使用する必要があります。


3.バックアップを保存するディスクを選択します。


 WindowsServerBackup6


 選択したディスクはバックアップ専用となり

 他の用途には使用できなくなります。

 (Windowsエクスプローラーにも表示されなくなります)


またディスクにはバックアップを識別する為のラベルがつきます。


 WindowsServerBackup8


4.以上で設定は完了です。

 設定内容は[スケジュールされたバックアップ]欄に表示されます。

 またバックアップ実行中は[メッセージ欄]にバックアップの進行状況が表示されます。


 WindowsServerBackup9


以上の操作を今度はコマンドラインでやってみたいと思います。

コマンドラインでWindows Server バックアップの操作を行うには

Wbadmin コマンドを使用します。

フルインストール(GUIあり)の場合はGUIとコマンドの両方で操作可能ですが

Server Coreの場合は必然的にコマンドのみとなります。


1. まずWbadmin get disks でディスクの一覧を表示し、保存先にするディスクを決定し

 そのディスクのディスクIDを確認します。


C:\Users\Administrator>wbadmin get disks
wbadmin 1.0 - バックアップ コマンド ライン ツール
(C) Copyright 2004 Microsoft Corp.


ディスク名       : Virtual HD ATA Device
ディスク番号     : 0
ディスク ID     : {338bbef7-0000-0000-0000-000000000000}
総領域     : 15.99 GB
使用領域      : 7.18 GB
ボリューム         : C:[(ボリューム ラベルなし)]


ディスク名       : Virtual HD ATA Device
ディスク番号     : 2
ディスク ID     : {2a1344a3-0000-0000-0000-000000000000}
総領域     : 15.99 GB
使用領域      : 91.03 MB
ボリューム         : D:[(ボリューム ラベルなし)]]


ディスク名       : Virtual HD ATA Device
ディスク番号     : 1
ディスク ID     : {1079e3b3-0000-0000-0000-000000000000}
総領域     : 29.99 GB
使用領域      : 7.47 GB
ボリューム         : E:[(ボリューム ラベルなし)]]

2. Wbadmin enable backup でバックアップのスケジュール、バックアップ対象、保存先の設定を行います。

 ここで-addtargetオプションには1で調べた保存先のディスクID、

 -scheduleオプションにはバックアップ実行時間(GUIと違い0分台、30分台以外の時間も指定可能)、

 -includeオプションでバックアップ対象のボリュームを指定します。

 -scheduleと-includeについては対象が複数ある場合はカンマでつなぎます。

C:\Users\Administrator>wbadmin enable backup -addtarget:{1079e3b3-0000-0000-0000-000000000000} -schedule:20:27,21:12,21:38 -include:c:,d:
wbadmin 1.0 - バックアップ コマンド ライン ツール
(C) Copyright 2004 Microsoft Corp.

ボリューム情報を取得しています...

スケジュールされたバックアップの設定:

バックアップのボリューム: ローカル ディスク(C:),ボリューム(D:) 
バックアップを格納する場所: Virtual HD ATA Device 
バックアップを実行する時刻: 20:27, 21:12, 21:38

上記の設定でバックアップを有効にしますか?
[Y] はい [N] いいえ Y

Virtual HD ATA Device (ボリューム E: を含む) をフォーマットして、スケジュールされたバックアップを
格納する場所として使用しますか?
[Y] はい [N] いいえ Y

バックアップ ディスクに WIN-9WU 2008_02_08 23:47 DISK_01 としてラベルを付けてください。
この情報は、回復時にこのバックアップ ディスクを識別するために使用されます。


スケジュールしたバックアップが有効になりました。

3. 以上でスケジュールの設定は終了です。

 バックアップの実行中にWbadmin get status を実行するとバックアップの進行状況が確認できます。

C:\Users\Administrator>wbadmin get status
wbadmin 1.0 - バックアップ コマンド ライン ツール
(C) Copyright 2004 Microsoft Corp.

バックアップを要求されたボリュームのシャドウ コピーを作成しています。
バックアップを要求されたボリュームのシャドウ コピーを作成しています。
バックアップを要求されたボリュームのシャドウ コピーを作成しています。
バックアップを要求されたボリュームのシャドウ コピーを作成しています。
バックアップを要求されたボリュームのシャドウ コピーを作成しています。
バックアップを要求されたボリュームのシャドウ コピーを作成しています。
バックアップを要求されたボリュームのシャドウ コピーを作成しています。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (0%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (1%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (2%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (3%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (5%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (7%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (8%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (9%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (10%) をコピーしました。
・・・・・・・・・・・・・・・(省略)・・・・・・・・・・・・・・・・
ボリューム ローカル ディスク(C:) のバックアップを実行中に (90%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (92%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (93%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (94%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (95%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (96%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (98%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (99%) をコピーしました。
ボリューム ローカル ディスク(C:) のバックアップを実行中に (100%) をコピーしました。
バックアップが完了しました。

バックアップの概要:
------------------

ボリューム ローカル ディスク(C:) のバックアップは正常に完了しました。

4. またGUIではできない(少なくとRC1では)、Wbadminだけの機能として以下のものがあります。


 ・バックアップを実行中に停止する

  Wbadmin stop job を使用します

C:\Users\Administrator>wbadmin stop job
wbadmin 1.0 - バックアップ コマンド ライン ツール
(C) Copyright 2004 Microsoft Corp.

現在のジョブを停止しますか?
[Y] はい [N] いいえ Y

完了する前にバックアップが終了しました。

 ・バックアップスケジュールを削除する

  Wbadmin disable backup を使用します

C:\Users\Administrator>wbadmin disable backup
wbadmin 1.0 - バックアップ コマンドライン ツール
(C) Copyright 2004 Microsoft Corp.

バックアップ スケジュールを無効にしようとしています。
すべての既存のバックアップは保持されます。

ただし、バックアップに使用されていたすべてのディスクは解放されます。
これらのディスクを新しいバックアップの格納用に後で使用する場合、
ディスクはその前に再フォーマットされます。

スケジュールされたバックアップの実行を中止しますか?
[Y] はい [N] いいえ Y

スケジュールしたバックアップが無効になりました。

[関連記事]

[WIN2008RC1]Windows Server バックアップ:2.手動バックアップ

[Win2008RC1]Windows Server バックアップ:3.バックアップの確認

[Win2008RC1]Windows Server バックアップ:4.復元

[Win2008RC1]Windows Server バックアップ:5.システム回復

[Win2008]Windows Server バックアップ:6.システム状態のバックアップ


マイクロソフトのサイトでセキュリティ情報をチェックしていた時に以下のサイトを見つけました。


みんなで情報セキュリティ強化宣言:情報セキュリティ対策推進コミュニティ


マイクロソフト、トレンドマイクロ、マカフィー、シマンテック等のベンダーが運営する

セキュリティ意識向上を目指したコミュニティのようなのですが

イメージキャラクターが30代~40代には懐かしい”なめ猫”になっています。

(20代以下の方はたぶん「なんだこりゃ」って方が多いでしょうが・・・

80年代にはやったんですよ、こんなのが・・・)


基本的には参加対象は企業・団体なのですが、

個人でも”応援メッセージ"という形で参加することが可能で

参加すると”動くなめ猫参加証”がもらえます。

私も早速もらってこのBlogのサイドバーに貼り付けてみました。

みなさんもセキュリティ意識を高める為に参加してみてはいかがでしょう。


ちなみに

2/2が「情報セキュリティの日」(情報セキュリティ政策会議制定)で

2/14がマイクロソフトのMicrosoft IT Security Award 2008 の受賞者発表の日

となっています。


さて前回 からの続きですが、グループポリシーの編集はGUIで行うしかない様に思いますので
今回はリモートのフルインストールのWindows Server 2008からServer Coreに接続して
GUIでグループポリシーを編集する手順を確認します。


1.リモートコンピュータの管理ツールから接続できるようにServer Core側のファイアーウォールで
TCP445(ダイレクトホスティングSMB)、TCP139(NetBIOSセッション・サービス)、
UDP137(NetBIOS名前サービス)を有効にします。


[参考文献]

MSDN TechNet ブログ:フィールドSEあがりの安納です:【Windows Server 2008】Server Core の管理をリモートのMMCから行うための準備


以下のコマンドを実行してポートを有効にします。


C:\Users\Administrator>netsh advfirewall firewall set rule group="リモート管理" new enable=yes

3規則を更新しました。
OK

2.次にActive Directoryの役割を追加したフルインストールのWindows Server 2008のコンピュータを

ドメインに追加します。


3.そのコンピュータ上でServer Managerを起動します。


4.Server Managerの[役割]-[Active Directoryドメイン サービス]-[Active Directory ユーザーとコンピュータ]を

選択し、Server Coreのドメインコントローラーへ接続します。
前回コマンドで実行した設定が反映されていることを確認します。


ServerCoreAD1


5.グループポリシーの管理ツールは[機能]の方にあります。
[機能]-[グループポリシーの管理]を選択します。
今回はグループポリシーを作成してSales OUにリンクすることにします。


ServerCoreAD2


こうして見るとグループポリシーを使用する場合はServer Coreにすると管理コストがかなり増えるので
フルインストールにした方が良さそうです。


[関連記事]

[Win2008RC1]Server Core:Active Directoryのインストール1


今回はServer CoreにActive Directoryをインストールしてみます。


[参考文献]

文中に随時記載


■Active Directoryの役割のインストール/ドメインコントローラーへの昇格

Active Directoryの役割のインストールにはocsetupではなくdcpromoを使用します
またServer CoreではdcpromoのGUIは使用できないので無人セットアップでインストールを行います。


1.まずメモ帳を開いて無人セットアップ用の応答ファイルを作成します。

 応答ファイルの書き方については以下を参照。


 Microsoft TechNet:Installing a New Windows Server 2008 Forest


 [DCINSTALL]
 InstallDNS=yes
 NewDomain=Forest
 NewDomainDNSName=win2k8.com
 DomainNetBiosName=win2k8
 ReplicaOrNewDomain=domain
 ForestLevel=3
 DomainLevel=3
 DatabasePath=%systemroot%\ntds
 LogPath=%systemroot%\ntds
 SYSVOLPath=%systemroot%\SYSVOL
 SafeModeAdminPassword=P@ssw0rd
 RebootOnCompletion=yes

 このファイルをC:\unattend.txtという名称で保存します。


2.dcpromoを実行します

 なお、Windows Server 2003の時は応答ファイルを指定するオプションは/answerでしたが

 Windows Server 2008では/unattendになっています。


C:\Users\Administrator>dcpromo /unattend:c:\unattend.txt

Active Directory ドメイン サービス バイナリがインストールされているかどうかを確認しています...
Active Directory ドメイン サービス バイナリをインストールしています。おまちください...
Active Directory ドメイン サービスのセットアップ

環境およびパラメータを検証しています...

権限のある親ゾーンが見つからないか、あっても Windows DNS サーバーが実行されていないため、この DNS サーバーの委任を作成できません。既存の DNS インフラストラクチャと統合する場合は、ドメイン win2k8.com 外からの名前解決が確実に行われるように、親ゾーンでこの DNS サーバーへの委任を手動で作成する必要があります。それ以外の場合は、何もする必要はありません。

----------------------------------------
次のアクションが実行されます:
新しいフォレストの最初の Active Directory ドメイン コントローラとしてこのサーバーを構成します。


新しいドメイン名は win2k8.com です。これは新しいフォレスト名にもなります。


ドメインの NetBIOS 名は win2k8 です。


フォレストの機能レベル: Windows Server 2008


ドメインの機能レベル: Windows Server 2008


サイト: Default-First-Site-Name


追加オプション:

読み取り専用ドメイン コントローラ: いいえ

グローバル カタログ: はい

DNS サーバー: はい


DNS 委任の作成: いいえ


データベースの場所: C:\Windows\ntds

ログ ファイルの場所: C:\Windows\ntds

SYSVOL フォルダの場所: C:\Windows\SYSVOL


DNS サーバー サービスはこのコンピュータにインストールされます。

DNS サーバー サービスはこのコンピュータに構成されます。

このコンピュータは、この DNS サーバーを優先 DNS サーバーとして使用するように構成されます。


新しいドメイン Administrator アカウントのパスワードはこのコンピュータのローカル Administrator アカウントのパスワードと同じものに設定されます。
----------------------------------------

開始しています...

DNS インストールの実行中...

次の操作を行うには Ctrl+C キーを押してください: キャンセル

DNS のインストール終了を待っています

DNS サーバー サービスが認識されるのを待っています... 0

DNS サーバー サービスの開始を待っています... 0

グループ ポリシー管理コンソールのインストールが必要かどうか確認しています...

ディレクトリ サービスをインストールしています


既存のフォレストを検査しています...

Active Directory ドメイン サービスをホストするためにローカル コンピュータを構成しています

ディレクトリ パーティションを作成しています: CN=Schema,CN=Configuration,DC=win2k8,DC=com; 1585 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 1419 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 1384 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 1324 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 1244 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 1187 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 1135 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 1065 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 1011 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 886 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 830 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 738 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 697 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 560 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 528 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 450 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 377 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 348 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 243 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 186 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 118 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 63 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: CN=Configuration,DC=win2k8,DC=com; 0 個のオブジェクトが残っています

ディレクトリ パーティションを作成しています: DC=win2k8,DC=com; 0 個のオブジェクトが残っています

ローカル Active Directory ドメイン コントローラで Active Directory ドメイン サービス オブジェクトを作成しています

新しいドメイン ユーザー、グループ、およびコンピュータ オブジェクトを作成しています

サービス kdc を構成しています


LSA ポリシー情報を設定しています


コンピュータの DNS コンピュータ名のルートを win2k8.com に設定しています


ドメイン コントローラ、ディレクトリ サービス ファイルおよびレジストリ キーにセキュリティを設定しています


S-1-5-32-554 を保護しています

machine\software\microsoft\windows を保護しています

machine\system\currentcontrolset\control を保護しています

machine\system\currentcontrolset\services を保護しています

machine\system\currentcontrolset\services\wintrust を保護しています

c:\windows\system32\logfiles を保護しています

SamSs を保護しています

dmserver を保護しています

Kerberos Policy を保護しています

ドメイン コントローラの操作が完了しました


このコンピュータに DNS サーバー サービスを構成しています...

ドメイン win2k8.com のこのコンピュータに Active Directory ドメイン サービスがインストールされました。


この Active Directory ドメイン コントローラは、サイト "Default-First-Site-Name" に割り当てられています。サイトは Active Directory サイトとサービス管理ツールで管理できます。


Windows Server 2008 domain controllers have a new more secure default for the security setting named "Allow cryptography algorithms compatible with Windows NT 4.0." This setting prevents Microsoft Windows and non-Microsoft SMB "clients" from using weaker NT 4.0 style cryptography algorithms when establishing security channel sessions against Windows Server 2008 domain controllers. As a result of this new default, operations or applications that require a security channel serviced by Windows Server 2008 domain controllers might fail.


Platforms impacted by this change include Windows NT 4.0, as well as non-Microsoft SMB "clients" and network-attached storage (NAS) devices that do not support stronger cryptography algorithms. Some operations on clients running versions of Windows earlier than Vista with Service Pack 1 are also impacted, including domain join operations performed by the Active Directory Migration Tool or Windows Deployment Services.


For more information about this setting, see Knowledge Base article 942564 (http://go.microsoft.com/fwlink/?LinkId=104751 ).


これでActive Directoryのインストールと最初のドメインコントローラーのセットアップは完了です。


■Active Directoryの操作

 Server Coreの場合はActive Directoryの操作もコマンドで行います。

 Active Directoryを操作するコマンドについては以下が詳しいです。


 Microsoft TechNet:コマンドラインからActive Directoryを管理する


 いくつか試してみます。


・コンピュータの追加

 ドメインにコンピュータを追加するにはdsadd computer を使用します。
 まずドメインコントローラー側でdsadd computerを実行してコンピュータを登録します。


C:\Users\Administrator>dsadd computer cn=WIN-9WU1AFGCAID,cn=Computers,dc=Win2k8,dc=com dsadd 成功:cn=WIN-9WU1AFGCAID,cn=Computers,dc=Win2k8,dc=com

 また追加されるコンピュータの側ではnetdomを使用してActive Directoryに参加します。


C:\Users\Administrator>netdom join WIN-9WU1AFGCAID /domain:Win2k8.com /userd:Administrator /passwordd:P@ssw0rd

操作を完了するには、コンピュータを再起動する必要があります。

コマンドは正しく完了しました。

・グループの追加

 グループの追加はdsadd group で行います。

C:\Users\Administrator>dsadd group "cn=IT Manager,cn=Users,dc=Win2k8,dc=com" -secgrp yes -scope l
dsadd 成功:cn=IT Manager,cn=Users,dc=Win2k8,dc=com

 この例ではセキュリティグループを追加しているのでsecgrpオプションはYesにしています。

 Noにすると配布グループになります。


 またscopeオプションは1なのでローカルグループです。

gだとグローバルグループ、uだとユニバーサルグループになります。


・ユーザーの追加

 ユーザーの追加はdsadd user で行います。

 先ほど追加したIT Managerグループにユーザーを追加します。


C:\Users\Administrator>dsadd user "cn=Taro Yamada,cn=Users,dc=Win2k8,dc=com" -samid 
taroyamada -upn taroyamada@win2k8.com -fn Taro -ln Yamada -display "Taro Yamada" -pwd * 
-memberof "cn=IT Manager,cn=Users,dc=Win2k8,dc=com" -office Tokyo 
-email taroyamada@Win2k8.com -mustchpwd yes -canchpwd yes -reversiblepwd no 
-pwdneverexpires no -acctexpires 90 -disabled no

ユーザーパスワードの入力:

ユーザーパスワードの確認:

dsadd 成功:cn=Taro Yamada,cn=Users,dc=Win2k8,dc=com

・OUの作成
 OUはdsadd ou で作成します。

 営業部という設定でSalesというOUを作成します。


C:\Users\Administrator>dsadd ou ou=Sales,dc=Win2k8,dc=com -desc 営業部
dsadd 成功:ou=Sales,dc=Win2k8,dc=com

また先ほど追加したコンピュータ、セキュリティグループ、ユーザーをSales OUへ移動します。

オブジェクトの移動はdsmove で行います。


C:\Users\Administrator>dsmove cn=WIN-9WU1AFGCAID,cn=Computers,dc=Win2k8,dc=com -newparent ou=Sales,dc=Win2k8,dc=com
dsmove 成功:cn=WIN-9WU1AFGCAID,cn=Computers,dc=Win2k8,dc=com

C:\Users\Administrator>dsmove "cn=IT Manager,cn=users,dc=Win2k8,dc=com" -newparent ou=Sales,dc=Win2k8,dc=com
dsmove 成功:cn=IT Manager,cn=Users,dc=Win2k8,dc=com

C:\Users\Administrator>dsmove "cn=Taro Yamada,cn=users,dc=Win2k8,dc=com" -newparent ou=Sales,dc=Win2k8,dc=com
dsmove 成功:cn=Taro Yamada,cn=Users,dc=Win2k8,dc=com

オブジェクトの追加・変更・削除ぐらいであれば比較的簡単にできそうですね。
なお、操作マスタの役割を移動したり、アプリケーションディレクトリパーティションを作成する場合には

ntdsutil を使います。

しかしグループポリシーを編集してセキュリティやアプリケーションの配布の設定を行う段階になると
コマンドで実施するのはかなり難しい(というよりできるのか?)気がしますが・・・・


[関連記事]

[Win2008RC1]Server Core:Active Directoryのインストール2



さて今回はServer CoreのIIS7の設定変更を行ってみたいと思います。
リモートから管理する方法も含めると方法はいろいろとあるようですが、
今回はローカルからAppCmd.exeを使用して行ってみます。


[参考文献]
IIS.net:Getting Started with AppCmd.exe


AppCmd.exeは%windir%\System32\inetsrvにあるのですがこのディレクトリは通常パスが通っていないので
AppCmdを使用する時はフルパスで使用するか、%windir%\System32\inetsrvに移動してから使用します。
(あるいは%windir%\System32\inetsrvにパスを通します)


まず現在のサイトの状況を見てみます。


C:\Windows\System32\inetsrv>appcmd list site
SITE "Default Web Site" (id:1,bindings:http/*:80:,state:Started)

当然、Default Web Siteしかありません。

ここに以下の要領でサイトを追加してみます。


ID:2
Webサイト名:Web Site2
コンテンツディレクトリ:%SystemDrive%\inetpub\wwwroot2
ポート:8080


AppCmdではコンテンツディレクトリC:\inetpub\wwwroot2は自動的に作成されるわけではないようなので
あらかじめ自分で作っておいてからAppCmdでWebサイトを追加します。


C:\Windows\System32\inetsrv>appcmd add site /name:"Web Site2" /id:2 
/bindings:"http/*:8080:" /physicalPath:"%SystemDrive%\inetpub\wwwroot2"
SITEオブジェクト "Web Site2"を追加しました
APPオブジェクト "Web Site2/"を追加しました
VDIRオブジェクト "Web Site2/"を追加しました

C:\Windows\System32\inetsrv>appcmd list site
SITE "Default Web Site" (id:1,bindings:http/*:80:,state:Started)
SITE "Web Site2" (id:2,bindings:http/*:8080:,state:Started)

Webサイトの追加はうまくいったようです。
また今回Web Site2のポートにしたTCP 8080にリモートから接続できるように

ファイアーウォールの設定を行います。


C:\>netsh advfirewall firewall add rule name="Connect to Web Site2"
dir=in action=allow protocol=tcp localport=8080
OK

ここで前回 も使用したTest.aspとTest.incをC:\inetpub\wwwroot2にコピーして

"Web Site2"が正しく機能していることを確認します。


ConnectToWebSite2

次はアプリケーション/仮想ディレクトリを追加してみます。

C:\inetpub\wwwroot2下にappディレクトリを作成し以下のコマンドを実行します。


C:\Windows\System32\inetsrv>appcmd add app /site.name:"Web Site2" 
/path:/app /physicalPath:"%SystemDrive%\inetpub\wwwroot2\app"
APPオブジェクト "Web Site2/app"を追加しました
VDIRオブジェクト "Web Site2/app"を追加しました

Test.aspとTest.incをC:\inetpub\wwwroot2\appにコピーして動作確認をします。


ConnectToWebSite2app

今回参考にしたIIS.netのサイトの情報は例文が多く非常にわかりやすかったのですが、

その他にマイクロソフトのサイトでAppCmdの情報を探したところ以下がありました。


Microsoft Knowledge Base:930909:How to use the Appcmd.exe command-line tool to enable and configure HTTP logging and other features in Internet Information Services 7.0


[関連記事]

[Win2008RC1]Server CoreにIIS7をインストール



今回はServer CoreにIIS7.0をインストールしてみたいと思います。


[参考文献]

マイクロソフト:ステップ バイ ステップ ガイド - Windows Server 2008のServer Coreインストールオプション
その他は文中に随時記載。


完全インストールの場合はコンポーネントの追加はServer Mangerで行いましたが
Server Coreの場合はpkgmgrコマンドか、ocsetupコマンドで行います。


・PkgMgrオプション(クリックで拡大します)
pkgmgr

・Ocsetupオプション(クリックで拡大します)
ocssetup


ただしマイクロソフトのサイトの例文を見るとpkgmgr、ocsetupを直接実行するのではなく
"start /w pkgmgr <コンポーネント名>"、"start /w ocsetup <コンポーネント名>"という形で
startコマンドを使用して別のコマンドプロンプトで実行させるのが作法のようです。
※startの/wは終了まで待機するオプション、/WAITでもいいです。

でこの<コンポーネント名>ですが、Server Coreで使用できるコンポーネントの一覧は
oclistコマンドで確認できます。


C:\Users\Administrator>oclist
サーバーの役割またはオプションの機能をインストールまたはアンインストールするには、一覧に表示された更新名を指定して ocsetup.exe を実行してください。
ocsetup.exe を使用した Active Directory の役割の追加または削除はサポートされていません。この操作を実行した場合、サーバーが不安定な状態になる可能性があります。
Active Directory をインストールまたはアンインストールするには、必ず Dcpromo を使用してください。
===========================================================================
Microsoft-Windows-ServerCore-Package
未インストール:BitLocker
未インストール:BitLocker-RemoteAdminTool
未インストール:ClientForNFS-Base
未インストール:DFSN-Server
未インストール:DFSR-Infrastructure-ServerEdition
未インストール:DHCPServerCore
未インストール:DirectoryServices-ADAM-ServerCore
未インストール:DirectoryServices-DomainController-ServerFoundation
未インストール:DNS-Server-Core-Role
未インストール:FailoverCluster-Core
未インストール:FRS-Infrastructure
未インストール:IIS-WebServerRole
・・・・・・・・・・・・・・(以下略)・・・・・・・・・・・・・・・・・・


これを見ると.NET Framework3.5やASP.NETは無いみたいです。
以下の記事にあるようにServer Coreに.NET Frameworkを搭載する方向で検討されているようなのですが


TechTarget Japan:Server Core特集 Part1 Windows Serverプロダクトマネージャーに聞くServer Coreのメリット


RC1の時点で入ってないところをみると、Windows Server 2008リリース時点では見送り、

後程Service Packで提供ということになるのでしょうか。
とりあえず現時点ではServer Coreでの動的なWEBページのサポートはCGIかASP(Active Server Page)か
ということになります。
で今回はASPのコンポーネントをインストールしてみたいと思います。


■PkgMgrを使用する場合
コマンドプロンプトで以下のコマンドを実行します。
 (スペースの都合で折り曲げていますが実際は1行です。
 必要なIISのコンポーネントをすべて指定しないといけないので長いです!!!
 事前にバッチファイルにしておいて実行した方がいいですね。)


Start /WAIT pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;
IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;
IIS-ApplicationDevelopment;IIS-ASP;IIS-ISAPIExtensions;IIS-HealthAndDiagnostics;
IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;
IIS-HttpCompressionStatic;IIS-WebServerManagementTools;WAS-WindowsActivationService;
WAS-ProcessModel;IIS-ServerSideIncludes;

なお、PkgMgrでServer CoreにIISとそのコンポーネントをインストールするコマンドについては
以下のサイトに詳しい例があります。


IIS.net:Administering IIS7 on Server Core Installations of Windows Server 2008

Microsoft TechNet:[How TO]IIS7.0のインストール方法


・IISのすべてのコンポーネントをインストールするコマンドの例
・ASPをインストールするコマンドの例
・PHPをインストールする手順
・Fast-CGIをインストールするコマンドの例
が載っています。


ちなみに上記のサイトの例だとASPインストール時に指定するコンポーネントにIIS-ServerSideIncludesは
含まれていませんが、私は定数の定義等でよく使っているので含めています。


pkgmgrコマンド実行後CドライブをチェックするとInetpubが作成されていることが確認できます。
またoclistコマンドを実行すると指定したコンポーネントがインストールされているのが確認できます。


C:\>oclist
・・・・・・・・省略・・・・・・・・・
===========================================================================
Microsoft-Windows-ServerCore-Package
未インストール:BitLocker
未インストール:BitLocker-RemoteAdminTool
未インストール:ClientForNFS-Base
未インストール:DFSN-Server
未インストール:DFSR-Infrastructure-ServerEdition
未インストール:DHCPServerCore
未インストール:DirectoryServices-ADAM-ServerCore
未インストール:DirectoryServices-DomainController-ServerFoundation
未インストール:DNS-Server-Core-Role
未インストール:FailoverCluster-Core
未インストール:FRS-Infrastructure
  インストール済み:IIS-WebServerRole
  |  
  |--- 未インストール:IIS-FTPPublishingService
  |    |  
  |    |--- 未インストール:IIS-FTPServer
  |    |  
  |  
  |  
  |---   インストール済み:IIS-WebServer
  |    |  
  |    |---   インストール済み:IIS-ApplicationDevelopment
  |    |    |  
  |    |    |---   インストール済み:IIS-ASP
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-CGI
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-ISAPIExtensions
  |    |    |    |  
  |    |    |    |---   インストール済み:IIS-ASP
  |    |    |    |  
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-ISAPIFilter
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-ServerSideIncludes
  |    |    |  
  |    |  
  |    |  
  |    |---   インストール済み:IIS-CommonHttpFeatures
  |    |    |  
  |    |    |---   インストール済み:IIS-DefaultDocument
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-DirectoryBrowsing
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-HttpErrors
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-HttpRedirect
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-StaticContent
  |    |    |  
  |    |  
  |    |  
  |    |---   インストール済み:IIS-HealthAndDiagnostics
  |    |    |  
  |    |    |--- 未インストール:IIS-CustomLogging
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-HttpLogging
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-HttpTracing
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-LoggingLibraries
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-ODBCLogging
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-RequestMonitor
  |    |    |  
  |    |  
  |    |  
  |    |---   インストール済み:IIS-Performance
  |    |    |  
  |    |    |--- 未インストール:IIS-HttpCompressionDynamic
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-HttpCompressionStatic
  |    |    |  
  |    |  
  |    |  
  |    |---   インストール済み:IIS-Security
  |    |    |  
  |    |    |--- 未インストール:IIS-BasicAuthentication
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-ClientCertificateMappingAuthentication
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-DigestAuthentication
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-IISCertificateMappingAuthentication
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-IPSecurity
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-RequestFiltering
  |    |    |    |  
  |    |    |    |---   インストール済み:IIS-ASP
  |    |    |    |  
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-URLAuthorization
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-WindowsAuthentication
  |    |    |  
  |    |  
  |  
  |  
  |---   インストール済み:IIS-WebServerManagementTools
  |    |  
  |    |--- 未インストール:IIS-IIS6ManagementCompatibility
  |    |    |  
  |    |    |--- 未インストール:IIS-LegacyScripts
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-Metabase
  |    |    |    |  
  |    |    |    |--- 未インストール:IIS-FTPServer
  |    |    |    |  
  |    |    |    |  
  |    |    |    |--- 未インストール:IIS-LegacyScripts
  |    |    |    |  
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-WMICompatibility
  |    |    |    |  
  |    |    |    |--- 未インストール:IIS-LegacyScripts
  |    |    |    |  
  |    |    |  
  |    |  
  |    |  
  |    |--- 未インストール:IIS-ManagementScriptingTools
  |    |  
  |  
未インストール:Microsoft-Windows-RemovableStorageManagementCore
未インストール:MultipathIo
未インストール:NetworkLoadBalancingHeadlessServer
未インストール:Printing-ServerCore-Role
  |  
  |--- 未インストール:Printing-LPDPrintService
  |  
未インストール:QWAVE
未インストール:ServerForNFS-Base
未インストール:SNMP-SC
未インストール:SUACore
未インストール:TelnetClient
  インストール済み:WAS-WindowsActivationService
  |  
  |---   インストール済み:WAS-ProcessModel
  |    |  
  |    |---   インストール済み:IIS-ASP
  |    |  
  |    |  
  |    |--- 未インストール:IIS-BasicAuthentication
  |    |  
  |    |  
  |    |--- 未インストール:IIS-CGI
  |    |  
  |    |  
  |    |--- 未インストール:IIS-ClientCertificateMappingAuthentication
  |    |  
  |    |  
  |    |--- 未インストール:IIS-CustomLogging
  |    |  
  |    |  
  |    |---   インストール済み:IIS-DefaultDocument
  |    |  
  |    |  
  |    |--- 未インストール:IIS-DigestAuthentication
  |    |  
  |    |  
  |    |---   インストール済み:IIS-DirectoryBrowsing
  |    |  
  |    |  
  |    |--- 未インストール:IIS-HttpCompressionDynamic
  |    |  
  |    |  
  |    |---   インストール済み:IIS-HttpCompressionStatic
  |    |  
  |    |  
  |    |---   インストール済み:IIS-HttpErrors
  |    |  
  |    |  
  |    |---   インストール済み:IIS-HttpLogging
  |    |  
  |    |  
  |    |--- 未インストール:IIS-HttpRedirect
  |    |  
  |    |  
  |    |--- 未インストール:IIS-HttpTracing
  |    |  
  |    |  
  |    |--- 未インストール:IIS-IISCertificateMappingAuthentication
  |    |  
  |    |  
  |    |--- 未インストール:IIS-IPSecurity
  |    |  
  |    |  
  |    |---   インストール済み:IIS-ISAPIExtensions
  |    |    |  
  |    |    |---   インストール済み:IIS-ASP
  |    |    |  
  |    |  
  |    |  
  |    |--- 未インストール:IIS-ISAPIFilter
  |    |  
  |    |  
  |    |---   インストール済み:IIS-LoggingLibraries
  |    |  
  |    |  
  |    |--- 未インストール:IIS-ODBCLogging
  |    |  
  |    |  
  |    |---   インストール済み:IIS-RequestFiltering
  |    |    |  
  |    |    |---   インストール済み:IIS-ASP
  |    |    |  
  |    |  
  |    |  
  |    |---   インストール済み:IIS-RequestMonitor
  |    |  
  |    |  
  |    |---   インストール済み:IIS-ServerSideIncludes
  |    |  
  |    |  
  |    |---   インストール済み:IIS-StaticContent
  |    |  
  |    |  
  |    |--- 未インストール:IIS-URLAuthorization
  |    |  
  |    |  
  |    |--- 未インストール:IIS-WindowsAuthentication
  |    |  
  |  
未インストール:WindowsServerBackup
未インストール:WINS-SC

とりあえず以下の2つのファイルをC:\Inetpub\wwwroot下にコピーして動作確認をしてみます。


・Test.asp

<%@ LANGUAGE = VBScript %>
<!--#include file="Test.inc"-->
<HTML>
<BODY>
<P><% Response.Write CONST_MESSAGE %></P>
</BODY>
</HTML>

・Test.inc

<%
Const CONST_MESSAGE = "Hello World"
%>

クライアントのWindows XP、IE7からServer CoreのTest.aspを呼び出すと正しく動作していることが

確認できました。

servercoreiistest1



■Ocsetupを使用する場合
ここでは以下のサイトを参考にしました。


Microsoft TechNet:How to install IIS on Server Core?


実は一度失敗して二度目で成功したのですが、まず失敗した方からいきます。
コマンドプロンプトで以下のコマンドを実行しました。


Start /WAIT ocsetup IIS-WebServerRole
Start /WAIT ocsetup IIS-WebServer
Start /WAIT ocsetup IIS-CommonHttpFeatures
Start /WAIT ocsetup IIS-StaticContent
Start /WAIT ocsetup IIS-DefaultDocument
Start /WAIT ocsetup IIS-DirectoryBrowsing
Start /WAIT ocsetup IIS-HttpErrors
Start /WAIT ocsetup IIS-ApplicationDevelopment
Start /WAIT ocsetup IIS-ASP
Start /WAIT ocsetup IIS-ISAPIExtensions
Start /WAIT ocsetup IIS-HealthAndDiagnostics
Start /WAIT ocsetup IIS-HttpLogging
Start /WAIT ocsetup IIS-LoggingLibraries
Start /WAIT ocsetup IIS-RequestMonitor
Start /WAIT ocsetup IIS-Security
Start /WAIT ocsetup IIS-RequestFiltering
Start /WAIT ocsetup IIS-HttpCompressionStatic
Start /WAIT ocsetup IIS-WebServerManagementTools
Start /WAIT ocsetup WAS-WindowsActivationService
Start /WAIT ocsetup WAS-ProcessModel
Start /WAIT ocsetup IIS-ServerSideIncludes


ocsetupではpkgmgrと違ってインストール対象の機能を";"で複数指定することが
できないのでコンポーネントを一つ一つインストールするようにしています。
コマンド実行後、C:\inetpub\wwwrootは作成されていたのですが
oclistで確認したところIIS-ASPがインストールされていないことが分かりました。


C:\>oclist
・・・・・・・・・・・省略 ・・・・・・・・・・・・・・
===========================================================================
Microsoft-Windows-ServerCore-Package
未インストール:BitLocker
未インストール:BitLocker-RemoteAdminTool
未インストール:ClientForNFS-Base
未インストール:DFSN-Server
未インストール:DFSR-Infrastructure-ServerEdition
未インストール:DHCPServerCore
未インストール:DirectoryServices-ADAM-ServerCore
未インストール:DirectoryServices-DomainController-ServerFoundation
未インストール:DNS-Server-Core-Role
未インストール:FailoverCluster-Core
未インストール:FRS-Infrastructure
  インストール済み:IIS-WebServerRole
  |  
  |--- 未インストール:IIS-FTPPublishingService
  |    |  
  |    |--- 未インストール:IIS-FTPServer
  |    |  
  |  
  |  
  |---   インストール済み:IIS-WebServer
  |    |  
  |    |---   インストール済み:IIS-ApplicationDevelopment
  |    |    |  
  |    |    |--- 未インストール:IIS-ASP
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-CGI
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-ISAPIExtensions
  |    |    |    |  
  |    |    |    |--- 未インストール:IIS-ASP
  |    |    |    |  
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-ISAPIFilter
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-ServerSideIncludes
  |    |    |  
  |    |  
  |    |  
  |    |---   インストール済み:IIS-CommonHttpFeatures
  |    |    |  
  |    |    |---   インストール済み:IIS-DefaultDocument
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-DirectoryBrowsing
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-HttpErrors
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-HttpRedirect
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-StaticContent
  |    |    |  
  |    |  
  |    |  
  |    |---   インストール済み:IIS-HealthAndDiagnostics
  |    |    |  
  |    |    |--- 未インストール:IIS-CustomLogging
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-HttpLogging
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-HttpTracing
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-LoggingLibraries
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-ODBCLogging
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-RequestMonitor
  |    |    |  
  |    |  
  |    |  
  |    |---   インストール済み:IIS-Performance
  |    |    |  
  |    |    |--- 未インストール:IIS-HttpCompressionDynamic
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-HttpCompressionStatic
  |    |    |  
  |    |  
  |    |  
  |    |---   インストール済み:IIS-Security
  |    |    |  
  |    |    |--- 未インストール:IIS-BasicAuthentication
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-ClientCertificateMappingAuthentication
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-DigestAuthentication
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-IISCertificateMappingAuthentication
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-IPSecurity
  |    |    |  
  |    |    |  
  |    |    |---   インストール済み:IIS-RequestFiltering
  |    |    |    |  
  |    |    |    |--- 未インストール:IIS-ASP
  |    |    |    |  
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-URLAuthorization
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-WindowsAuthentication
  |    |    |  
  |    |  
  |  
  |  
  |---   インストール済み:IIS-WebServerManagementTools
  |    |  
  |    |--- 未インストール:IIS-IIS6ManagementCompatibility
  |    |    |  
  |    |    |--- 未インストール:IIS-LegacyScripts
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-Metabase
  |    |    |    |  
  |    |    |    |--- 未インストール:IIS-FTPServer
  |    |    |    |  
  |    |    |    |  
  |    |    |    |--- 未インストール:IIS-LegacyScripts
  |    |    |    |  
  |    |    |  
  |    |    |  
  |    |    |--- 未インストール:IIS-WMICompatibility
  |    |    |    |  
  |    |    |    |--- 未インストール:IIS-LegacyScripts
  |    |    |    |  
  |    |    |  
  |    |  
  |    |  
  |    |--- 未インストール:IIS-ManagementScriptingTools
  |    |  
  |  
未インストール:Microsoft-Windows-RemovableStorageManagementCore
未インストール:MultipathIo
未インストール:NetworkLoadBalancingHeadlessServer
未インストール:Printing-ServerCore-Role
  |  
  |--- 未インストール:Printing-LPDPrintService
  |  
未インストール:QWAVE
未インストール:ServerForNFS-Base
未インストール:SNMP-SC
未インストール:SUACore
未インストール:TelnetClient
  インストール済み:WAS-WindowsActivationService
  |  
  |---   インストール済み:WAS-ProcessModel
  |    |  
  |    |--- 未インストール:IIS-ASP
  |    |  
  |    |  
  |    |--- 未インストール:IIS-BasicAuthentication
  |    |  
  |    |  
  |    |--- 未インストール:IIS-CGI
  |    |  
  |    |  
  |    |--- 未インストール:IIS-ClientCertificateMappingAuthentication
  |    |  
  |    |  
  |    |--- 未インストール:IIS-CustomLogging
  |    |  
  |    |  
  |    |---   インストール済み:IIS-DefaultDocument
  |    |  
  |    |  
  |    |--- 未インストール:IIS-DigestAuthentication
  |    |  
  |    |  
  |    |---   インストール済み:IIS-DirectoryBrowsing
  |    |  
  |    |  
  |    |--- 未インストール:IIS-HttpCompressionDynamic
  |    |  
  |    |  
  |    |---   インストール済み:IIS-HttpCompressionStatic
  |    |  
  |    |  
  |    |---   インストール済み:IIS-HttpErrors
  |    |  
  |    |  
  |    |---   インストール済み:IIS-HttpLogging
  |    |  
  |    |  
  |    |--- 未インストール:IIS-HttpRedirect
  |    |  
  |    |  
  |    |--- 未インストール:IIS-HttpTracing
  |    |  
  |    |  
  |    |--- 未インストール:IIS-IISCertificateMappingAuthentication
  |    |  
  |    |  
  |    |--- 未インストール:IIS-IPSecurity
  |    |  
  |    |  
  |    |--- 未インストール:IIS-ISAPIExtensions
  |    |    |  
  |    |    |--- 未インストール:IIS-ASP
  |    |    |  
  |    |  
  |    |  
  |    |--- 未インストール:IIS-ISAPIFilter
  |    |  
  |    |  
  |    |--- 未インストール:IIS-LoggingLibraries
  |    |  
  |    |  
  |    |--- 未インストール:IIS-ODBCLogging
  |    |  
  |    |  
  |    |---   インストール済み:IIS-RequestFiltering
  |    |    |  
  |    |    |--- 未インストール:IIS-ASP
  |    |    |  
  |    |  
  |    |  
  |    |---   インストール済み:IIS-RequestMonitor
  |    |  
  |    |  
  |    |---   インストール済み:IIS-ServerSideIncludes
  |    |  
  |    |  
  |    |---   インストール済み:IIS-StaticContent
  |    |  
  |    |  
  |    |--- 未インストール:IIS-URLAuthorization
  |    |  
  |    |  
  |    |--- 未インストール:IIS-WindowsAuthentication
  |    |  
  |  
未インストール:WindowsServerBackup
未インストール:WINS-SC


実際、PkgMgrの時と同じTest.aspとTest.incをC:\inetpub\wwwrootにコピーして
クライアントのWindows XP、IE7.0でTest.aspを呼び出すとエラーになります。


servercoreiis2


理由ですがoclistの結果を見ると分かるのですがIIS-ASPはIIS-ApplicationDevelopment、

IIS-ISAPIExtensions、IIS-RequestFiltering、WAS-ProcessModel、IIS-ISAPIExtensions、

に依存しているのでこれらのコンポーネントより先にIIS-ASPのインストールを実行してしまうと

依存コンポーネントが無いのでインストールに失敗してしまうということのようです。

oclistの結果を見ながら依存関係を整理し直したコマンドが以下になります。


Start /WAIT ocsetup IIS-WebServerRole
Start /WAIT ocsetup WAS-WindowsActivationService
Start /WAIT ocsetup IIS-WebServer
Start /WAIT ocsetup IIS-WebServerManagementTools
Start /WAIT ocsetup WAS-ProcessModel
Start /WAIT ocsetup IIS-ApplicationDevelopment
Start /WAIT ocsetup IIS-CommonHttpFeatures
Start /WAIT ocsetup IIS-HealthAndDiagnostics
Start /WAIT ocsetup IIS-Performance
Start /WAIT ocsetup IIS-Security
Start /WAIT ocsetup IIS-ServerSideIncludes
Start /WAIT ocsetup IIS-DefaultDocument
Start /WAIT ocsetup IIS-DirectoryBrowsing
Start /WAIT ocsetup IIS-HttpErrors
Start /WAIT ocsetup IIS-StaticContent
Start /WAIT ocsetup IIS-HttpLogging
Start /WAIT ocsetup IIS-RequestMonitor
Start /WAIT ocsetup IIS-HttpCompressionStatic
Start /WAIT ocsetup IIS-RequestFiltering
Start /WAIT ocsetup IIS-ISAPIExtensions
Start /WAIT ocsetup IIS-LoggingLibraries
Start /WAIT ocsetup IIS-ASP


今度はうまくいきました。

servercoreiistest2


PkgMgrで";"で複数のコンポーネントを同時に指定した場合はPkgMgrの内部で依存関係が整理されるので
コマンドでコンポーネントの順番を意識しなくても正しくインストールがされています。
(実際「■PkgMgrを使用する場合」のコマンドでは依存関係を考慮していません。)
つまりIISをインストールするならPkgMgrの方が楽だってことですね。


[関連記事]

[Win2008RC1]Server Core:IIS7:AppCmdで設定変更

しばらくBlogの更新をサボっている間にWindows Server 2008がRC0からRC1にUPしちゃってました。

マイクロソフト:Windows Server 2008製品情報サイト


今回はWindows Server 2008 RC1でServer Coreインストールを行ってみたいと思います。


[参考文献]
マイクロソフト:ステップ バイ ステップ ガイド - Windows Server 2008のServer Coreインストールオプション


【インストール手順】
1. 以下を選択。
インストールする言語:日本語
時刻と通貨の形式:日本語(日本)
キーボードまたは入力形式:Microsoft IME
キーボードの種類の選択:日本語キーボード(106/109キー)


2.「今すぐインストール」を選択


3. ライセンス認証のためのプロダクトキーの入力


4.「インストールするオペレーティングシステムを選択してください」で
「Server Core インストール」を選択


ServerCoreInstall

5. ライセンス条項に同意。


6. インストールの種類で「カスタム(詳細)」を選択。


7. インストール場所の選択。
パーティションの作成、フォーマットを実施。


8. インストール開始


9. インストール終了後、再起動。


10. Administratorのパスワード設定


ServerCoreAdminPassword

11. ログイン


ログインするとコマンドプロンプトとIMEだけが表示されている画面が出てきます。


ServerCore1

UnixのCUI画面みたいのを想像していましたが少し違うようですね。
また使用できるGUIはコマンドプロンプトとIMEだけではないようで、
コマンドプロンプトで以下のコマンドを入力することで
それぞれ以下のGUIツールが起動します。


taskmgr:タスクマネージャーが起動
notepad:メモ帳が起動
regedit:レジストリエディタが起動
control timedate.cpl:[タイムゾーンまたは日時の構成]画面が起動
control intl.cpl:[地域と言語のオプションの構成]画面の起動


ServerCore2

(以下のIT Proの記事によるとメモ帳が入っているのは顧客の強い要望に応えた結果とのことです。
確かにUnixでもviがないと困りますからね・・・)


IT Pro:これだけは知っておきたい、Windows Server 2008:第2回 Windows Server Core


ちなみにコマンドプロンプトは終了させてしまうことも可能みたいです。
(できなくていいような気もするのですが・・・)


ServerCore3

もちろんコマンドプロンプトを落とすと何もできなくなっていまうので(笑)
タスクマネージャーから再度起動します。


ServerCore4

この場合、タスクマネージャーはCtrl + Shift + Escで起動するか
Ctrl + Alt + Deleteで表示される以下の画面から起動します。


ServerCore5

ちなみにこの画面の項目は完全インストール時と同じなのですが
Server Coreの場合はここに「コマンドプロンプトを起動する」が
あってもいいような気がしますね。


なお、タスクマネージャーを見るとServer Coreではデフォルトで
以下のサービスが起動されていることが分かります。


AeLookupSvc(Application Experience)
BFE(Base Filtering Engine)
BITS(Background Intelligent Transfer Service)
CryptSvc(Cryptographic Services)
DcomLaunch(DCOM Server Process Launcher)
Dhcp(DHCP Client)
Dnscache(DNS Client)
DPS(Diagonostic Policy Service)
EventLog(Windows Event Log)
EventSystem(COM+ Event System)
gpsvc(Group Policy Client)
IKEEXT(IKE and AuthIP IPsec Keying Modules)
iphlpsvc(IP Helper)
KtmRm(KtmRm for Distributed Transaction Coordinator)
LanmanServer(Server)
LanmanWorkstation(Workstation)
lmhosts(TCP/IP NetBIOS Helper)
MpsSvc(Windows Firewall)
MSDTC(Distributed Transaction Coordinator)
netprofm(Network List Service)
NlaSvc(Network Location Awareness)
nsi(Network Store Interface Service)
PlugPlay(Plug and Play)
PolicyAgent(IPsec Policy Agent)
ProfSvc(User Profile Service)
RemoteRegistry(Remote Registry)
RpcSs(Remote Procedure Call)
SamSs(Security Acounts Manager)
Schedule(Task Scheduler)
seclogon(Secondary Logon)
SENS(System Event Notification Service)
slsvc(Software Licensing)
TermService(Terminal Services)
TrustedInstaller(Windows Modules Installer)
W32Time(Windows Time)
WinHttpAutoProxySyc(WinHTTP Web Proxy Auto-Discovery Service)
Winmgmt(Windows Management Instrumentation)
WinRM(Windows Remote Management)
wuauserv(Windows Update)


以上のサービスが起動している状態でメモリ使用量は230MB程になっていました。
完全インストールの場合インストール直後だとメモリ使用量がおよそ260MB程なので
(もちろんGUIツールをいろいろ立ち上げたらもっと増えますが・・・)
若干少ないですがそんなに大きく変わるわけではないようです。


Server Coreではすべての操作をコマンドラインで行う必要がありますが、
Server Coreのコマンドについては以下のサイトに詳しい情報がありました。


マイクロソフト:ステップ バイ ステップ ガイド - Windows Server 2008のServer Coreインストールオプション

Enterprise ZINE:コマンドラインで実現するWindows Server 2008 Server Coreの初期設定


[関連記事]

[Win2008RC1]Server Core:Server CoreにIIS7をインストール

[Win2008RC1]Server Core:IIS7:AppCmdで設定変更

[Win2008RC1]Server Core:Active Directoryのインストール1

[Win2008RC1]Server Core:Active Directoryのインストール2


今回はsmbldap-toolsを使用してSambaの認証データをLDAPデータベースに格納してみます。

Asianux Server 3ではVer0.8.7のsmbldap-toolsがインストールされます。


# rpm -qa smbldap-tools
smbldap-tools-0.8.7-5AX


一方OpenLDAPはVer2.3.27が入っています。

# rpm -qa openldap
openldap-2.3.27-5.1AX


1. OpenLDAPの設定
1.1 OpenLDAPにSambaの認証データを格納する為にはsamba.schemaというLDAPスキーマが必要ですが
AsianuxではSambaとOpenLDAPをインストールすると最初から/etc/openldap/schema下に

samba.schemaが存在している状態になります。

もし/etc/openldap/schema下にsamba.schemaが存在していなければ

/usr/share/doc/samba-3.0.24/LDAPからコピーします。


1.2 /etc/openldap/slapd.confを以下のように編集します。
太字の部分が今回編集した部分になります。

・・・・・・・・・・・・・・・

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba.schema

・・・・・・・・・・・・・・・

access to attr=SambaLMPassword
by dn="cn=Manager,dc=my-domain,dc=com" write
by self write
by anonymous auth
by * none

access to attr=SambaNTPassword
by dn="cn=Manager,dc=my-domain,dc=com" write
by self write
by anonymous auth
by * none

access to attrs=userPassword
by dn="cn=Manager,dc=my-domain,dc=com" write
by self write
by anonymous auth
by * none

access to *
by dn="cn=Manager,dc=my-domain,dc=com" write
by * read


#######################################################################
# ldbm and/or bdb database definitions
#######################################################################

database bdb
suffix "dc=my-domain,dc=com"
rootdn "cn=Manager,dc=my-domain,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoided. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
# rootpw secret
rootpw {MD5}n6taxNCx8LYeaASLXx1hVQ==

・・・・・・・・・・・・・・・

  

今回は以下の様な環境にしています。

・samba.schemaをインクルードしてSambaの認証データを格納できるようにする

・トップエントリ(suffix)はdc=my-domain,dc=com

・管理者DNはcn=Manager,dc=my-domain,dc=com

・管理者パスワードは2007@Autumn(MD5で暗号化)

※ slappasswdコマンドでMD5で暗号化されたパスワードを生成できます。

# slappasswd -h {MD5} -s 2007@Auturmn


  ・SambaユーザーおよびUnixユーザーの登録は管理者DNのみが可能

   各ユーザーは自分自身の情報の変更は可能


1.3 slapdを起動します。
Asianuxでは起動スクリプトldapで起動できます。


# /sbin/service ldap start


あといつものようにランレベル3および5の時に自動起動するようにしておきます


# chkconfig --level 35 ldap on


2. LDAPで認証が行われるように設定


/etc/nsswitch.confを以下の様に編集します。

passwd: files ldap
shadow: files ldap
group: files ldap


/etc/ldap.confを以下の様に編集します。

# network or connect timeouts (see bind_timelimit).
host 127.0.0.1

# The distinguished name of the search base.
base dc=my-domain,dc=com


3. Samba、smbldap-toolsの設定

3.1 /etc/samba/smb.confを以下の様に編集し、LDAPに認証情報を保存するようにします

[global]
・・・・・・
ldap passwd sync = Yes
ldap delete dn = Yes
passdb backend = ldapsam:ldap://127.0.0.1
ldap admin dn = cn=Manager,dc=my-domain,dc=com
ldap suffix = dc=my-domain,dc=com
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
・・・・・・

3.2 /etc/samba/smbldap.confのsuffixをLDAPの環境にあわせて変更します。
・・・・・・・
# Ex: slaveLDAP=127.0.0.1
slaveLDAP="127.0.0.1"
slavePort="389"

# Master LDAP : needed for write operations
# Ex: masterLDAP=127.0.0.1
masterLDAP="127.0.0.1"
masterPort="389"
・・・・・・・
# LDAP Suffix
# Ex: suffix=dc=IDEALX,dc=ORG
suffix="dc=my-domain,dc=com"

# Where are stored Users
# Ex: usersdn="ou=Users,dc=IDEALX,dc=ORG"
usersdn="ou=Users,${suffix}"

# Where are stored Computers
# Ex: computersdn="ou=Computers,dc=IDEALX,dc=ORG"
computersdn="ou=Computers,${suffix}"

# Where are stored Groups
# Ex groupsdn="ou=Groups,dc=IDEALX,dc=ORG"
groupsdn="ou=Groups,${suffix}"

# Where are stored HostsGroups entries (used to manage the user whom each host can login)
# Ex hostsdn="ou=HostsGroups,dc=IDEALX,dc=ORG"
hostsdn="ou=HostsGroups,${suffix}"

# Where are stored Idmap entries (used if samba is a domain member server)
# Ex idmapdn="ou=Idmap,dc=IDEALX,dc=ORG"
idmapdn="ou=Idmap,${suffix}"

# Where to store next uidNumber and gidNumber available
sambaUnixIdPooldn="sambaDomainName=OSTD98017,${suffix}"
・・・・・・


  3.3 /etc/samba/smbldap_bind.confをLDAPの環境にあわせて変更します。

slaveDN="cn=Manager,dc=my-domain,dc=com"
slavePw="2007@Autumn "
masterDN="cn=Manager,dc=my-domain,dc=com"
masterPw="2007@Autumn "

3.4 smbd、nmbdを再起動します

# /sbin/serivce smb restart



4. LDAPデータベースの初期データを作成
4.1 smbpasswdで管理DNのパスワードを登録します

# smbpasswd -w 2007@Autumn

Setting stored password for "cn=Manager,dc=my-domain,dc=com" in secrets tdb


4.2 smbldap-populateを実行しLDAPデータベースに初期データを作成します。

# smbldap-populate -a Administrator -b Guest
Using workgroup name from sambaUnixIdPooldn (smbldap.conf): sambaDomainName=SMB3

Using builtin directory structure
adding new entry: dc=my-domain,dc=com
adding new entry: ou=Users,dc=my-domain,dc=com
adding new entry: ou=Groups,dc=my-domain,dc=com
adding new entry: ou=Computers,dc=my-domain,dc=com
adding new entry: ou=HostsGroups,dc=my-domain,dc=com
adding new entry: ou=Idmap,dc=my-domain,dc=com
adding new entry: sambaDomainName=SMB3,dc=my-domain,dc=com
adding new entry: uid=Administrator,ou=Users,dc=my-domain,dc=com
adding new entry: uid=Guest,ou=Users,dc=my-domain,dc=com
adding new entry: cn=Domain Admins,ou=Groups,dc=my-domain,dc=com
adding new entry: cn=Domain Users,ou=Groups,dc=my-domain,dc=com
adding new entry: cn=Domain Guests,ou=Groups,dc=my-domain,dc=com
adding new entry: cn=Domain Computers,ou=Groups,dc=my-domain,dc=com
adding new entry: cn=Administrators,ou=Groups,dc=my-domain,dc=com
adding new entry: cn=Print Operators,ou=Groups,dc=my-domain,dc=com
adding new entry: cn=Backup Operators,ou=Groups,dc=my-domain,dc=com
adding new entry: cn=Replicators,ou=Groups,dc=my-domain,dc=com


  -aはAdministratorのアカウント名、-bはGuestのアカウント名です。
(それぞれAdministrator、Guestがデフォルトなのでデフォルトのままでいい場合は

このオプションなしでもOKです)


5.smbldap-toolsによるユーザー・グループ操作

5.1 ユーザーの新規追加
smbldap-useraddで行います。

# smbldap-useradd -a -m -P smbldapuser1
Changing password for smbldapuser1
New password :
Retype new password :


-aはSambaユーザーの作成を指示するオプション(これがないとUnixユーザーのみ作成されます)、
-mはホームディレクトリを作成するオプション、
-Pはユーザー作成時にパスワードの設定も行うオプションです。


追加したユーザーの情報はsmbldap-usershowで確認できます。

# smbldap-usershow smbldapuser1
dn: uid=smbldapuser1,ou=Users,dc=my-domain,dc=com
objectClass: top,inetOrgPerson,posixAccount,shadowAccount,sambaSamAccount
cn: smbldapuser1
sn: smbldapuser1
uid: smbldapuser1
uidNumber: 1001
gidNumber: 513
homeDirectory: /home/smbldapuser1
loginShell: /bin/bash
gecos: System User
description: System User
sambaSID: S-1-5-21-2139989288-483860436-2398042574-3002
displayName: System User
sambaPwdMustChange: 2147483647
sambaPasswordHistory: 0000000000000000000000000000000000000000000000000000000000000000
sambaAcctFlags: [U ]
sambaProfilePath: \\PDC-SMB3\profiles\smbldapuser1
sambaHomePath: \\PDC-SMB3\homes\smbldapuser1
sambaHomeDrive: U:
sambaPwdCanChange: 1195119027
sambaLMPassword: E9C8A1D02DEE94B093C2863AA5AEB653
sambaNTPassword: F8F2F2B4EF5492569DCC0087ACD9D77E
sambaPwdLastSet: 1195119027
userPassword: {SSHA}ehtumNjq+ns44LyP2WO80MRQTotBcWZr


またldapsearch でも確認できます。

# ldapsearch -h 127.0.0.1 -x -b 'dc=my-domain,dc=com' '(uid=smbldapuser1)'

# extended LDIF
#
# LDAPv3
# base <dc=my-domain,dc=com> with scope subtree
# filter: (uid=smbldapuser1)
# requesting: ALL
#

# smbldapuser1, Users, my-domain.com

dn: uid=smbldapuser1,ou=Users,dc=my-domain,dc=com
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: sambaSamAccount
cn: smbldapuser1
sn: smbldapuser1
uid: smbldapuser1
uidNumber: 1001
gidNumber: 513
homeDirectory: /home/smbldapuser1
loginShell: /bin/bash
gecos: System User
description: System User
sambaSID: S-1-5-21-2139989288-483860436-2398042574-3002
displayName: System User
sambaPwdMustChange: 2147483647
sambaPasswordHistory: 0000000000000000000000000000000000000000000000000000000000000000
sambaAcctFlags: [U ]
sambaProfilePath: \\PDC-SMB3\profiles\smbldapuser1
sambaHomePath: \\PDC-SMB3\homes\smbldapuser1
sambaHomeDrive: U:
sambaPwdCanChange: 1195119027
sambaLMPassword: E9C8A1D02DEE94B093C2863AA5AEB653
sambaNTPassword: F8F2F2B4EF5492569DCC0087ACD9D77E
sambaPwdLastSet: 1195119027


# search result
search: 2
result: 0 Success


# numResponses: 2
# numEntries: 1


WindowsのExplorerでこのユーザーを使用してSamba共有に対してネットワークドライブの割り当てを行い
このユーザーのSambaユーザーが作成されていることを確認します。

   Asianux側で一度ログオフしてこのユーザーでログオンし直してこのユーザーのUnixユーザーが

作成されていることを確認します。


5.2 ユーザーのパスワードの変更
smbldap-passwdで変更します。

# smbldap-passwd smbldapuser1
Changing password for smbldapuser1
New password :
Retype new password


WindowsのExplorerでこのユーザーの新しいパスワードを使用してSamba共有に対してネットワークドライブ

の割り当てを行いこのユーザーのSambaユーザーとしてのパスワードが変更されていることを確認します。
Asianux側で一度ログオフしてログオンし直してこのユーザーのUnixユーザーとしてのパスワードが

変更されていることを確認します。


5.3 ユーザーの属性変更

smbldap-usermodで属性変更が可能です。(パスワードの変更も可能)


パスワードを変更する場合

# smbldap-usermod -P smbldapuser1
Changing password for smbldapuser1
New password :
Retype new password


ログインシェルを変更する場合

# smbldap-usermod -s /bin/sh smbldapuser1

smbldap-usermodのオプション一覧
-c gecos
-d home directory
-r new username (cn, sn and dn are updated)
-u uid
-o uid can be non unique
-g gid
-G supplementary groups (comma separated)
-s shell
-N canonical name
-S surname
-P ends by invoking smbldap-passwd
For samba users:
-a add sambaSAMAccount objectclass
-e expire date ("YYYY-MM-DD HH:MM:SS")
-A can change password ? 0 if no, 1 if yes
-B must change password ? 0 if no, 1 if yes
-C sambaHomePath (SMB home share, like '\\PDC-SRV\homes')
-D sambaHomeDrive (letter associated with home share, like 'H:')
-E sambaLogonScript (DOS script to execute on login)
-F sambaProfilePath (profile directory, like '\\PDC-SRV\profiles\foo')
-H sambaAcctFlags (samba account control bits like '[NDHTUMWSLKI]')
-I disable an user. Can't be used with -H or -J
-J enable an user. Can't be used with -H or -I
-M mailAddresses (comma seperated)
-T mailToAddress (forward address) (comma seperated)
-L disable an OS user. Can't be used with -U
-U enable an OS user. Can't be used with -L
-?|-h show this help message


5.3 グループの追加・変更・参照・削除
追加はsmbdap-groupadd、変更はsmbldap-groupmod、参照はsmbldap-groupshow、

削除はsmbldap-groupdelで行います。

# smbldap-groupadd smbldapgroup1
# smbldap-groupmod -m smbldapuser1 smbldapgroup1
adding user smbldapuser1 to group smbldapgroup1
# smbldap-groupshow smbldapgroup1
dn: cn=smbldapgroup1,ou=Groups,dc=my-domain,dc=com
objectClass: posixGroup
cn: smbldapgroup1
gidNumber: 1000
memberUid: smbldapuser1
# smbldap-groupdel smbldapgroup1

5.4 ユーザーの削除
smbldap-userdelで削除します。

# smbldap-userdel smbldapuser1
# smbldap-usershow smbldapuser1
/usr/sbin/smbldap-usershow: user smbldapuser1 doesn't exist


ちなみにこのsmbldap-toolsはAsianux Server 3の売り物の一つになっているようです。
(なぜかRed Hat Enterprise Linux 5にはsmbldap-toolsが入ってない ようなので・・・
なおsmbldap-toolsがなくてもSambaの認証データをLDAPに格納すること自体は可能です)


[参考文献]

[ThinkIT]Samba移行術:第3回:NT4.0→Samba3.0への移行(2)

[ThinkIT]Samba移行術:第4回:Sambaのユーザー管理

Sambaのすべて (The Samba Book)


今回はユーザーレベルセキュリティ(smb.confの[global]セクションでsecurity = userとした場合)の

Tipsをいくつかまとめてみました。


■ユーザーの登録

Sambaで使用するユーザーの登録はpdbeditコマンド で行います。


# pdbedit -a smbuser1

New SMB password:

Retype new SMB password:


パスワードの設定も同時に行われます。

上記の例で使用しているsmbuser1ユーザーはUnixユーザーとして登録されている必要があります。


smb.confのpassdb backendパラメータでSAMデータベースを指定していない場合は

/etc/samba/smbpasswdファイルにユーザーの情報が登録されます。


smbpasswdファイルの中身

smbuser1:512:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: C663B7EA03E886E2A2A09D22EA61AA3A:[U ]:LCT-47385EAE


":"で区切られた各セクションの意味については以下のサイトを参照。(smbpasswd(5)のmanと同じ)

http://www.samba.gr.jp/project/translation/3.0/htmldocs/smbpasswd.5.html


[簡単にメモ]

左から以下を意味しています。


name ユーザーの名前

uid UnixのユーザーID


Lanmanパスワードハッシュ

ユーザーのパスワードから生成されたLanmanハッシュ

(Win9x系のパスワードと同じ)

NTパスワードハッシュ

ユーザーのパスワードから生成されたWindowsNTハッシュ

(NT系Windowsのパスワードと同じ)

AccountFlag

U - Userアカウント

N - アカウントがパスワードを持っていない

D - アカウントが無効

W - Workstation Trustアカウント

SambaのPDC機能でNT系WindowsをPDCによるドメインに参加させる為に使用

Last Change Time

アカウントの最終更新時間(1970年からの経過秒数)


この情報はpdbedit -L -wで参照できます。


■ユーザーの削除

# pdbedit -x smbuser1


■パスワードの変更

パスワードの変更にはsmbpasswdコマンド を使用します。


rootの場合

# smbpasswd smbuser1

New SMB password:

Retype new SMB password:


一般ユーザーの場合

# smbpasswd

New SMB password:

Retype new SMB password:


■UNIXユーザーのパスワードとの変更の同期

UnixユーザーとしてパスワードとSambaのパスワードは別に管理されてますが

(別々のパスワードを割り当てることが可能)

管理が煩雑になる場合は以下の方法で同期をとることができます。


1./etc/samba/smb.confの[global]セクションに以下のように設定します。


[global]

・・・・・・・

unix password sync = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n\n *new*password* %n\n *updated*

passwd chat timeout = 10

・・・・・・・


[解説]

unix passwod:YesにするとSambaパスワードの変更時にUnixパスワードも変更されるようになります

passwd program : Unixパスワードの変更に使用するプログラムです。

自マシンのpasswdプログラムをフルパスで指定します。

%uにユーザー名が渡されます。


passwd chat :passwdのルールの定義。

ここが一番重要できちんと定義しないとエラーになります。

Asianuxではpasswdコマンド実行時に以下のように応答が返ってきましたので

New Unix password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

"*New*password* %n\n *new*password* %n\n *updated*"と定義しています。

(*は任意の文字列、%nはパスワード入力、\nは改行を意味します)


passwd char timeout:Unixのパスワード変更を待機する時間(秒)

デフォルトは2秒ですが少し短いので10秒にしました。


  参照:@IT:Sambaユーザーのパスワード管理


2. Sambaを再起動してsmbpasswdを実行してSambaのパスワードを変更すると

Unixユーザーのパスワードも同時に同じ値に変更されます。


$ smbpasswd

Old SMB password:

New SMB password:

Retype new SMB password:

Password changed for user smbuser1


※ただしsmbpasswdは一般ユーザーで実行する必要があります

(rootだと同期が行われずSambaのパスワードのみが変更されます)


ちなみにpasswd chatの値が間違っている場合は以下の様なエラーメッセージが出ます。


$ smbpasswd

Old SMB password:

New SMB password:

Retype new SMB password:

machine 127.0.0.1 rejected the password change: Error was : RAP86 : The specified password is invalid.

Password changed for user smbuser1

この場合はUnixユーザーのパスワードは変更されてSambaのパスワードは変更されていない状態になります。

なお、この設定だけだとsmbpasswdでSambaのパスワードを変更した場合のみパスワードが同期されて

passwdでUnixユーザーのパスワードを変更した場合はパスワードの同期が行われません。

そこでさらにpam_smbpass.soというPAMモジュールを使用してUnixユーザーのパスワードを変更した場合にも

Sambaのパスワードとの同期が行われるようにします。


1. Asianuxではpam_smbpass.soはSambaインストール時に/lib/securityにインストールされています。


# rpm -ql samba-common-3.0.24-6AX | grep pam_smbpass.so

/lib/security/pam_smbpass.so


2. AsianuxではPAMの認証の設定は/etc/pam.d/system-authに記述されているので

system-authの以下の部分を変更します。


[変更前]

・・・・・・・

password requisite pam_cracklib.so try_first_pass retry=3

password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok

password required pam_deny.so

・・・・・・・


[変更後]

・・・・・・・

password requisite pam_cracklib.so try_first_pass retry=3

#password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok

password required pam_unix.so md5 shadow nullok try_first_pass use_authtok
password sufficient pam_smbpass.so use_authtok try_first_pass debug

password required pam_deny.so

・・・・・・・


3. この状態でpasswdでUnixユーザーのパスワードを変更するとSambaのパスワードも同時に変更されました。


# passwd smbuser1

New Unix password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.


■Windows側とSamba側のユーザーのマッピング

/etc/samba/smbusersを使用してWindowsのユーザーとSambaのユーザーをマッピングすることができます。


1. /etc/samba/smb.confの[global]セクションに以下の様に記述します。



[global]

・・・・・・・

username map = /etc/samba/smbusers
・・・・・・・



2. /etc/smaba/smbusersを開きます

デフォルトではWindowsのAdministratorをLinuxのrootとマッピングする設定と

WindowsのGuestをLinuxのnobodyとマッピングする設定が入っています。


# Unix_name = SMB_name1 SMB_name2...

root = administrator admin

nobody = guest pcguest smbguest


3. 他にもマッピングしたいユーザーがある場合はこの下に追記します。

ここではLinuxのsmbuser1とWindowsのsmbuser2をマッピングする設定を追加しています。


# Unix_name = SMB_name1 SMB_name2...

root = administrator admin

nobody = guest pcguest smbguest

smbuser1 = smbuser2