2013-08-14

Windows 8 Pro をドメインに参加させたら、スタート UI のアプリが使えなくなって大慌て

 Windows 8 Pro をインストールして、ドメインに参加させると、Windows 8 のスタート UI に表示されているアプリケーションにまったくアクセスできなくなっていることに気づくことでしょう。



 Windows 8 アプリの対象ユーザは、Microsoft アカウント(クラウドで管理する)を対象にしているのが問題のようです。

 まあ、Microsoft アカウントを登録して、ログインしなおせば Windows 8 アプリを使えるようにはなりますが、Windows ドメインで共通で使っているアカウントがあるのだから、できればそれを使いたいという場合もあるでしょう。

 その場合は、以下の手順でレジストリ情報を一部書き換えることによって、ビルトインアカウント(たとえば Administrator)で Windows 8 アプリを使えるようになります。


1. カーソルを画面の右端下まで移動してチャームを表示させ、検索アイコンをクリックします。


2. アプリ検索用のボックスが表示されますので、regedit と入力します。



 画面左に該当するアプリが表示されますので、アイコンをクリックすると、レジストリエディタが開きます。


3. レジストリキーの一覧より、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\FilterAdministratorToken を展開します。



4. FilterAdministratorToken の値を 0 から 1 に変更します。



5. レジストリエディタを閉じてコンピュータを再起動すると、ビルトインアカウントで Windows 8 のスタート画面のアプリを使えるようになります。



Windows 8 がプリインストールされいてるコンピュータに Windows 8 Pro をインストールする方法

Windows 8 を Windows 8 Pro にアップグレードしようとしたら、「問題が発生したため、PC を再起動する必要があります。INACCESSIBLE_BOOT_DEVICE」と表示されて大慌て


Windows 8 には二つのエディションがあり、Pro 版でなければ Windows 8 をドメインに参加させることができません。



一筋縄ではいかなかった Windows 8 → Windows 8 Pro へのアップグレード

 Windows 8 がプリインストールされているコンピュータを購入した場合、社内ドメインに参加させるには、前述のとおり、Windows 8 を Pro 版にアップグレードする必要があります。

 当方の場合は、Pro 版をインストールしようとしたところ、何度かつまづくことになってしまいましたので、備忘録として手順を記載しておきます。


1. Windows 8 がインターネットに接続されていることを確認します。

2.  Windows 8 にログインし、Windows 8 Pro インストールディスクを挿入してから、エクスプローラーを開き、インストーラーを起動します。
 
3. “今すぐインストール”をクリックします。

 

「一時ファイルをコピーしています」という画面に切り替わりますので、しばらく待っていると、以下のような画面が表示されます。




 
 このとき、「オンラインで今すぐ更新プログラムをインストールする(推奨)」を選択します。
 ここでドライバ情報の確認と更新が行われます。

重要:
 当方の場合は、最初にこの選択しを無視してしまったため、インストール途中で再起動がかかった際に、ドライバの問題が発生してしまいました。

 具体的には、青い画面に以下のような文字列が表示され、その後は無限再起動ループに陥ってしまいました。

「問題が発生したため、PC を再起動する必要があります。
エラー情報を収集しています。その後、自動的に再起動します。
詳細については、次のエラーを後からオンラインで検索してください INACCESSIBLE_BOOT_DEVICE」


 ですから、更新プログラムのインストール作業は必ず実行してください。

 途中でドライバの互換性の問題が検出された場合は、そのレポートがデスクトップに作成されますので、問題のあるドライバを事前に手動でアンインストールしてください。


4. 無事にドライバの問題が解消されたら、再度 Windows 8 Pro のセットアップを実行します。
 ライセンス条項では、「同意します」チェックボックスにチェックを入れます。


 
5. インストールの種類選択が表示されますので、ここでは「アップグレード:Windows をインストールし、ファイル、設定、アプリを引き継ぐ(U)」を選択すると、アップグレードインストールが始まります。



 
 これ以降は特にユーザ選択を伴いませんので、説明は省略します。


Windows 8 Pro にアップグレードした後の、プロダクトキーの入力方法

 Windows 8 と Windows Pro のプロダクトキーが異なる場合は、Windows 認証には失敗してしまいます。

 具体的には、以下のようなメッセージが表示されます。

「ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。(エラー コード 0x8007007B)」

 この場合は、プロダクトキーを新たに入力する必要があります。

1. 画面の右端をスワイプしてチャームを表示させ、「検索」をクリックします。

 

