TEMTECOMAI ORTHOSTATIC HYPOTENSION

元ダメプログラマで現ダメ中間管理職の駄文

カテゴリ: ADMIN

別の PC でダウンロードして USB メモリを通じてインストールしようとした。
したっけ 「このドライバーをインストールするには .NET Framework 4.0xxx が」 とか言われた。

嘘つけ、ドライバーには不要だろ。 独自色だした設定画面とかだろ。

逃げるな戻るな

こいつだ。
スクロールさせてもすぐにリストのトップに強制的に戻される。
というかスクロールバーがマウスポインターを反復横跳びのようにヒョイヒョイと避ける。
斬新な UI である。

HP Z8 G4 をキッティング中、PowerChute Business Edition のインストーラーで問題発生。
UPS を自動探索する最初の工程、探しに行ったまま全然帰ってこない。 
APC のサポートに連絡し、アレコレと言われるままに試したのだけれどまったくダメ。

ほぼ打つ手なしにまで追い込まれたサポート。
最後に 「対応 OS の欄、"Windows 10" とだけ書いてあり、それより細かいバージョンは明記していませんので現時点での 1709 での動作保証は致しかねます」

んあー?
じゃぁ PowerChute が対応している Windows 10 てのはバージョン表記無しの、一般では既に入手不可能な一番最初のバージョンのことなのか?
いいんだな? その回答でいいんだな?


それにしても HP Z8 G4 Workstation てやつはバーベキューができそうなテラスを備えたマンションのようなワークステーションだな。
ちな OS は Windows 10 Pro for Workstation

Document

Skylake 世代で、光学ドライブを内蔵しておらず、USB 3.0 ポートしかなく、SSD と HDD を内蔵している DELL Precision 7510 に Windows 7 をインストールしようとしてはまった話。
結果から言うと、DELL のサポートサイトでは Windows の OEM ライセンスを正規に持っている PC ならば、Windows のインストール イメージをダウンロードすることができるよ、という話。

DELL の OS Recovery Tool を使えば、その PC が正規に所有する OEM 版 Windows のインストール イメージをダウンロードし、ブート可能な USB メモリを作成することができる。

  1. DELL のこちらのページから OS Recovery Tool をダウンロードする。
  2. PC にインストールする
  3. ツールを起動し、対象 PC のサービスタグを入力する。
  4. その PC が所有している OEM ライセンスの一覧が出るので、希望する Windows を選択する。
  5. インストール イメージがダウンロードされる。
  6. 書き込み先の USB メモリを選択する。
  7. ブート可能な USB メモリが出来上がる。
以上で終了。

この PC は Windows 10 Professional 64bit モデルなのだが、ダウングレード権の Windows 7 Professional 64bit を選んでとして導入し、Windows 7 Professional がプリインストールされた状態で工場出荷。
しばらく使った後に Windows 10 Professional に入れ替え。
その後、思うところあって再び Windows 7 に戻そう、と。
しかし当初から Windows 7 Professional 64bit のリカバリー ディスクは付属していないのは知っていたため、手持ちで浮いていた Windows 7 Ultimate 64bit をインストールしようという話になった。

ところが Windows 7 のインストーラーは USB 3.0 や SSD を認識してくれないらしく、Windows 7 の DVD からブートできるくせに、プリロードされたインストーラーからは DVD も SSD も認識することができないので、追加のドライバーを入れることもできない。
こういう場合は Microsoft の Windows ADK を使って、追加ドライバーを組み込み済みのインストール ディスクを作るんだよという情報が DELL サポート ページに載っていた。
Windows 7 インストールメディアにUSB3.0ドライバ・IRSTドライバを組み込む手順
この手順に従ってカスタムなインストール DVD-R を作ってブートしてみたが、Windows のインストール先ドライブを選択する場面で SSD が表示されない。
ドライバーを追加するボタンを押すと、HDD のパーティションとプリロードされたパーティション (X ドライブだったか?) と DVD ドライブまでは表示されているので、USB ドライバは機能しているようだが、SSD のドライブは見当たらない。
DELL サポートに質問しても同じページを紹介されるだけで、「工学メディアに焼いて試す」「USB メモリに焼いて試す」「外付け HDD に焼いて試す」など、ドライバーを組み込む手順はそのままに、ブートするメディアの種類を変えてみる案内ばかり。

あきらめて Windows 10 の中に仮想で Windows 7 Ultimate を作ろうかって話になっていたことろでようやくくだんのページを見つけることができた。
しかも、Precision 7510 のドライバー ダウンとーろ ページの一番下にリンクがあったし!!
Precision 7510のサポート
dell
                  

Windows 10 (1803) になった途端に BitLocker 暗号化が実行されなくなった

Active Directory に参加させた PC を所定の OU に移動させ、BitLocker に関するグループ ポリシー オブジェクトを食ったのを確認し、その PC にて BitLocker 管理ツールからシステム ドライブを暗号化しようとすると
Active Directory ドメイン サービス スキーマは Bitlocker ドライブ暗号化を実行するように構成されていません。 システム管理者に問い合わせてください。
のようなエラーが発生。
GPO で 「AD DS にオペレーティング システム ドライブの回復情報が格納されるまで BitLocker を有効にしない」 にしてあるので、「AD に格納できる準備ができてないから暗号化をしなかった」 という事でしょう。
いや、Windows 10 (1709) までは正常に暗号化されているわけで、何かがおかしい。

とりあえず成功した

対象 PC のローカル Administrators に所属している、Active Directory 側のユーザーで作業をすれば成功しました。
TechNet の US フォーラム BitLocker on Windows 10 1803 というスレッド、というかそこから飛んだ先にある Reddit の Bitlocer with AD-stored keys bloken on new 1803 installs? というスレッドのなかでサラっと成功談が書いてありましたね。

それまでの作業方法はというと、ます PC の Administrators に参加させたローカル作業用アカウントで作業を進めていた。
たまに AD 側への認証が必要になる場面では、必要とされる資格情報を入力してパスしていく。
その流れで暗号化処理もおこなっていたのだけれど、理由は不明だが、作業者なら作業者の AD 側のアカウントを PC のローカル Administrators に参加させ、その AD 側のアカウントでログオンして暗号化処理を行えばよいとの事。

根本的な解決方法にしては腑に落ちないけれど、とりあえず今回の事象に対してはこの対策法ですすめることにした。

Windows 10 (1803) 用の ADMX が公開されてるよ

これはエラーの件とは無関係だと思いますが、Windows 10 (1803) 向けのグループ ポリシー テンプレートが公開されているとのことで、こいつを早速  Active Directory のセントラル ストアに入れてしまいます。
Administrative Templates (.admx) for Windows 10 April 2018 Update (1803) - 日本語

ここからダウンロードした Administrative Templates (.admx) for Windows 10 April 2018 Update.msi をドメインコントローラー上で実行し、C:\Program Files (x86)\Microsoft Group Policy\Windows 10 April 2018 Update (1803) に展開された PolicyDefinitions フォルダーの中身をすべてセントラル ストアにコピー。
あとは他のサイトにあるドメイン コントローラーにも複製されるのを待つだけ。
待つだけ。
いつまで?
いつまで待てばいいの?
とか気になっていたら 「古い Active Directory からバージョンアップしてきた場合、ファイル複製の機能のままになってるかもよ。 今は DFSR だよ」 なんていう記事を発見。。。

そして FSR から DFSR へのマイグレーション

マイクロソフト Network & AD サポートチーム公式ブログの FSR から DFSR への移行 (SYSVOL) という記事に丁寧な手順が書いてある。
さらに、毎度本当にお世話になっている富士通のサーバー関係の PDF 文書から今回は Windows Server 2012/2012 R2 Active Directory 移行の手引き3.2.6 SYSVOL 複製方式の変更 にも丁寧な手順が書いてある。

ローカルのサイトに PDC 役を含め DC が 2台、別のサイトに 2台、さらに別のサイトに RODC が 1台計 5台の DC で作業を開始。 途中 AD の複製スパンによる待ち時間が発生しつつ正味 3時間で再起動なしに終了。

2017年秋に Infineon 社 (IFX) TPM の脆弱性が発表され、この TPM を採用している PC 各社からファームウェアの更新プログラムが続々と出ているんですが、Sufrace Pro 3 向けの更新が一向に出ません。

対象のモジュールを積んでいる WIndows 10 PC でも Windows Defender セキュリティ センターに警告が表示されているかと思います。
[設定]-[更新とセキュリティ]-[Windows セキュリティ]-[デバイス セキュリティ]-[セキュリティ プロセッサーの詳細] を見ると搭載されている TPM の情報を見ることができ、私の Surface Pro 3 では 「セキュリティ プロセッサ (TPM) のファームウェア更新が必要です」 と表示されています。
[開始する] というボタンを押すとこの件に関する Microsoft サポートのページがブラウザで表示されます。

Update your security processor (TPM) firmware (英語ページ)
日本語ページもありました。
セキュリティ プロセッサ (TPM) ファームウェアを更新する

要するに各 PC メーカーのサイトに行って対象機種向けのファームウェア更新プログラムをダウンロードして適用してね。 詳しい情報は PC メーカーのサイトで見てね。 という内容。
Sufrace シリーズの情報は載っていないけれど、これとは別にマイクロソフトの Sruface 向けページに情報がありました。
Surface デバイスのトラステッド プラットフォーム モジュール (TPM) に関するセキュリティの問題

マイクロソフトは、次の製品についてファームウェアの更新プログラムをリリースしました。
  • Surface Pro 4 (12 月 8 日にリリース済み)
  • Surface Studio (12 月 8 日にリリース済み)
  • Surface Book (1 月 11 日にリリース済み)

さらに、次の影響を受ける Surface デバイスの更新プログラムをリリースする予定です。
  • Surface Pro 3

影響を受けないのは Surface 3, Surface Laptop, Surface Pro (モデル 1796), Surface Pro with LTE Advanced Model 1807, Surface Book 2, Surface HUB だそう。

マイクロソフトは、デバイスの信頼性と安全性を確保することを重視しています。 ユーザーと組織の中断やダウンタイムを最小限に抑えるために、時間をかけてこれらの更新プログラムを作成してきました。
時間掛けすぎ。
時間掛けすぎ。

もしやと思い、Surface Pro 3 更新履歴のページを見てみましたが、やはりまだのようです。
Surface Pro 3 更新履歴

ちなみに Surface Pro 4 更新履歴にはしっかりと掲載されています。

気づいたら %UserProfile% フォルダーの中にドットから始まる名前のフォルダーがいくつもできてます。
フォルダーだけじゃなく、SQL Server の MDF ファイルなんかもあったりして、気が付かないうちに賑やかになっていました。
昔はプロファイル フォルダーの直下に勝手に物を置いちゃいけないと思い込んでました。
プロファイルの下ならデスクトップやマイ ドキュメントのフォルダーの中に置け、と。


