2014年12月25日木曜日

Workgroup環境下でのWindows Serverの入れ替えと、アクセス権限の移行

お代はタイトルの通り「Workgroup環境下でのWindows Serverの入れ替えと、アクセス権限の移行」。
ドメインを構築せず、Workgroup環境下でファイルサーバーや、DBサーバー、・・・etcを運用しているユーザーってのはまだまだ居るはず。

メーカーからの保守期限が来て、必要に迫られてサーバー入れ替えをする場合、最新のWindows Server 2012なんかは、こうしたWorkgroup環境下でユーザーや、フォルダへ設定したアクセス権限なんかを丸っと移行してくれるツールがあるようです。
しかし、Windows Server 2008 R2だと、そんなツールはありません。

しかし、普通に共有フォルダなんてコピーした日には、アクセス権限は移行できなくて、フォルダ毎にアクセス権限を設定等していたならば、手作業でもう一度アクセス権限を設定してあげなきゃなりません。

1.まずは揃えたいもの。
 ・addusers_x86.exe:ユーザの移行に使います。
 ・subinacl.exe:ファイル、フォルダのアクセス権限操作に使います。
 ・getsid.exe:ユーザのSIDの取得に使います。
  ※いずれもMicrosoftのWebサイトから取得可能です。
 ・移行する各ユーザのパスワード情報
  (パスワードは移行できないので、改めて手打ちとなります。)

2.旧サーバー(移行元)にて作業。作業フォルダを作成
  2.1. 作業フォルダへ、addusers_x86.exeをコピー
  2.2. コマンドプロントで、作業フォルダへ移動
  2.3. ユーザー、グループ情報をエクスポート
    addusers_x86.exe ¥¥【旧サーバー名】 /d:u 【作業フォルダのパス】 ¥addusers_old.txt
  2.4. エクスポートしたファイルから余分な情報を削除
  2.5. addusers_old.txtをメモ帳等で開き、[User]と[Local]セクションを
   残して削除します。
  2.6. 「addusers_old.txt」内のサーバー名を新サーバー名に。
    また、administorator、Guestを削除したうえで、別名にて保存。
    例えば addusers_move.txt。

3.新サーバー(移行先)にて作業。作業フォルダを作成
  3.1. 作業フォルダへ、addusers_x86.exeをコピー
  3.2. コマンドプロントで、作業フォルダへ移動
  3.1. 新サーバーに、旧サーバーのユーザー、グループ情報をインポート。
    addusers_x86.exe /c 【作業フォルダのパス】¥addusers_move.txt ¥¥【新サーバー名】 /p:e
  3.1. 各ユーザーのパスワードを一つずつ再設定。

4.データ/権限の移行
  4.1. robocopy等を使って権限を含めてフォルダやファイルをコピー
robocopy.exe ¥¥【旧サーバー名】¥共有フォルダ名 "¥¥【新サーバー名】¥共有フォルダ名" /sec /e /copyall /R:3 /W:3 /NP /LOG:robo.log
  4.2. 新サーバー上のコマンドプロンプトにて、作業フォルダへ移動
  4.3. addusers_move.txtを開き、グループ/ユーザ名以外を削除。
   ユーザー名のみが表示された状態に編集・削除。
   削除後、ANSI形式でファイルを保存。  

  4.5. addusers_move.txtを開き、グループ/ユーザ名以外を削除。
  4.6. 以下のBATファイルを作業フォルダに作成して、1.batとして保存。

echo off
   cls
   if exist sid.txt del sid.txt
   for /F "tokens=1" %%a in (【作業フォルダ】¥addusers_move.txt) do call 2.bat %%a

  4.6. 以下のBATファイルを作業フォルダに作成して、2.batとして保存。
getsid ¥¥【旧サーバー】 %1 ¥¥【新サーバー】 %1 > getsid.txt
for /F "skip=1 tokens=5,7" %%a in (getsid.txt) do call 3.bat %%a %%b
4.7. 以下のバッチファイルを作業フォルダに作成し、ファイル名を3.batとして保存。
echo %1 %2 >>sid.txt
4.8. 1.BATを実行。→sid.txtが生成される。
  4.9. 2行セットにて、旧サーバー情報、新サーバー情報が出力されるので
    旧サーバーに関してはSIDを残し
    新サーバーに関してはユーザ名(or グループ名)を残して保存。
  4.10. 2行セットのデータから、下記の様なコマンドを生成。
subinacl /subdirectories D:¥【共有フォルダ名】¥*.* /replace=S-1-5-21-3991236707-3509720041-2108512118-1011="【左のSIDに対応したユーザ名orグループ名】"
4.11. 2行セットのデータから作ったコマンドのファイルの拡張子をbatに変更して
     BATファイルとして実行。


参考にさせて頂いたWebとは4.10から違うのですが、もともとは参考Webサイトに沿って
準備を進めていたのですが・・・どうにも上手く行かず
結果的に1ユーザーor1グループ毎にコマンドを生成して
それを順次実行に落ち着きました。

ゼロから共有フォルダのアクセス権限を設定するよりも
遥かに効率的で間違いも起きません。大変助かりました。

参考Webサイト

2014年12月24日水曜日

海外在住者が一時帰国の時に、携帯はどんな契約にすればいい?

かつて私自身が選んでいた選択肢は、ドコモユーザーなので
タイプXi にねん(¥743)+パケホーダイライト(¥4,700)+
mopera Uスタンダード(¥500)=合計¥5,943(税抜き)
という組み合わせを使っていました。
海外ではSIMフリーのiPhone4sを使って、日本へ帰ってきた時は
上記のプランにて契約して、mopera経由にてネットに繋いでいました。

しかし、今年の夏に「タイプXi にねん」が廃止!
2014年8月末にて新規受付終了!
なんと、「パケホーダイライト」も廃止!
こちらも2014年8月末にて新規受付終了!
海外へ出ている間、回線(電話番号)を安く維持する術がなくなってしまいました。
 ※従来は「タイプXi にねん」のみ契約を維持して番号も維持していました。

となると、少々面倒だけど
日本出国→回線休止→海外生活→日本一時期国→回線復活→日本出国→回線休止→
を繰り返すしかなさそうです。

そして日本に居る間は
カケホーダイ(¥4,200)+データSパック(¥3,500)+
mopera Uスタンダード(¥500)=合計¥8,200(税抜き)
という組み合わせになりました。

従来の¥5,943からは大幅な値上がり!
何か他に番号も維持できて、いい方法はないからしら。