2. アプリの検索画面が表示されますので、検索ボックスに SLUI 03 と入力します。

 

すると、画面の左端に SLUI 03 というアプリが表示されますので、クリックします。


3. 「Windows のライセンス認証」という名前の画面が表示されますので、ここで Windows 8 Pro のプロダクトキーを正しく入力してください。


 
 プロダクトキーの照合が正しくできたら、画面右下の“ライセンス認証”というボタンがアクティブになりますので、クリックするとこのプロダクトキーを使って認証が行われます。


 




2013-07-25

簡単? FileMakerで在庫管理(6) ―― 場所別在庫レコードの作成方法

 ブログ記事「簡単? FileMakerで在庫管理(3) ―― 倉庫など場所別に在庫数を把握する」では、倉庫等の場所別の在庫数算についてご紹介しました。
 今回は、同機能のキモとも言える場所別在庫レコードの作成方法についてユーザ様よりお問い合わせをいただいたので、以下にその概要をご紹介します。

場所別在庫レコードの作成方法

1.場所別在庫テーブルとそのレコードの作成方針


 先の記事で紹介した場所別在庫算出方法では、下図のような場所別在庫テーブルが必要となります。



 ここで必要十分なレコードは、在庫場所テーブルと商品テーブルのデカルト積となります。


例:
在庫場所TBのレコード
A(倉庫)
B(倉庫)
C(倉庫)

商品TBのレコード
X(商品)
Y(商品)
Z(商品)

場所別在庫TBレコード
AX
AY
AZ
BX
BY
BZ
CX
CY
CZ

 さて、場所別在庫テーブルでデカルト積となるようにレコードを生成すると、各倉庫の在庫(=[c場所別在庫数])に漏れはなくなりますが、倉庫に一度も入出庫が発生していない商品がある場合、余分なレコードが存在することになってしまいます。

 たとえば、倉庫Aにおいて商品Xは入出庫したことがあるが、商品Y、Zについては入出庫が一度も発生していない場合、AXレコードは必要ですが、AY、AZレコードは、通常は不要です。
 処理速度が遅くテーブル結合が貧弱な FileMaker では、余分なレコードを極力作成しないように設計すべきでしょう。

 ということで、今回の仕様においては、入出庫登録を行う際に場所別在庫テーブルに当該商品のレコードの登録有無をチェックして、未登録の場合のみ、レコード登録を行うようにします。


2.実装概要


◇リレーションシップ

場所別在庫_入出明細#出庫 (新設、出庫明細TBと場所別在庫TBのリンク用)
場所別在庫_入出明細#入庫 (新設、入庫明細TBと場所別在庫TBのリンク用、下図)
[このリレーションを使用して、このテーブルでのレコード作成を許可]の✔を忘れずに

◇スクリプト

g確定Btn (変更、OnRecordCommitで実行されるスクリプト)
  • 入庫/出庫画面のレコード確定(OnRecordCommit)時に、入出明細ポータルをチェックし、場所別在庫レコードが存在しなければ、同レコードを作成します。
    下図の赤いフィールドは場所別在庫_入出庫明細#入庫::在庫場所IDフィールドですが、これが空欄であるということは、[在庫場所ID]=5(座間倉庫)の当該商品の場所別在庫レコードが存在しないということを意味します。その場合は、[入庫場所ID]の値を[場所別在庫_入出庫明細#入庫::在庫場所ID]に入れ、場所別在庫レコードを作成します。
  • 本スクリプト実行時になんらかのエラーが発生した場合は、エラーが発生した旨のダイアログを表示し、ダイアログ内の“OK”ボタンでレコード確定を中止し、“レコード復帰”ボタンで明細行の作成をキャンセルするようにします。
    場所別在庫レコードの作成に失敗しているにも関わらず入出明細レコードのみ確定されると、その入庫数分の在庫はシステムから消失してしまうので注意が必要です。

3.その他

  • 万が一、関連する場所別在庫レコードがない入出明細レコードが発生した場合に備え、入庫/出庫テーブルに[c在庫場所ErrMsg]フィールドを作成し、エラーが発生した場合にのみ画面に表示する、というのは用心深い良いプラクティスと言えるでしょう。
  • 場所別在庫テーブルは巨大化しやすいので、場所別在庫が0で且つ入出庫が最近発生していない場所別在庫レコードを削除するバッチ処理を検討しておくことが望ましいです。