.config / .dotnet / .nuget / .omnisharp / .vs / .vscode
%UserProfile% の下に 6つもあります。

一方、ドットから始まるフォルダーを自分で作る場合、例えば ".hoge" とか入れて確定すると 「ファイル名を入力してください。」 と怒られてしまいます。
こういう場合は .hoge. というように、フォルダー名の最後にもドットを入れると、確定後は .hoge になってくれます。

VSCode で Markdown を書く際に独自に用意した CSS を利用する方法。
Web で調べても調べても (少なくとも) 現行バージョンの VSCode では間違っているっぽい書き方らしく、絶対に CSS ファイルを読み込んでくれませんでした。


まずはワークスペースありきだそうです。
私の場合は PowerShell のスクリプトを作る過程で Markdown ドキュメントも書くので、スクリプト編集用のフォルダーを作り、そこを VSCode のワークスペースとする。
この配下に適当なフォルダーを作り、CSS ファイルを置く。
ユーザー設定またはワークスペースの設定に markdown.styles の設定を書く。


愚弟的には、E:\Scripts をワークスペースとした場合
その中に ".markdownStyle" というフォルダーを作った。(ドットから始まる必要全くなし)
ユーザー設定に
"markdown.styles": [
    ".markdownStyle/markdown.css"
],
などと書く。
ワークスペースの設定に書く場合はこうなりました。
{
    "folders": [
        {
            "path": "."
        }
    ],
    "settings": {
        "markdown.styles": [
            ".markdownStyle/markdown.css"
        ],
    }
}
このワークスペースってやつは別のツリーにあるフォルダーも論理的に含めることができるらしく、いろんなフォルダーをワークスペースに取り込んでいくと "folders" のセクションがにぎやかになっていくのでしょうかね。

Windows 2000 の時からエクスプローラーに備わっていた、Active Directory のユーザーやコンピューターを簡易的に検索するダイアログです。
Windows 10 もエクスプローラーで [ネットワーク] を選ぶとリボンに [ネットワーク] タブが出てきて、その中にある [Active Directory の検索] というボタンでダイアログが出る。
Active Directory 検索ダイアログ

Active Directory 検索

個人的には自作のショートカット ファイルを作り、そいつをタスクバーにピン留めしています。
C:\Windows\System32\rundll32.exe dsquery.dll,OpenQueryWindow
で、[表示] -> [列の選択] で検索結果一覧に表示する項目を選べまして、この中に "社員 ID" という物があるのですが、ユーザーを検索してもこの列は空欄のままでございます。 ユーザー アカウントの EmployeeNumber と EmployeeID に社員番号を仕込んであるので表示されてもいい物はずなのですが。
このツールの [社員 ID] は Active Directory ユーザーアカウントの EmployeeID ではないのだろうか。。。

と数年間悩んでいたのですが、検索場所の指定で初期値 「全部のディレクトリ」 となっているところを自分のドメインを指定して検索したら結果に社員 ID も表示されました。
ディレクトリ全体を検索する場合は取り出す属性を絞ってるんでしょうかね。
何はともあれめでたしめでたし。

おもわずマイクロソフトのコミュニティに投稿しちゃった事案でもあります。
よくある 「〇〇を〇〇したいというわけですね」 てきなやつ。
ようやくマイクロソフトからも復旧方法がアナウンスされた。
Windows devices may fail to boot after installing October 10 version of KB4041676 or KB4041691 that contained a publishing issue
どうやら症状に応じて 3つの選択肢に分かれるみたいですが、うちの場合は 3つ目に書いてあるケースが該当した。

WSUS で Windows Update を管理している環境 (主に法人でしょう) において発生する現象とのこと。
マイクロソフトの Windows Update サービスからだと発生しない。
  1. Windows 10 (Ver. 1703 および Ver. 1607) と Windows Server 2016 用の 2017年10月10日配信 セキュリティ更新プログラムを適用
  2. 再起動をすると Windows が起動できない。
  3. ついにはブルースクリーンが出る。
  4. そんで自動的に再起動して自動復旧画面が表示される。
  5. アップデート前の復元ポイントから復旧しようとしても、待たされた挙句にエラーで復旧不可能。

まずは復旧させます

自動修復画面で [詳細オプション] をクリックする。
[トラブルシューティング]→[詳細オプション]→[コマンド プロンプト] をクリックする。
このマシンは BitLocker で C ドライブを暗号化していたので、ここで BitLocker の回復キーを入力する。
コマンド プロンプトが起動する。
以下のコマンドを打って [Enter] キー。
reg load hklm\temp c:\windows\system32\config\software
reg delete “HKLM\temp\Microsoft\Windows\CurrentVersion\Component Based Servicing\SessionsPending” /v Exclusive 
該当するキーがなければエラーが表示されるだけなので大丈夫。
reg unload HKLM\temp
ここからが本番
dism コマンドを使い、保留状態になっているパッケージを削除する操作。
次のコマンドでパッケージの一覧を表示させる。
dism.exe /image:c:\ /get-packages
警告なんかも表示されながら、ずらずらっと結果が表示される。
最後の 3つぐらい、「状態 : インストールの保留中」 となっているものがあったので、これらのパッケージを削除する。
dism.exe /image:c:\ /remove-package /packagename:<package name>
<package name> の部分は先ほど出力されたリストの 「パッケージ ID」 の値を当てはめるのだけれど、先ほどの出力結果をマウスで範囲選択してコピペすれば楽に処理できる。
「状態 : インストールの保留中」 のパッケージ分だけ繰り返し、最後にコマンド プロンプトを閉じる。
「オプションの選択」 画面になるので [続行] をクリック。
Windows ロゴが表示され、その下にクルクルが表示される。
しばらく待たされるのですごく心配になる。
画面が真っ暗になる。 (さらに心配になる)
クルクルのマウス ポインターが表示され、安心する。
ブルーの背景になる。 (またしても心配になる)
「更新プログラムを構成しています」 が表示され、安心する。
なかなか待たされる。
「再起動しています」 との表示だが、なかなか再起動してくれない。
再び 「更新プログラムを構成しています」 になる。
しばらく待って 100% の表示になる。
ログオン画面が表示される。
めでたく復旧。

原因

今月は 「累積更新プログラム」 と同じ KB 番号の 「差分更新プログラム」 というものもなぜか配信されてきてしまい、両方の更新プログラムを適用してしまった PC がこの症状に陥るとの事。
具体的には、
  1. 2017-10 x64 ベース システム用 Windows Server 2016 の累積更新プログラム (KB4041691)
  2. 2017-10 x86 ベース システム用 Windows 10 Version 1607 の累積更新プログラム (KB4041691)
  3. 2017-10 x64 ベース システム用 Windows 10 Version 1607 の累積更新プログラム (KB4041691)
  4. 2017-10 x86 ベース システム用 Windows 10 Version 1703 の累積更新プログラム (KB4041676)
  5. 2017-10 x64 ベース システム用 Windows 10 Version 1703 の累積更新プログラム (KB4041676)
といういつもの顔ぶれの他に
  1. 2017-10 x64 ベース システム用 Windows Server 2016 の差分更新プログラム (KB4041691)
  2. 2017-10 x86 ベース システム用 Windows 10 Version 1607 の差分更新プログラム (KB4041691)
  3. 2017-10 x64 ベース システム用 Windows 10 Version 1607 の差分更新プログラム (KB4041691)
  4. 2017-10 x86 ベース システム用 Windows 10 Version 1703 の差分更新プログラム (KB4041676)
  5. 2017-10 x64 ベース システム用 Windows 10 Version 1703 の差分更新プログラム (KB4041676)
という 2セットが配信されてしまい、対象 OS にて累積と差分の両方を食べてしまった。

すでに累積更新プログラムはマイクロソフトによって 「期限切れ」 とされているため、WSUS の同期を行えば配信が停止される。

DELL の Precision 7510 というノート PC

BTO で 1st. HDD を 256GB SSD に交換、さらに 2nd. として 1TB HDD を追加。
さらに Windows 10 からのダウングレード権を使って Windows 7 Professional x64 がプリインストールされた状態で導入。
せっかく Windows 7 プリインストール状態で届いたものを 「やっぱり Windows 10 で使いたいから」 という要望があったため、PC に付属していた Windows 10 のメディアを使ってセットアップをすることにしたのだが、これにだいぶ苦労しましたよ、というお話。

一番の要点から言うと、DELL Precision 7510 に付属している Windows 10 のメディアでは SSD にインストールできないって話。 インストール途中のパーティション選択画面が出てこないって話。
SSD にインストールしたい場合は Microsoft のメディア作成ツールを使って取得した Windows 10 の iso ファイルを使いなさい、と。

DELL のサポートに電話して聞いた話だから確かです。
DELL の製品サポートでダウンロードできる Windows 10 のリカバリー イメージは PC に付属しているメディアと同じものとのこと。
続きを読む

2017年3月の Windows 10 累積的な更新プログラム KB4013429 は Active Directory 管理センターがクラッシュする件に対応しています。

KB4013429

Addressed issue where the Active Directory Administrative Center (ADAC) crashes when attempting to modify any attribute of any user account in Active Directory.
累積的な更新プログラムの一覧の日本語ページにはまだ掲載されていないようですが英語版のページには掲載されていますね。
まずはよかったよかった。

アカウント情報を編集して更新しようとすると Active Directory 管理センターが不明なエラーを発して落ちてしまう問題の原因が分かった。
以下は先週末自宅に引きこもって実験した結果。

まずは手順

  1. Windows 10 Enterprise 評価版を使って VM を作成。 (Windows 10 Version 1607)
  2. 作成した VM を Active Directory に追加。
  3. RSAT を VM にインストール。
  4. Active Directory 管理センターが正常に使えることを確認。
  5. Windows Update で OS を最新状態にする。
  6. Active Directory 管理センターが異常終了することを確認。
  7. 「インストールされた更新プログラム」 から累積的な更新プログラムを削除。
  8. Microsoft Update カタログから一つ前の累積的な更新プログラムをダウンロードしてインストール。
  9. Active Directory の動作を確認。
  10. 以下 7 から 9 を繰り返し、Active Directory 管理センターが正常終了するポイントを見つける。

結果、2016年12月13日公開の累積的な更新プログラム 「KB3206632 (14393.571)」 をインストールすると Active Directory 管理センターが異常終了することが判明。
その少し前、2016年12月9日に公開された 「KB3201845 (14393.479)」 までにとどめておけば良い。

残念ながら最新の累積的な更新プログラムである 2017年1月10公開の 「KB3213986 (14393.693)」 でもこの現象は継続中。

【参考】
Windows 10 用のリモート サーバー管理ツール (RSAT) のダウンロード
https://www.microsoft.com/ja-JP/download/details.aspx?id=45520
Microsoft Update カタログ
https://catalog.update.microsoft.com/v7/site/home.aspx
Windows 10 バージョン 1607 (64bit) と Windows Server 2016 の累積的な更新プログラム一覧
https://support.microsoft.com/ja-jp/help/4000825

Windows 10 Professional にインストールした RSAT の Active Directory 管理センター (略して ADAC っていうのかな?) で不明なエラーが頻発して困っている。

Windows 10 にログオンして ADAC を利用している Windows アカウントは対象 AD のアカウント オペレーターの権限を持っている。
作業対象のアカウントの属性値などを変更して上書き保存しようとすると 「不明なエラーが発生しました」 となる。
ちなみに結果は反映されている。

イベントログには次の二つのエラーが記録されている。
--------
ソース: .NET Runtime
イベント ID: 1026
アプリケーション: dsac.exe
フレームワークのバージョン: v4.0.30319
説明: ハンドルされない例外のため、プロセスが中止されました。
例外情報: System.ComponentModel.Win32Exception
--------
ソース: Application Error
イベント ID: 1000
障害が発生しているアプリケーション名: Dsac.exe、バージョン: 10.0.14393.347、タイムスタンプ: 0x57f86637
障害が発生しているモジュール: KERNELBASE.dll、バージョン: 10.0.14.393.479、タイム スタンプ: 0.582588e6
例外コード: 0xe0434352
--------

この PC には先に Windows 10 用の RSAT をインストールし、そのあとの機会に Visual Studio Communication 2017 RC を入れ、調子が悪いので RSAT を再インストールしている。
別の Windows 10 PC に入っているdsac.exe のバージョンが微妙に違うが、これは RSAT をインストールした時期による違いか。

ということは Visual Studio Community 2017 RC が影響してるのか?
一応 RC なら運用環境の PC でも問題ないってことになってはいるが、とはいえ RC は RC であり RTM じゃぁない。
というところが原因なのかな。。。
エラーを回避するため久しぶりに Active Directory ユーザーとコンピューターを使って作業をしたけれど、久しぶりだと使いづらいなぁ。。。

Apple ID のパスワードを変更する際に訊かれる秘密の質問
なぜか毎回正解することができないいので、秘密の質問をリセットしなければならない。
毎度毎度、秘密の質問とパスワードを更新してるってわけさ。

なぜ正解できなかったのかは質問をリセットする時になって気付かされる。
答えの最小文字数制限があるわけさ。
「韓国」 って設定しようとするとダメって言われる。
「かんこく」 って設定する。 「ひらがなで回答しよう」 って心に誓う。
で数ヶ月後に 「韓国」 って回答する。
回答時には 「2文字は少なすぎます」 とかいうヒントはくれない。 「答えが違います」 とだけ言われる。
しかも秘密の質問は 2問同時に出題され、2問同時に回答しなきゃならない。
さっきの調子で間違ってたとしても 「2問のうちどちらか、または両方間違っています」 とかぬかしやがる。
そして何パターンか試す。
気力が尽きて 「秘密の質問をリセットする」 という最後の手段を選択するわけさ。

そして質問を設定する画面で質問の一覧を見て思うわけさ。
なんだこの質問群は。。。

両親が初めて出会った町の名は?
憧れの職業は?
好きな絵本の題名は?
初めて映画館で観た映画は?
小学生の時に好きだった先生の名は?
学生時代に好きだった映画スターや登場人物の名は?
学生時代に好きだった歌手またはバンドの名前は?
初めて覚えた料理は?
初めて飛行機で行った場所は?

質問を選び、答えをセットする段階でもう一つ思い出す。
最小文字数。
映画スターの名前はアルファベットがいいのか? それともカタカナか? カタカナの場合スペースで区切るか? 中点で区切るか?


秘密の質問なのだからユーザーに質問文も作らせてほしいと思う。
てかやっぱり必要ない機能だと思う。

初めて覚えた料理は?
インスタントラーメンなんじゃねーの?

Windows 10 に .NET Framework 3.5 をインストールする

.NET Framework 3.5 をインストールしたい場合は [コントロール パネル] - [プログラム] - [Windows の機能の有効化または無効化] で [.NET Framework 3.5 (.NET 2.0 および 3.0 を含む)] にチェックを入れて [OK] をクリックすればインストールすることができますわね。
この時の実際のインストールは Windows Update 経由で行われるらしいよ。(よくわからんし、調べるつもりもないけれど)

0x800F081F とか 0x800F0906 とかのエラーでインストールできないよ

がしかしタイトルにもある通り 0x800F081F のエラーが出てインストールすることができない場合があるっていう。
Windows Live メールも .NET Framework 3.5 が必須。 実に困った状態。(今時 Windows Live メール使うなって話もあるが)
0x800F081F ってのは 「ソースが見つからない」 っていうエラーらしいです。 (よくわからんし、調べるつもりもないけれど)

0x800F0906 が出た

会社でよく発生しそうなエラー。
PC が .NET Framework 3.5 に必要なファイルを Windows Update からダウンロードできない場合に発生するらしいよ。
PC が社外と通信するための設定が不完全 (ファイアウォールとかプロキシとか) だったり、WSUS がしゃしゃり出てくるようになっていたり。
もし一時的に WSUS を経由しないで直接 Windows Update サーバーと通信できるように環境を変えられるのなら問題ないらしい。
ということなので、GPO で 「WSUS を使わない」 というポリシーをリンクさせた作業用の OU を作成し、作業中の PC をその OU に入れて再チャレンジしてみた。

今度は 0x800F081F が出た

先ほどまでのエラーと似たエラー番号なので変化に気づきづらかったよ。
KB2734782 によれば 「代替インストール ソースに指定した場所に必要なものがない、またはそれを読み取る権限がない、または壊れている」 ということらしいが、そんなもんを指定した記憶はない。
ただ単純に Windows の機能から .NET Framework 3.5 を有効にしようとしただけだもの。

OS のメディアを使って手っ取り早くインストールした

うちの場合は 0x800F081F だったので Windows 10 のメディアを使って解決した。
メディアは Microsoft からダウンロードした Windows 10 インストール イメージを焼いておいたもの。
こいつを使って .NET Framework 3.5 をインストールできるらしい。 iso を直接マウントしても大丈夫っぽい。
PowerShell を管理者権限で起動して下記のコマンドを打つ。
Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -Source "D:\x64\sources\sxs" -LimitAccess
この場合 Windos 10 のメディアが D: ドライブにあるってことで、Source オプションで sxs フォルダーの位置を指定してあげる。
同様のことは Dism っていうコマンドでも可能らしい。 (よくわからんし、調べるつもりもないけれど)
さらには Fondue というコマンドもあるらしい。 (よくわからんし、以下同文)
TechNet ブログ Windows 8 に .NET Framework 3.5 をインストールする、もう1つの方法 Fondue に一通り書いてある。

KB2966828 (MS14-046) が原因になることがあるらしい

KB2966828 (MS14-046) は .NET Framework のセキュリティ修正プログラムのひとつで、Address Space Layout Randomization (ASLR) というセキュリティ機能を迂回されてしまう脆弱性を修正するらしい。
ASLR ってのはプロセスをロードする場所をランダムな場所にする仕組みらしい。 ランダムな場所にロードすることで、攻撃者が攻撃しづらくするらしい。 (よくわからんし、調べるつもりもないけれど)

ASLR の仕組みを簡単に説明すれと 「毎回同じフロアのトイレの同じ個室で仕事をさぼっているとバレてしまうので都度ランダムな個室を選択する」 ということだね。

この KB2966828 は PC に .NET Framework 3.5 がインストールされていることを前提としているらしいので、KB2966828 をインストールした後に初めて .NET Framework 3.5 を有効にしようとするとエラーになるようですね。
例えば 「社内で PC をセットアップする際に Windows Update でガンガン攻めて、最後に Windows Live メールをインストールしようとして .NET Framework 3.5 を有効化しようとしたらエラー」 とか。

で、Windows 8.1 以前や Server 2012 R2 以前の Windows にはさらなる修正プログラム KB305628 が用意されているので、修正プログラムを適用すれば問題が解決するらしい。

Windows 10 用の修正プログラムは用意されていないようだ。。。
Web をさまよってみると 「Windows 10 ではコマンド プロンプトからの Dism コマンドや、PowerShell の Enable-WindowsOptionalFeature コマンドレットでならインストールできた」 という情報もあるし、一時的に KB2966828 をアンインストールしたって話もある。
まぁいろいろ選択肢があるってことですかね。

ようやく再リリース

Windows Management Framework (WMF) 5.0 RTM packages has been republished

ダウンロードはここから。
ダウンロード センター : Windows Management Framework 5.0

リリースノートはこれ。
Windows Management Framework (WMF) 5.0 RTM Release Notes Overview

PowerShell ってもんは、横に横にと、ものすごく長くなってしまう宿命なのかしらね。
世界で一番嫌いなのが横スクロールだ。
Param
(
    [ValidateSet("Phonetic", "EmployeeNumber", "AccountName")]
    [string]
    $conditionType,
    [string]$value
)

switch ($conditionType)
{
    "Phonetic" { $condition = "msds-PhoneticDisplayName -like '*$value*'"; break }
    "EmployeeNumber" { $condition = "employeeNumber -eq '$value'"; break }
    "AccountName" { $condition = "samaccountName -eq '$value'"; break }
    default { $condition = "*" }
}

Get-ADUser -Filter $condition -Properties * | Select-Object Enabled, LockedOut, Description, UserPrincipalName, Surname, Givenname, msDS-PhoneticDisplayName, EmployeeNumber, Department, EMailAddress, DistinguishedName

Get-ADUser -Filter $condition | Get-ADPrincipalGroupMembership | Sort-Object GroupScope, Name | Format-Table GroupScope, Name -AutoSize
みたいな

クイック操作による新規メール作成では宛先, cc, bcc, タイトル, 本文, フラグ, 重要度などをあらかじめ定義しておけるため、こりゃほぼほぼテンプレート機能じゃないか、というのが前回の記事

しかしクイック操作による新規メール作成の定義では、本文はプレーン テキストに限られており、HTML メールのような装飾は入れることができません。
定型業務報告などでメール本文で済ませるような場合に表を使いたいこともあるのですが、テンプレート機能だと呼び出し操作の手数が多いので困ってしまいます。

そこでもう少しクイック操作について深掘りしてみたところ、メールを新規で作成させるジョブじゃなくても同様の事ができる気がしてきました。

テンプレートとなるメールを下書きフォルダーに保存しておき、その下書きメールを複製して編集 → 送信ってする手順をクイック操作でやってみる。
  1. 新規メール作成画面を開き、定型化する要素を入れ込んでいく。
  2. 一通り作成したらメールを下書きに保存する。(作成画面を閉じようとすると聞いてくる)
  3. [ホーム] タブの [クイック操作] を開き、[新しいクイック操作] - [ユーザー設定] をクリック。
  4. 適当な名前を付ける。
  5. 「フォルダーへコピー」 のアクションを選択。
  6. コピー先のフォルダーとして 「下書き」 を選択。
これで準備完了。 次は本番
  1. 下書きフォルダーを開き、テンプレートとなる下書きメールを選択。
  2. [ホーム] タブの [クイック操作] から、先ほど作成したクイック操作を選択する。
  3. 選択した下書きメールが下書きフォルダーに複製される。
  4. 複製されたメール (どっちでもいいけど) をダブルクリックして編集画面を開き、必要な修正を加えたら送信する。
手順としてはこんなもんですかね。

他に、定型句的なアプローチ方法も使えそうだ。
いわゆるクイック ギャラリーってやつですね。 クイック ギャラリーにユーザー独自の本文パーツを用意しておき、これらを挿入してメールを組み立てていく。 本文にバリエーションを持たせる場合に使えそうなので、定型業務向けというよりは、会社のメール文化や自分のスタイルに合わせた定型文パーツを複数用意しておいて、これらを組み合わせてビジネスメールを作成するって感じでしょうか。
  1. メールの作成画面で本文をある程度作りこむ。
  2. クイック パーツに登録したい箇所をマウスでドラッグして選択する
  3. メール作成画面の [挿入] タブにある [クイック パーツ] から [選択範囲をクイック パーツ ギャラリーに保存] を選択する。
  4. 適当な名前を付け、オプションが 「内容のみ挿入」 となっていることを確認する。
これで準備完了。 次は本番
  1. いつものように新規メール作成画面を開く。
  2. 作成画面の [挿入] タブにある [クイック パーツ] を開き、本文に挿入したいクイック パーツを選択する。
タイトルや宛先を定義しておくことはできないのでガチガチの定型メールでは扱いづらいのも否めない。
これらをテンプレートや下書きで定義しておき、いくつかのパターンが考えられる本文の一部に対してクイック パーツを使うという手もあるって話ですね。

Outlook 2010 やら 2013 での話。 (2016 はまだ使っていないのでわからない)

せっかく作ったメール テンプレートですが、これを使って新規メールを作成するまでの手順がひどすぎる。
[ホーム] タブの [新規作成] グループにある [新しいアイテム] をクリックし、その中の [その他のアイテム] の更に奥の [フォームの選択] をクリックすると 「フォームの選択」 というダイアログが出る。
POP3 のメール設定だからなのかもしれないが、「フォルダーの場所」 のドロップダウン ボックスで 「ファイル システム内のユーザー テンプレート」 を選択し、一覧に表示された中から目的のテンプレートを選択して [開く] ボタンをクリック (またはテンプレートをダブルクリック) する。
これでようやくテンプレートを使った新規メールが開く。

Outlook 2013 : メール テンプレートへの長い道のり

Outlook 2013 : フォーム選択ダイアログ

定型メールを手早く作成するためのテンプレートも、呼び出すためにマウスを何度もクリックせにゃならんと面倒になってきて、だんだんと使わなくなり、しまいにゃ前回送ったメールを元に新規メールを作ったりするようになる。

そこで Outlook のクイック操作が登場。
[ホーム] タブの [クイック操作] グループにある [新しいクイック操作] から [新しい電子メール] を選択。
このダイアログで宛先、タイトル、本文などを保存しておくと、クイック操作の一覧からワンクリックで定型メールが作成できるようになる。

Outlook : クイック操作

これで定型メールを連発することが可能になった。

Windows 10 の Inside Preview でローンチしたのは 7月の半ばでしたかね。
そして翌月の月例アップデートに MS15-091 : Microsoft Edge 用の累積的なセキュリティ更新プログラム (3084525) が 「緊急」 として初登場。
インパクトのある初登場でした。
9月には MS15-095 : Microsoft Edge 用の累積的なセキュリティ更新プログラム (3089665) が 「緊急」 として 2ヶ月連続 2回目の登場。
10月には MS15-107 : Microsoft Edge 用の累積的なセキュリティ更新プログラム (3096448) が若干ランクを下げた 「重要」 で 3ヶ月連続 3回目の登場。
11月は MS15-113 : Microsoft Edge 用の累積的なセキュリティ更新プログラム (3104519) で再び 「緊急」 に返り咲き、4ヶ月連続 4回目の登場。
12月ももちろん MS15-125 : Microsoft Edge 用の累積的なセキュリティ更新プログラム (3116184) を 「緊急」 でぶっこみ、見事 5ヶ月連続 5回目の登場を果たした。

頑張ってください。

たとえテストだろうがインストール要件に 4コアの CPU とか書いてあるわけだからそのとうりのスペックを用意せにゃならんのだろうね。
4年前に導入した Core i-3 2100 3.1GHz だと 2Core 2HT でギリギリなわけだけど、その全てを cCPU としてつぎ込んじゃっても大丈夫なのかね。
今時の仮装環境って CPU の数がオーバーしてても大丈夫なの?
同時稼働してる仮想マシン群の vCPU の合計が物理 CPU の数をオーバーしても大丈夫、って記事があるのだからきっと大丈夫だよね

一人当たり月額 1500円くらい高いけど Skype for Business (旧 Lync) ですんげー人数が参加する会議 (経営トップから全従業員への新年の挨拶とか) ができたり、(日本ではまだ開始時期が未定だけど) Skype For Business から通常の電話にかけられるようになるんだってさ。
他にもいろいろ機能がアップしてるんだってさ。
1ライセンスだけで E3 を契約してるボクには関係ない話だね。

年明けて時間があれば試してみようと思う。
てか自分で契約してる SharePoint Online 使えよとか思うけど、無償版なりに何ができるのかわからんので。
まぁ今時社内静的な HTML でシコシコ編集して社内ポータル後悔してるのもなんだかなだし、Expression Web に怒られっぱなしなソースだし、本職の人が見たら卒倒しちゃうようなソースだし、何の計画性もなく積み上げられた CSS だし。
このまま行くといつかは本文無しで単なる PDF ファイルへのリンク集になっちゃいそうだし。
オンプレミスで SharePoint Server を入れるほどの費用対効果もなさそうだしね。

VMware で作成した Windows Server で Active DIrectory を構築しようとした。
ホストの物理ネットワークへは接続しないよう、独立した仮想ネットワークを設定。
VMnet2 をカスタマイズ。 (といってもローカル DHCP サーバーを無効にしただけ)
Windows Server をインストールし、決めておいた IP アドレスに設定。
dcpromo.exe のウィザードで Active Directory をインストール。
ウィザードの途中で 「IP アドレスが動的になってるけど、このまま動的で行っちゃう? yse / no」 とのダイアログが出たので迷わず [no] をクリックしたが、再び同じダイアログが表示されて前に進めない。
ipconfig /all してみると確かに固定アドレスも設定してあるが、自動構成でローカル アドレスが "(優先)" で振られてしまう。 ipconfig /all してみると確かに自動構成で 169.254. のローカル アドレスが付与されていて (優先) となっている。 自分で設定したアドレスのほうは末尾に (重複) と表示されている。

VMnet2 の設定を見直したところ 「ホスト オンリー」 になっていた。 つまり仮想マシンはホスト マシンとだけ通信が可能な設定。
ホスト マシンで ipconfig /all してみたら VMnet2 のアダプターにアドレスが振ってあり、そのアドレスが仮想マシンと被っていた。 ホスト マシン側の VMnet2 アダプターに明示的にアドレスを設定したつもりがなかったので気づかなかったよ。

スクリプト センターにある Re-index the WSUS 3.0 Database っていう SQL はデータベースのインデックスを再構成するためのメンテナンス スクリプトだけれど、こいつを流すと OS の表示が Windows 10 から Vista に戻っちゃうよ。
tbComputerTargetDetail テーブルの OSDescription 列の内容が戻っちゃうんだよね。
なので先日のスクリプトと合体させてみた。
USE SUSDB; 
GO 
SET NOCOUNT ON;

-- Rebuild or reorganize indexes based on their fragmentation levels 
DECLARE @work_to_do TABLE ( 
    objectid int 
    , indexid int 
    , pagedensity float 
    , fragmentation float 
    , numrows int 
) 

DECLARE @objectid int; 
DECLARE @indexid int; 
DECLARE @schemaname nvarchar(130);  
DECLARE @objectname nvarchar(130);  
DECLARE @indexname nvarchar(130);  
DECLARE @numrows int 
DECLARE @density float; 
DECLARE @fragmentation float; 
DECLARE @command nvarchar(4000);  
DECLARE @fillfactorset bit 
DECLARE @numpages int 
 
-- Select indexes that need to be defragmented based on the following 
-- * Page density is low 
-- * External fragmentation is high in relation to index size 
PRINT 'Estimating fragmentation: Begin. ' + convert(nvarchar, getdate(), 121)  
INSERT @work_to_do 
SELECT 
    f.object_id 
    , index_id 
    , avg_page_space_used_in_percent 
    , avg_fragmentation_in_percent 
    , record_count 
FROM  
    sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'SAMPLED') AS f 
WHERE 
    (f.avg_page_space_used_in_percent   < 85.0 and f.avg_page_space_used_in_percent/100.0 * page_count   < page_count - 1) 
    or (f.page_count > 50 and f.avg_fragmentation_in_percent > 15.0) 
    or (f.page_count > 10 and f.avg_fragmentation_in_percent > 80.0) 

PRINT 'Number of indexes to rebuild: ' + cast(@@ROWCOUNT as nvarchar(20)) 

PRINT 'Estimating fragmentation: End. ' + convert(nvarchar, getdate(), 121) 

SELECT @numpages = sum(ps.used_page_count) 
FROM 
    @work_to_do AS fi 
    INNER JOIN sys.indexes AS i ON fi.objectid = i.object_id and fi.indexid = i.index_id 
    INNER JOIN sys.dm_db_partition_stats AS ps on i.object_id = ps.object_id and i.index_id = ps.index_id 

-- Declare the cursor for the list of indexes to be processed. 
DECLARE curIndexes CURSOR FOR SELECT * FROM @work_to_do 

-- Open the cursor. 
OPEN curIndexes 

-- Loop through the indexes 
WHILE (1=1) 
BEGIN 
    FETCH NEXT FROM curIndexes 
    INTO @objectid, @indexid, @density, @fragmentation, @numrows; 
    IF @@FETCH_STATUS   < 0 BREAK; 

    SELECT  
        @objectname = QUOTENAME(o.name) 
        , @schemaname = QUOTENAME(s.name) 
    FROM  
        sys.objects AS o 
        INNER JOIN sys.schemas as s ON s.schema_id = o.schema_id 
    WHERE  
        o.object_id = @objectid; 

    SELECT  
        @indexname = QUOTENAME(name) 
        , @fillfactorset = CASE fill_factor WHEN 0 THEN 0 ELSE 1 END 
    FROM  
        sys.indexes 
    WHERE 
        object_id = @objectid AND index_id = @indexid; 

    IF ((@density BETWEEN 75.0 AND 85.0) AND @fillfactorset = 1) OR (@fragmentation   < 30.0) 
        SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REORGANIZE'; 
    ELSE IF @numrows >= 5000 AND @fillfactorset = 0 
        SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REBUILD WITH (FILLFACTOR = 90)'; 
    ELSE 
        SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REBUILD'; 
    PRINT convert(nvarchar, getdate(), 121) + N' Executing: ' + @command; 
    EXEC (@command); 
    PRINT convert(nvarchar, getdate(), 121) + N' Done.'; 
END 

-- Close and deallocate the cursor. 
CLOSE curIndexes; 
DEALLOCATE curIndexes; 

IF EXISTS (SELECT * FROM @work_to_do) 
BEGIN 
    PRINT 'Estimated number of pages in fragmented indexes: ' + cast(@numpages as nvarchar(20)) 
    SELECT @numpages = @numpages - sum(ps.used_page_count) 
    FROM 
        @work_to_do AS fi 
        INNER JOIN sys.indexes AS i ON fi.objectid = i.object_id and fi.indexid = i.index_id 
        INNER JOIN sys.dm_db_partition_stats AS ps on i.object_id = ps.object_id and i.index_id = ps.index_id 
    PRINT 'Estimated number of pages freed: ' + cast(@numpages as nvarchar(20)) 
END 
GO 

-- 不具合対応 ここから

-- Windows 8.1 の PC 情報を修正
UPDATE [SUSDB].[dbo].[tbComputerTargetDetail]
SET [OSDescription] = 'Windows 8.1'
WHERE [OSMajorVersion] = '6'
AND [OSMinorVersion] = '3'
AND [OldProductType] = '1'
AND ([OSDescription]   <> 'Windows 8.1' or [OSDescription] IS NULL) 

-- Windows Server 2012 R2 の PC 情報を修正
UPDATE [SUSDB].[dbo].[tbComputerTargetDetail]
SET [OSDescription] = 'Windows Server 2012 R2'
WHERE [OSMajorVersion] = '6'
AND [OSMinorVersion] = '3'
AND [OldProductType]   <> '1'
AND ([OSDescription]   <> 'Windows Server 2012 R2' or [OSDescription] IS NULL) 

-- Windows 10 の PC 情報を修正
UPDATE [SUSDB].[dbo].[tbComputerTargetDetail] 
SET [OSDescription] = 'Windows 10' 
WHERE [OSMajorVersion] = '10' 
AND [OSMinorVersion] = '0' 
AND [OldProductType] = '1' 
AND ([OSDescription]   <> 'Windows 10' or [OSDescription] IS NULL)
-- 不具合対応 ここまで --


--Update all statistics 
PRINT 'Updating all statistics.' + convert(nvarchar, getdate(), 121)  
EXEC sp_updatestats 
PRINT 'Done updating statistics.' + convert(nvarchar, getdate(), 121)  
GO 
まぁまぁいいんじゃない?

まぁね、WSUS がため込んでるデータ量が多すぎて処理が続行不可になってるって話じゃないと思ってますよ。
そこはまだ楽観的です。
新しい更新プログラムも取りに行けているしクライアントも Windows Update の処理ができていますし。

とは言え広大なネットの海にダイブして下記の情報を引っかけました。
その割にはどちらも Technet のフォーラムですが。。。

Getting past WSUS Cleanup Wizard time out, removing unnecessary updates.

なんかね、WSUS 3.0 が使っているデータベースが持っているストアド プロシージャーに spGetObsoleteUpdatesToCleanup ってのがあるらしいんですよ。
Get Obsolete Updates って言うぐらいだから古い更新情報を取得するってことだよね。
で、こいつはヒットした更新情報の ID 一覧を出力する。
そして spDeleteUpdate っていうストアド プロシージャの引数 @localUpdateID にヒットした ID を与えてあげると更新情報のレコードを削除するよっていう話らしい。

ただ spGetObsoleteUpdatesToCleanup で尋常じゃない数の更新情報が出力されるので、結果をいったん一時テーブルに登録して、WHILE を使って一つずつ spDeleteUpdate に渡してやろうっていうのが次のリンク。

WSUS Cleanup - can this be done is phases?

ザックリとまとめるとこんな感じ。
use SUSDB;
GO

DECLARE @var1 INT
DECLARE @msg nvarchar(100)

-- spGetObsoleteUpdatesToCleanup の結果を一時テーブル #results に格納
CREATE TABLE #results(Col1 INT)
INSERT INTO #results(Col1) EXEC spGetObsoleteUpdatesToCleanup

DECLARE WC Cursor FOR
    SELECT Col1 FROM #results
	
OPEN WC
FETCH NEXT FROM WC
INTO @var1

WHILE(@@FETCH_STATUS > -1)
BEGIN
    SET @msg = 'Deleting ' + CONVERT(varchar(10), @var1)
    RAISERROR(@msg, 0, 1) WITH NOWAIT EXEC spDeleteUpdate @localUpdateID=@var1
    FETCH NEXT FROM WC
    INTO @var1
END

CLOSE WC

DEALLOCATE WC

DROP TABLE #results

これを sql ファイルとして保存して Management Studio とかで流してあげればいいよね。

それでどれだけ効果があるのかわからないけれど。

-- 追記です --

この件、解決しましたのでリンクしておきます。

様々なバージョンの IE や Edge (Windows 10) での動作確認をするための仮想環境をマイクロソフトが提供してくれていることを知った。
https://dev.windows.com/ja-jp/microsoft-edge/tools/vms/windows/

2015年11月12日現在は以下の環境が用意されている。

テストの対象環境として準備されている仮想マシン

  • IE6 on XP
  • IE7 on Vista
  • IE8 on XP
  • IE8 on Win7
  • IE9 on WIn7
  • IE10 on Win7
  • IE10 on Win8
  • IE10 on WIn8.1
  • IE11 on Win7
  • MSEgde on Win10
仮想環境をホストするのが Windows の場合は以下のプラットフォームが選択可能。
  • VirtualBox
  • Vagrant
  • HyperV
  • VPC (対象の仮想マシンが Windows XP, Vista, 7 の場合のみ)
  • VMware
ホストが Mac の場合は VirtualBox、Vagrant、VMware、Parallels が選択でき、Linux の場合は VirtualBox と Vagrant が選択可能。

このページの日本語翻訳が恥ずかしいことになっている。
入力ミスか
機械語翻訳による誤訳ではなく、完全にヒューマン エラーだね。

WSUS 3.0 SP2 on Windows Server 2008 R2 (Windows Internal Database 使用)

WSUS のメンテナンスをしようと思った。
WSUS 3.0 には [クリーンナップ ウィザード] という GUI ツールがある。
実行してみた。
終わらない。
翌朝まで放置した。
データベース エラーでタイムアウトしていた。

いろいろ調べて回った。
メンテナンス自体をしばらくサボっていたため、日常メンテナンスに関する情報とタイムアウトに対する対策情報がゴチャゴチャとなってしまった。

まずはサボっていた日常メンテナンスから始めてみる。

WSUS 管理コンソールを起動する。
すでに存在しない古い Windows に関する更新情報を除外する。
[Update Services]-[サーバー]-[Update[オプション]-[製品とクラス] を開き、使っていない古い Windows を対象から外した。

IE の古い累積的なセキュリティ更新情報を "拒否" にする。
Japan WSUS Support Team blog "「IE の累積的なセキュリティ更新プログラム」が承認されていると、更新プログラムの検出処理時に WSUS クライアントの CPU 使用率が高くなる"
ただしこの検索結果一覧は使い勝手が悪すぎる。 検索結果のリストからは親子関係が分からない。 せめて親子関係を表すアイコンも表示されてほしかった。


これで再びクリーンアップ ウィザードを実行してみた。
やっぱりタイムアウトする。

では DB のインデックスを再構築してみよう。 WSUS と言えど情報は DB のレコードなのだから、肥大化した DB を整理してやれば軽くなるはず!!

Japan WSUS Support Team blog 「WSUS DB インデックスの再構成の手順について」
こいつも SQL なので Management Studio から実行。
あまり時間は掛からなかった。


クリーンアップ ウィザードを試してみた。
やっぱりタイムアウトする。

他にやれる事はないだろうか。
SQL で DB に直接介入するってのはどうだ?
WSUS DB にはメンテナンス用のストアド プロシージャーが用意されているのではないだろうか。
PowerShell で Update Service に介入するってのはどうだ?
GUI が CUI になっただけでかもしれないが管理コンソールで発生するタイムアウトは回避できるかもしれない。

まだチャレンジは続きそうだ。

-- 追記です --

この件、解決しましたのでリンクしておきます。

WSUS 3.0 SP2 on Windows Server 2008 R2 (Windows Internal Database 使用)

管理ツールの [Windows Server Update Services] でコンピューターの一覧を見てみると Windows 10 が Vista として表示されてしまう。 (Windows 8.1 も誤表示されていたらしいが WSUS のメンテをサポっていたので気づかなかった)

Microsoft からは WSUS 3.0 の不具合を修正する Hotfix がいくつか出ているようだが、どの Hotfix でも現象は治らない。
ちなみにこの環境にすでに適用してある Hotfix は以下の 4つ。


このうち 4つ目の KB2938066 の HotFix では、Windows Server 2012 R2、Windows 8.1、Windows Storage Server 2012 の表示名を修正するらしいのだが、こちらの環境では Windows 10 の誤表示は治っていない。
Japan WSUS Support Team Blog 「WSUS コンソール画面でオペレーティング システム名が正しく表示されない事象について」


そこで見つけたのが以下の情報
Windows Server Essentials Tips & Tricks 「Windows 10 on WSUS Shows as Windows Vista」

WSUS が使っている SUSDB というデータベースの中のテーブル [tbComputerTargetDetail] の中にはその環境で WSUS に登録されたコンピューターの情報が入っているので、こいつを修正するって感じか?
てっきり Windows OS に関するマスター テーブルのようなものがあってそいつを修正するのかと思ったが、現物の情報を修正するようだ。
UPDATE [SUSDB].[dbo].[tbComputerTargetDetail]
SET [OSDescription] = 'Windows 10'
WHERE [OSMajorVersion] = '10'
AND [OSMinorVersion] = '0'
AND [OldProductType] = '1'
AND ([OSDescription] <> 'Windows 10' or [OSDescription] IS NULL)


これを以下のようにして修正した。
上記のコードは SQL なので、こいつを実行する必要がある。
コマンドラインで実行すればいいのだけれど、いろいろと探索したいところなので SQL Server Management Studio を使う。
Windows Internal Database はリモートからログオンできないらしいのでサーバー自身にインストールを行う必要があるらしい。
この WSUS のサーバーには SQL Server 2008 R2 Management Studio Express をインストールした。

  1. SQL Server へログオンする。

サーバーの種類 : データベース エンジン
サーバー名 : \\.\pipe\mssql$microsoft##ssee\sql\query
認証 : Windows 認証
  1. [新しいクエリ] で先のコードを貼り付け実行する。


せっかくなので先のブログにあるように Windows 8.1 と Windows Server 2012 R2 に関する修正も入れる。
無事に終了。

最近 PowerShell のお勉強に力を入れています。
対象は主に Active Directory の管理。

それとは別に、Office 365 管理の文書を読んでいると Exchange の管理なんかにも PowerShell がバンバン搭乗してくる。
たしか Windows Server 2008 あたりから標準搭載されたんだっけ?
随分と不勉強な期間を過ごしてしまったものだ。。。

とりあえず Windows 8.1 の Active Directory 管理センターが生成するスクリプトを見て勉強中。
ユーザー アカウントを新規作成するだけでも 4つぐらいのスクリプトを流しているみたい。
  1. 基本的な項目を指定してアカウントを作成する。
  2. セキュリティ関連の設定をする。
  3. アカウントを有効にする。
  4. 次回ログオン時にパスワード変更を強制するようにする。

みたいな。
最初の New-ADUser コマンドレットにもう少し作業を集約できやしないかね。

あとは作成したスクリプトの中に値を指定していく方法を考えなくちゃね。
ユーザーを作成するケースは 3種類程度で、ケースごとに指定する項目が若干増減する。
ユーザーの情報を変更するケースも何種類かに限られる。
所属が変わる。
社内権限が変わる。
PC へのログオンを禁止する。 またはその逆。
メール アドレスが変わる。 (外部の POP3 なので連動しない)
削除のケースは一つだけ。 単純に削除するだけ。

この作業をするためのツールを自作するにしても、汎用的な作業に使えるようなものになってしまうと車輪の再発名になってしまうので、上に挙げたような実際に起こるケースを起点にすればいいのかな。

何らかの UI を作ったとして、入力したものを最終的に PowerShell に流すにはどうしたらいいのかな。
パイプを駆使すれば 1行のコマンドで済むだろう。それなら Shell で PowerShell を起動してコマンドを引数で与えれば大丈夫かもしれない。
コマンドが複数行になってしまう場合はどうだろう。 スクリプトファイルを生成してから渡せばいいのかな。

というか UI の言語から直接 PowerShell をコントロールすることはできるのかな。
UI は何で作ればいいんだろうか。
Windows フォーム? 今更だなぁ。。。
今の主流派 WPF なのかな?
Windows フォームの開発者たちは既に WPF を習得しちゃったのかな。 MVVM とか書籍を読んでも概念ばかりでよくわからないよ。

まだ英語版しか出ていなくて、バージョン 1.1では DHCP サーバー管理ツールの mcc コンソールなど一部は未搭載。(PowerShell でなら管理できるらしい)
今すぐ日本語の Windows 10 にインストールするにはちょっとだけ余分な手数が必要らしいので大人しく日本語版が出るのを待っている状況。

メイン機である Windows 7 (Windows Server 2008 / 2008 R2) 向けの Active Directory 管理センターで日常業務は問題なし。
ただ最近気がついたのだけれど Windows 8, Windows Server 2012 / 2012 R2 向けの管理センターでは後ろで生成されてる PowerShell のスクリプトを見ることができるって機能があるらしく、これが気になって仕方がない。

今更 Windows 8.1 に戻すのもアレだし、、、ってことで、MSDN サブスクリプションで落とした Windows 8 Pro の iso を使って仮想マシンを立てることにした。
アップデートが多すぎて 8.1 までの道のりは長い。

Windows 8.1 から標準搭載されるようになった游ゴシックと游明朝ってフォントはメイリオよりも見やすいので好き。
そして先日出たばかりの Office 2016 からは既定のフォント スタイルが MS 系フォントではなく游ゴシックと游明朝に変更になったそうです。
そのため文書の互換性を保つためでしょうか、游ゴシックと游明朝を搭載していない Windows 7 や 8 環境でもこれらのフォントを利用できるよう、マイクロソフトのダウンロードセンターから入手することができるようになっています。

Yu Gothic Yu Mincho Font Pack (マイクロソフト ダウンロードセンター)
なぜか en-us のページになっておりますが、問題なく利用可能です。

システム要件としては Windows 7 と Windows 8 で、Office 2010 と Office 2013 向けとのこと。

Surface Pro 3 でずっと発生している、スリープから起きてみたら USB 関連と Bluetooth 関連の存在が消失する件。
一瞬だけ空きができたので Surface Pro 3 の再インストールを行った。

工場出荷状態の 8.1 Pro に戻し、初期ウィザードの最後のところで 「Windows 10 にアップグレードしますか」 的なメッセージに 「アップグレードする」 と回答。
そしてデスクトップが表示されるとすでに Windows Update のウィンドウが立ち上がっており、160件近くの更新プログラムがリストアップされている。
ほとんどが 8.1 に対する更新プログラムだろうからこいつらを無視することにした。
Windows 10 のメディア作成何チャラみたいなのをダウンロードしてきて直接インストールすることにした。

インストールはスムーズ。
すぐに終了。
Windows Update がバックで何度か動いていたかもしれない。
落ち着いたところで Active Directory へ参加。
問題なし。

今のところ正常。

USB 規格の速度がデカデカと書いてあるのはどうなのよ、と。
USB 3.0 だから 2.0 よりもこんなに速いんですよ云々と。

で、お前自身の読み書き速度はどうなんだと。
ソフトウェア暗号化が間に入って速度はどうなんだと。

接続のための規格を変えたら速くなったなーって感じたことないんですけど。

むしろ、あぁこんなもんかって感じることの方が多いんですけど

エレコムのセキュリティ付き USB メモリに入れてた大事なデータが消失、、、
PASS ってソフトでフォルダの表示非表示を切り替えるんだけど、PC にメモリを挿したらエラー発生。
PASS を起動してパスワード入れたらフォルダが現れたものの中身は空っぽ。
メモリ全体の使用量を見ると明らかに数GB消費しているものの中身は空っぽ。
オレから見えないってことは一つ上の次元へ行っちゃったんですかね。

メモリを挿入したらルートに置いてある PASS.exe を起動してパスワードを入れる。
パスするとルートにフォルダが現れる。
データはこの中に入れる。
PASS.exe はシステムトレイ内に常駐している。
最後に PASS を呼び出して、[非表示にして終了] とするとフォルダが消える。
何とも手数が多く、人的ミスが入りやすい手順。

今回は急遽 USB メモリが必要だったので近所のヤマダ電機でエレコム製を調達したのだけれど次からはドライブを表示非表示するいつものタイプにしようっと。

Microsoft Edge ってアップデートされたの?
Windows 認証に対応した?

ウイルス バスター コーポレート エディションのクライアント用が Windows 10 に対応した。
ウイルス バスター コーポレート エディション 11 用のサービスパック 1 と Critical Patch
(http://downloadcenter.trendmicro.com/index.php?regs=jp&clk=latest&clkval=4634&lang_loc=13)

クライアント PC に常駐するプログラムは Windows 10 に対応したってことで、例のスリープ明けに Surface Pro 3 + Windows 8.1 / Windows 10 の USB ルート ハブが消えちゃう問題の切り分けになるのか?

あとは新ブラウザ Edge が発展途上すぎるのでまだまだ既定のブラウザにできない問題がのこってるね。
Edge からウイルス バスター Corp の管理サイトにアクセスするにも制限が残る。
他の Web サービスでも Edge じゃダメって所が多い。
もっとがんばれ。

ついでにトレンドマイクロ各種製品の Windows 10 対応状況
http://www.trendmicro.co.jp/jp/business/products/ossupport-windows10/

プロバイダーのメールというか、いわゆる POP3 なメールも Exchange Online で面倒見てもらえないか、という話。

調べてみるとマイクロソフトが提供するフリーのメール サービスである Outlook.com (昔は Hot Mail だったり Live Mail とか言いましたっけ) ではそんな都合のよい事が出来ちゃうって噂なのです。
Outlook.com の自分のアカウントに、outlook.com とは無関係の POP3 アカウントを追加設定すると、Web 版の Outlook (というメールソフト) からどちらのメールにもアクセスできちゃうって話です。
しかもメールを送信するときに送信者を Outlook.com のアカウントにするのかプロバイダのアカウントにするのかを選択できちゃうらしい。
POP3 のアカウントから送信したメールも Outlook.com のサーバーに残るらしい。
素晴らしい。
Outlook.com 側がプロバイダ のメール サーバーと同期して受信メールを取得したりしてくれてるんでしょうかね。
まぁ、メール サーバーとしての Outlook.com とメール クライアントとしての Web 版 Outlook、("Outlook Web App" 略して "OWA") が一緒くたなので深く考えると頭が混乱してくる。
サーバー サイドの機能なの? それとも OWA の機能なの?

一方企業向け Office 365 のメールといえば Exchange Online ですが、どうもこいつは自分の組織のメール ユーザーに対して無関係なところのメール アカウントを追加できそうにない。 いやよくわからない。
メール アドレスのエイリアスって機能はあるんだけれど、こいつは転送みたいなものだから、エイリアスのアドレス宛のメールを受信して返信しようとしても本家のアドレスから送信されるらしい。


Exchange Online のアカウントのために使っているデスクトップ版の Outlook に POP3 のアカウントを設定したって意味がない。
それじゃ送受信したメール データはクライアント側での管理になってしまうから。(振り分けルールはサーバー側に保存されているっぽいんだが?)
Exchange Online のアカウントのために使っている OWA ではできるんだろうか。
Exchange Online と、それ用の OWA の密着具合がわからないので何とも言えない。
多分ダメだろうね。
できたところで新着メールに反応できなかったり、スマホでもブラウザでメール操作するって所でダメだろうね。

という事は個人向け Outlook.com に POP3 のアカウントを追加するってのも同じくダメだろうね、リアルタイムで受信したい場合は。

「スリープから復帰した時の問題が解決しない」 の時のデバイス マネージャーの様子をキャプチャーした。

これが平常時のデバイス マネージャーの様子。
正常な状態のデバイス マネージャー

"Intel(R) USB 3.0 eXtensible Host Controller - 1.0(Microsoft)" の下に "USB ルート ハブ (xHCI)" ってのがあって、その下に Bluetooth 関連があって使用中のマウスやペンもあるし、USB 接続しているType Cover やイーサネット アダプターも見えている。
フロントとリアのカメラも USB 接続として見えている。

んでこっちがダメダメな時のデバイス マネージャーの様子。
USB ルート ハブから下が消えちゃっているデバイス マネージャー

"Intel(R) USB 3.0 eXtensible Host Controller - 1.0(Microsoft)" に何もぶら下がっていない。
正常時にぶら下がっていた "USB ルート ハブ (xHCI)" から下が完全になくなっていて、内臓や外付けの USB やら Bluetooth の根元がゴッソリと消失している。

これじゃぁホントに何もできないよ。
タッチスクリーンが生きているので、画面のロックを解除して、起動中のアプリを閉じて、Windows を再起動するだけの操作ができるのがせめてもの救い。

誰か何とかしてくろー

よくよく考えたら Windows 8.1 Pro 時代に Visual Studio Community 2013 を入れてたのだが。
そしていったんアンインストールをし、Windows 10 Pro にしてから Visual Studio Community 2015 を入れているのだが。

Hyper-V を有効にするのと InstantGo は排他的ってハナシ。
そして Visual Studio で Windows Phone のアプリを開発する際に Hyper-V が必要ってハナシ。
そして Visual Studio Community 2015 がインストールされているっていうジジツ。
"Windows 機能の有効化" を見ると Hyper-V 関連にチェックが入っているっていうジジツ。

さぁ、今現在この PC のスリープ状態は InstantGo なのだろうか。。。

Surface Pro 3 + Windows 10 Pro で、復帰時に各種デバイスが使用不能になってしまう問題。
というよりも、最初の 8 だったか 8.1 の時代からずっと引きずっている問題。

使用不能になるのは タイプ カバー、Wedge Touch Mouse、Surface イーサネット アダプターの 3つ。
というよりか、この 3つデバイスぐらいしか使わないので他への影響を見ることができないだけ。

つい先日まではスリープからの復帰じゃなく、休止状態から復帰するときに問題が起きているのではないかと思っていたが、たしか Surface Pro 3 が休止状態に移行するのはスリープに入ってから 240分後 (4時間後) だったはず。
まぁ大体そのぐらい放置してた時に問題が出ていたのだが、つい先日は 1時間程度の放置でも問題が出た。
1時間程度ならまだスリープ状態 (Surface Pro 3 の場合は InstantGo とか Connected Stanby って言うらしい) のままであろうと思う。


まずは復帰させるため、いつものようにタイプ カバーの [Ctrl] キーあたりをポンと叩く。
無反応。
ポンポンポンって叩く。
無反応。
ペシッペシッペシッって叩く。
無反応。

マウスをグリグリする。
無反応。

画面横の Windows マークの所を軽く触れる。
Windows が復帰してログオン画面になる。
ネットワーク接続が内臓ワイヤレスに切り替わっている。

パスワードを入力するテキストボックスにタッチする。
画面の下からキーボードがニューって出てくる。
ただでさえ画面が斜めになっていてタッチしづらいのに、一番リアルな細かいキーボードに設定してあってイライラ。

ここから先、Windows を再起動させずに何とかデバイスたちを認識させようとする作業はマウスなしではきつすぎる。
Bluetooth デバイスをペアリングさせようにも、そもそも Bluetooth 関連のメニュー項目がどこにも表示されていない。 元から Bluetooth を搭載していない PC のように。
Surface Pro 3 のくせに生意気。
Bluetooth のメニューが消えていることに気付かなかった 8.1 時代は、チャーム内のメニューを行ったり来たりして探し回ったもんだった。

デバイス マネージャーを起動させる。
Windows 8.1 まではスタートメニューをタップすればデバイス マネージャーのショートカットがあった。
Windows 10 だとスタート画面が表示される。。。
画面のキーボードを表示させて [Win] + [X] とか押すのは面倒くさい。
キーを押させんじゃない。

デバイス マネージャーのツリーに Bluetooth が見当たらない。
「デバイスの種類別」 で表示させているわけだから、トップ項目には具体的なデバイスではなく、Bluetooth というジャンルを表す項目があり、その下に搭載されている Bluetooth のデバイス群や、使用中の機器が表示されているはずなんだ。

仕方がないので再起動する。
デバイス マネージャーを見てみる。
トップに Bluetooth のアイコン。
開いてみる。
Marvell AVASTAR Bluetooth Radio Adapter
Microsoft Bluetooth Enumerator
Microsoft Bluetooth LE Enumerator
Microsoft Wedge Touch Mouse
Surface Pen
サービス検索サービス
デバイス識別サービス
ちゃんとぶら下がってる。

ここで気が付いた。
なぜさっきはキーボードや LAN アダプターが使用不可になっていたんだ? と。

デバイス マネージャーで [表示] - [デバイス (接続別)] に切り替えてみた。
途端に Bluetooth 関連の情報を見失う。
PC名
-> ACPI x64-based PC
-> Microsoft ACPI-Compliant System
-> PCI Express ルート コンプレックス
-> Intel (R) USB 3.0 cExtensible Host Controller - 1.0 (Microsoft)
-> USB ルートハブ (xHCI)
-> Marvell AVASTAR Bluetooth Radio Adapter
-> Microsoft Bluetooth Enumerator
-> Microsoft Wedge Touch Mouse
あった。

さらに探すと
Microsoft Bluetooth Enumerator と同じ階層にある Microsoft Bluetooth LE Enumerator の下に Surface Pen がある。

というよりも、USB ルートハブの下に Bluetooth がぶら下がっているって点が衝撃の事実だった。
USB ルートハブ (xHCI) の下の [USB 入力デバイス] の下に Type Cover がぶら下がっている。

てことは、この問題が出たときって USB ルートハブあたりからヤバい状態なのかなぁ。
他の USB 機器を接続してたらそっちも巻き添えになっちゃうってことなのかなぁ。
今度は USB ハブを外付けした状態で試してみよう。

ただ、試してみたところで現象が確認できるってだけで、解決するわけじゃない。
Microsoft 三には何とかしてもらいたい。

ここんとこ毎回じゃないが起動直後に通知される。
x64 ベース システム用 Windows 10 の累積的な更新プログラム (KB3081444) - エラー 0x80240017
という明確なメッセージが表示される。 [再スキャン] ってボタンを押す。 ちょっと経つと 「お使いのデバイスは最新の状態です」 とか表示される。 [詳細オプション] のリンクを押す。 [更新履歴を表示する] のリンクを押す。 とっくの前に KB3081444 は正しくインストールされていることになっている。 まいったよ。 何となくなんだけど、起動直後にこのエラーが出るときは、Surface Pro 3 の電源を入れて "Surface" のロゴが出た後、または Windows のログオン画面 (の直前の壁紙状態?) あたりで再起動が掛かってるっぽい気がする。 起動直後をよく観察したことがないので 「何となくそんな気がする」 って感じだけれど。 んで強制再起動っぽい時は Surface って文字が表示されている下に白いサークルがクルクルと回っている。 つまり、やっぱり、本当に、Windows が起動する前に何かの処理をしようとしてるって事か。 Windows 10 は更新プログラムの説明がおおざっぱなので原因を追いかける気にもならないよ。

RAID-1 で片方のディスクで不良セクターが発生したから即座に交換。
再構築が終わらないうちにもう一本が故障のアラート。

絶体絶命

純正のタイプ カバーや有線 LAN アダプターを使ってるのだが、電源入れっぱなしのままデスクトップ機の横に放置してて、数時間ぶりに [Ctrl] キーとか叩いて起こそうとするとキーボードに反応しない時がある。

画面にタッチしてロック解除のログオン画面を表示させると画面にソフトウェア キーボードが表示される。
そんな時はマウスも使用できなくなってるし、LAN も無線に切り替わっている。
ノート PC みたいな角度にしてある状態で画面の中のキーボードを叩くのも面倒だし、マウスが使えないってのがかなり厄介な状況。
ウキーです。

サインイン後、タイプ カバーや LAN アダプターを何度も付け直してみるも Surface Pro 3 は認識してくれない。
[設定]-[PC 設定の変更]-[PC とデバイス] を表示させると [Bluetooth] という項目自体が表示されていない。
ここら辺のメニュー構成は Windows 8 から 8.1 に変わったときずいぶんと変更されたので自分が Bluetooth のメニューの場所を勘違いしてしまったのかと思ってしまう。
しかし探しても探してもメニューは出てこない。
デバイス マネージャーにもおかしな状態のデバイスはない。


この現象が出た直近の 2回とも Windows Update が通知されていながらそれを無視していたという共通点があるのだが、無視していたからって外付けデバイスを使用不能にするなんて性格悪すぎじゃぁありませんかね。
もっとも、それ以前にもこの現象は何度か出ているんだけどさ。

Technet サブスクリプションでダウンロードした Visio Professional 2013 は確かに msi タイプだった。
こいつは割と早い段階で PC にインストールした。

Office 365 Enterprise E3 を契約したのが去年の秋ごろ。
そこからすぐに OneDrive for Business 同期ツールをインストールしたような気がする。
だからこの時点では msi タイプの Office がインストールされている PC に後から同期アプリをインストールすることができた。

という事は、この時点での OneDrive for Business 同期ツールはクイック実行じゃなかったってこと?
それとも msi と同居できるようになってたってこと?
それとも何かの偶然?

で、あるひ突然 PC 起動時に OneDrive for Business がエラーを出すようになった。
申し訳ありませんが、この操作を行えません。互換性のない Office 製品がコンピューターにインストールされます。
スタート メニューの Office 2013 ツールの中にあるショートカットから起動しようとしてもダメ。
Groove.exe を直接起動しようとしてもダメ。
仕方ないので一度アンインストールし、インストーラーをダウンロードしなおして再インストールしようとした。
そしたらインストーラーがエラー。
エラーメッセージは OneNote 2013 の無償版をインストールしようとした時と同じ。

インストールできない理由はとりあえず理解した。
しかし何故さっきまでは一緒に動いていたんだ? という疑問。

反応が変わるようなトリガーがなかったか思い出してみると、昨晩行った Windows Update が気にかかる。
たまっている全ての更新プログラムを払い出したんだった。

ここから試行錯誤。
システム復元で Windows Update 前の状態にしてみてから同期アプリをインストールしようとしたがダメ。
同期アプリのインストーラーが当時の物から変わってしまったのだろうか。
次いで Visio など、Office 2013 ファミリーをすべてアンインストールしてから再度チャレンジしてみたところ、見事にインストール成功だったような気がする。(記憶が薄れている)
その後に Visio を再インストール。

この状態でまたしばらく平穏な生活。

またまた Windows Update を払い出す。
OneDrive for Business がエラーで起動できなくなる。
Office 365 のサポートに質問。
「同居できない」 との回答。
同期ではなく、ネットワーク ドライブでマウントする方法を教わる。
ネットワーク ドライブで使い始める。

という流れ。


Windows Update を拒否したくはないしなぁ。。。
今はこれがベストか。

Office 365 Enterprise E3 にサービス リクエストで対応していただいたのでメモ。

結論から言うと現時点で MSI の Office 製品と、クイック実行の Office 製品を同居させることはできないとのこと。

回避策として OneDrive for Business のフォルダーを PC にマウントする方法を教わった。
一つ目の方法はネットワーク ドライブ。 もう一つは 「ネットワークの場所を追加」 ってやつ。


OneDrive for Busines のサイトをネットワーク ドライブとしてマウントする

とりあえず馴染みのあるネットワーク ドライブで OneDrive for Business の個人サイトをマウントしてみる。
WebDAV ってやつですかね、これは。

まずは自分の OneDrive for Business の URL をメモする
portal.office.com に行って Office 365 にサインインする。 この時 [サインインしたままにする] にチェックを入れておく。
ポータル画面が表示されたら OneDrive のアイコンをクリックする。
自分が今 [ドキュメント] にいることを確認。
リボンの [ライブラリ] をクリック。 [接続とエクスポート] の [エクスプローラーで開く] のアイコンをクリック。
(OneDrive の画面にリボンが表示されていなかったら右上の歯車アイコンをクリックし、[リボンを表示] のメニューをクリック)
エクスプローラーが起動し、OneDrive for Business に保存してあるフォルダーやファイルが表示される。

この時の URL がこんな感じ。
https://AAA-my.sharepoint.com/personal/BBB_BBB_BBB_BBB/Documents
AAA の部分は Office 365 に設定しテナント名で、BBB_BBB_BBB_BBB が自分の名前。

IE の [インターネット オプション]-[セキュリティ] で [信頼済みサイト] を選択して [サイト] ボタンをクリック。
上記 URL の https://AAA-my.sharepoint.com を信頼済みサイトとして登録しておく。
面倒ならば https://*.sharepoint.com としてもかまわない。
これで準備完了。

コンピュータを右クリックして [ネットワーク ドライブの割り当て] をクリック。
空いているドライブ レターを選択し、フォルダーの場所に上記 URL を入力する。
https://AAA-my.sharepoint.com/personal/BBB_BBB_BBB_BBB/Documents
エラーが出なければこれで完了。

しかし小さな問題が一つある。
作成されたネットワーク ドライブの名前がひどすぎる。
一般的に C ドライブなら "Windows" とかの名前が入っているのだが、OneDrive for Business をマウントしたドライブの名前はやたらと長い。 名前の後ろに (Z) って表示さるべきドライブ レターが欄外になってしまうほど。
ドライブの名前は自由に変更可能なのだが、一部の情報によると翌日には元に戻っていたって話もあったので経過観察する。


もう一つ。 明日以降もこのネットワーク ドライブを使い続けるための注意点。
次回起動時、ドライブの再マウントで使われる認証情報は、IE で OneDrive for Business (というか Office 365 かな) にサインインした時の [サインインしたままにする] で保存される情報に依存しているらしい。 Office 365 がサインイン状態を保持してくれるのは最大 5日間で、[サインインしたままにする] にチェックを入れなかった場合は 8 - 10時間程度とのこと。
この資格情報が有効期限になってしまうとネットワーク ドライブの自動マウントができなくなってしまうため、再度ブラウザから Office 365 にサインインする必要があるとのこと。

これらの工程がうまくいかなかった場合の参考情報が Microsoft のサポート情報 KB2616712にある。
https://support.microsoft.com/ja-jp/kb/2616712


ついでに OneDrive もネットワーク ドライブとしてマウントしてみた

今までローカルと同期させていた一般向け OneDrive も OneDrive for Business と同様にローカル同期をやめ、ネットワーク ドライブでアクセスするようにしてみた。
OneDrive をブラウザで開き、ドキュメント フォルダーに入る。
https://onedrive.live.com/?id=AAAAAAAAAAAAAAAA%21133&cid=BBBBBBBBBBBBBBBB&group=0
URL の中の BBBBBBBBBBBBBBBB の部分が自分の ID なのでコピっておく。
ネットワーク ドライブの割り当てを行うウィザードを実行し、フォルダーの欄へ以下のように入力する。
https://d.docs.live.net/BBBBBBBBBBBBBBBB
これでマウント完了。


[ネットワークの場所を追加] ってやつ

これもネットワーク ドライブをマウントするウィザードとほとんど一緒。
違いとしては、ドライブ レターを選択する必要がないのと、場所に対する名前をウィザードの中で設定できるって点。 最初から短い名前を付けられる。

各種情報によるとネットワーク ドライブでマウントした場合も、単にネットワークの場所を追加した場合も、利用する側から見ればドライブ レターの有無ぐらいしか違いがないような事が書いてあるのですが、試してみたところ次の場合は明確な違いが現れた。
複数の PC を使って作業がしやすいように IE のお気に入りを共有しているのだが、お気に入りフォルダーを右クリックして [場所] タブに OneDrive のフォルダーへのパスを入力する際、ローカル同期させている OneDrive のフォルダーや、ネットワーク ドライブとしてマウントした OneDrive のフォルダーなら OK なのだが、「ネットワークの場所」 でマウントした場合はパスが通らない。
恐らく URL 形式のパスでは設定できないのでしょう。

したがって OneDrive および OneDrive for Business はネットワーク ドライブとしてマウントする事にした。

Facebook 偉い人が Twitter を使って Flash について苦言を発言したみたいですね。
簡単に言うと、
たとえまだまだ引っ張るとしても、いつ Flash を終了させるのかを明言すべきだ

てな感じでしょうか。
同感ですね。
ブラウザ開発者にとってもスケジュールを引きやすいし、立て続けに出てくる脆弱性とそれにアップデート対応する社内のシステム管理者にとっても Flash 終了日を明言することは良いことですね。

そういえば Microsoft の中の人が今月になって 「Silverlight をやめて HTML 5 に移行しようね」 とか言ってますね。
Windows 10 に同梱される新しいブラウザー "Windows Edge" では ActiveX をサポートしないので Silverlight もサポートされないわけですが、なぜか Windows Edge にはビルトインという形でFlash が組み込まれるらしいですね。
Windows 10 には IE 11 も入ってるわけだから、Windows Edge で自腹切るんだったら Flash も切り捨ててほしかったですけどね。
それとも Windows Edge に組み込まれる Flash には脆弱性が発生しないとでも言うのでしょうかね。

Windows 7 Professional x64
Office 2010 Professional Plus x86 (VL) (Access, Excel, PowerPoint, OneNote, Outlook, Word)
Visio Professional 2013 x86 (Technet サブスクリプション版)
OneDrive 同期アプリ
OneDrive for Business 同期アプリ (x86)

という構成。
導入した順番も多分上記の通り。
バージョン違いの Office ファミリーが同居しているため、Office アップロード センターとかいうツールが 2種類常駐している。 (仕様だとする Microsoft のアーティクルを見かけたことがある)

何かをきっかけに 「申し訳ありませんが、この操作を行えません。互換性のない Office 製品がコンピューターにインストールされます。」 というメッセージが表示されて OneDrive for Business 同期アプリ (Groove.exe) が起動しなくなってしまう。
多分 Windows Update が原因なんじゃないかと思っている。
先のエントリーのように Windows Update の払い出しをした後に出ているような気がする。

Visio Professional 2013 は OneDrive for Business にネイティブ対応しているので、OneDrive for Business のサイトに保存されているファイルを直接操作することができるのだが、Office 2010 はネイティブ対応していないので同期アプリでサイトとローカルを同期させ、ローカルのファイルを Explorer から開くようにしている。

とりあえず Office 2010 Professional Plus のライセンスが 2013 で購入されたものかどうか確認し、2013 をインストール可能なら Office 2010 から Office 2013 に鞍替えしちゃえば今回の 「利用者としての問題」 は解決だね。
Office 以外のファイルも OneDrive for Business に保存するので同期ツールをインストールするのは仕方がないとしても、Office の 2010 と 2013 が同居してるところから来るトラブルの種は排除できるかな。


とか思っていても、最大の難題が残ってしまう。
無償版 OneNote 2013 を試そうとしたときにも乗り越えられなかった問題。
Windows インストーラー (MSI) によってインストールされる Office 製品と、クイック実行 (Click to Run) によってインストールされる Office 製品を同居させられないという問題。
Office 365 と無関係な Office 製品 (今回の場合は VL 版の Office や Technet サブスクリプション版の Visio) を使わなきゃならないのは固定なので避けられない。
そこに OneDrive for Business 同期ツールをインストールしたいのだが、こいつがクイック実行版のインストーラーなためにインストールできないという予想。
ここら辺の情報があまりない。
せっかく Office 365 Enterprise E3 を購入しているのだからサービス リクエストで質問してみようと思う。

Windows Update は WSUS 経由で行っている。 更新対象のクラスを 「重要な更新」 レベルのものだけにしているので、ドライバや一般的な更新は通知されない。 んでたまに明示的に Windows Update をしたくなることがあるので、[すべてのプログラム] から Windows Update を実行し、管理者による通知ではなく Microsoft の Windows Update サーバーで更新プログラムを確認する。
当然ながらいろいろな更新が溜まっているわけで、それらを払い出すべくインストールしていく。

更新プログラムの中にはインストール後に Windows の再起動が必要になるものもある。
そういう場合は Windows Update の結果表示画面に 「コンピューターを再起動してください」 というメッセージとともに [今すぐ再起動] というボタンが表示される。
無視していると今度は再起動までのカウントダウンが表示されている小さなダイアログまで出てくる。
そこまで再起動させたいのなら仕方ない。
[今すぐ再起動] のボタンをクリックする。
当然ながら Windows がシャットダウン プロセスに入る。
そこで画面いっぱいにオーバーレイされるメッセージ。


1個のプログラムが閉じられていません
----------------------------------------------------
(待機中) Windows Update
このプログラムにより、シャットダウンできません。
----------------------------------------------------
[強制シャットダウン] [キャンセル]

再起動が必要って言われたから従ったのに。。。

↑このページのトップヘ