「対象のパスが長すぎます」のエラーが出てファイルを操作できないとき。

「対象のパスが長すぎます」のエラーが出てエクスプーラー上からファイルを削除する事が出来なくなったとき、コマンドプロンプトからファイル名の先頭に\\?\を付けてDELコマンドで削除すると良い。

DEL \\.\C:\Users\hogehoge\Desktop\abc長いファイル名xyz.txt

Windowsは本来なら32768文字までのファイル名を扱うことが出来る。しかし古いアプリケーションとの互換性を維持するために、普段使用できるファイル名は260文字までに制限している。先頭の\\.\は互換性のための制限を解除する指示に当たる。

C:\Windows\Tempにイベントログファイルが作成される。

C:\Windows\Tempにイベントログファイルが作成され、C:ドライブの空き容量が無くなる。

設定→システム→記憶域で見ると一時ファイルが多くの容量を使用しているが、一時ファイルの内容を確認してみると明細の合計が、一時ファイルで使用している容量よりもはるかに小さい。また一時ファイルの削除を行ってもC:ドライブの空き容量が回復しない。

実際に何処のフォルダにファイルが作成されて居るのか確認したところ、C:\Windows\Tempフォルダに大量のファイルが作成されて居ることを確認できた。どうやらC:\Windows\Temp以下のフォルダは自動では削除されないらしい。

本来ならイベントログファイルはC:\Windows\System32\winevt\Logsに作成される。検索してみたところ”Low Disk Space error due to a full Temp folder“が見つかった。どうもWindows UpdateやMicrosoft Storeの障害にともなう不具合のようである。上記の手順でトラブルシュート後にWindows Updateを適用する事で解決した。

C:\Windows\Tempにイベントログファイルが作成される。

C:\Windows\Tempにイベントログファイルが作成され、C:ドライブの空き容量が無くなる。

設定→システム→記憶域で見ると一時ファイルが多くの容量を使用しているが、一時ファイルの内容を確認してみると明細の合計が、一時ファイルで使用している容量よりもはるかに小さい。また一時ファイルの削除を行ってもC:ドライブの空き容量が回復しない。

実際に何処のフォルダにファイルが作成されて居るのか確認したところ、C:\Windows\Tempフォルダに大量のファイルが作成されて居ることを確認できた。どうやらC:\Windows\Temp以下のフォルダは自動では削除されないらしい。

本来ならイベントログファイルはC:\Windows\System32\winevt\Logsに作成される。検索してみたところ”Low Disk Space error due to a full Temp folder“が見つかった。どうもWindows UpdateやMicrosoft Storeの障害にともなう不具合のようである。上記の手順でトラブルシュート後にWindows Updateを適用する事で解決した。

Access Runtimeをインストールしようとしたら32bit版も64bit版もエラーになる

Access Runtime 2016 64bit版のインストールを行おうとすると「次の32ビットバージョンのOfficeプログラムががインストールされているため、64ビットバージョンのOfficeはインストールできません:Office 16 Click-to-Run Extensibility Component」とのエラーになる。

この環境は32bit版だったかと思い直し、 Access 2016 Runtime 32bit版のインストールを行おうとすると 「次の64ビットバージョンのOfficeプログラムががインストールされているため、32ビットバージョンのOfficeはインストールできません:Office 16 Click-to-Run Extensibility Component」とのエラーになる。

・・・どうしろとorz

Access Runtimeインストールの基本制約

Office 2016(2019にも)にはClick-to-Runインストール版 (以下C2R版) とMSIインストール版(以下MSI版)がある。ライセンス上はどちらをインストールしても構わないが、それぞれインストール方法が異なる。プレインストールの場合、昔はMSI版が多かったが、最近は C2R版が入って居ることが多い。そしてC2R版とMSI版には、それぞれ32bit版と64bit版がある。

Access RuntimeにもC2R 版とMSI版がある。C2R版はOffice 365 Access Runtimeと言う名称で、MSI版はAccess 2016 Runtime (ないし2019)と言う名称で提供されており、それぞれ32bit版と64bit版がある。

Access RuntimeをインストールするにはC2R版かMSI版か、32bit版か64bit版かの区分が完全に一致している必要がある。さらにMSI版の場合には2013と2016、2019は混在できないのでバージョンを統一する必要がある。

過去にプレインストール版が入っていた

当該環境はプレインストール版(C2R版)でインストールされていたため、アンインストールしてMSI版を入れ直していた。だが、どうもC2R版の残骸が残ってしまっているのが原因のようである。

アンインストールが完全に行われていないためにトラブルが発生することが度々あるようで、Microsoftのホームページに完全にアンインストールするための方法が書かれている。

PC から Office をアンインストールするの「オプション 2 – アンインストール サポート ツールを使用して Office を完全にアンインストールする」に従って、アンインストール補助用の実行プログラムをダウンロードして、実行することで残骸も含めて消せるようである。無論現在インストールされているMSI版も含めてアンインストールされてしまうのであろうけど・・・

余り褒められた話しではないが、作業時間も押してきているので、Access Runtime 2010のインストールでお茶を濁してしまった。でも恐らくは上記手順でOffice 2016の残骸を削除すればインストール出来るものと思われる。

Windows7でWindowsUpdateの再起動中に15%程度でとまってしまう

Windows 7 Professional (x64)の環境において、Windows Updateで繰り返しエラーが発生。OSの再起動中に毎回15%程度のところでエラーが発生して、巻き戻されてしまいます。久しぶりにC:\Windows\Logs\CBS\CBS.LOGの出番です。

2019-01-22 10:17:51, Info                  CBS    Waiting for poqexec.exe to complete...
2019-01-22 10:17:56, Info                  CBS    Waiting for poqexec.exe to complete...
2019-01-22 10:18:01, Info                  CBS    Waiting for poqexec.exe to complete...
2019-01-22 10:18:10, Info                  CBS    SQM: Reporting poqexec status with status: 0xc0000043, failed file: conhost.exe, interfering process: tmbmsrv.exe,conhost.exe,conhost.exe, context: Startup, first merged sequence: 1613
2019-01-22 10:18:10, Info                  CBS    SQM: Upload requested for report: PoqexecStatus, session id: 142861, sample type: Standard
2019-01-22 10:18:10, Info                  CBS    SQM: Ignoring upload request because the sample type is not enabled: Standard
2019-01-22 10:18:10, Info                  CBS    Failure in poqexec.exe while processing updates. [HRESULT = 0x80070020 - ERROR_SHARING_VIOLATION]
2019-01-22 10:18:12, Info                  CBS    Set the CCP impactful-commit disabling value
2019-01-22 10:18:12, Error                 CBS    Startup: Failed while processing critical primitive operations queue. [HRESULT = 0x80070020 - ERROR_SHARING_VIOLATION]
2019-01-22 10:18:12, Info                  CBS    Setting ExecuteState key to: CbsExecuteStateResolvePending | CbsExecuteStateFlagRollback
2019-01-22 10:18:12, Info                  CBS    Progress: UI message updated. Operation type: Update. Stage: 1 out of 1. Rollback.
2019-01-22 10:18:12, Info                  CBS    Startup: Processing advanced operation queue, startupPhase: 0
2019-01-22 10:18:12, Info                  CSI    00000006 IAdvancedInstallerAwareStore_ResolvePendingTransactions (call 1) (flags = 0000000a, progress = NULL, phase = 0, pdwDisposition = @0x1e0f9e0
2019-01-22 10:18:12, Info                  CBS    Startup: Changing logon timeout to a static timeout: 10800000
2019-01-22 10:18:13, Error                 CSI    00000007 (F) Error: ResolvePendingTransactions called after poqexec failure (call 1)
  Status = STATUS_SHARING_VIOLATION, Operation = DeleteFile, DiagString = [l:70{35}]"\??\C:\windows\System32\conhost.exe"
[gle=0x80004005]
2019-01-22 10:18:59, Error                 CBS    Startup: Primitive operations failed, startupPhase: 0.  The transaction will be cancelled. [HRESULT = 0x80004005 - E_FAIL]
2019-01-22 10:18:59, Info                  CBS    Setting ExecuteState key to: CbsExecuteStateInitiateRollback | CbsExecuteStateFlagPrimitivesFailed
2019-01-22 10:18:59, Info                  CSI    00000008 Creating NT transaction (seq 1), objectname [6]"(null)"
2019-01-22 10:18:59, Info                  CSI    00000009 Created NT transaction (seq 1) result 0x00000000, handle @0x12c
2019-01-22 10:19:05, Info                  CSI    0000000a@2019/1/22:01:19:05.296 CSI perf trace:
CSIPERF:TXCOMMIT;2808573

Errorが発生している箇所を見ると、conhost.exeのところでERROR_SHARING_VIOLATION(0x80070020)が発生しているようです。
ERROR_SHARING_VIOLATION はほかのプロセスとの排他処理によってエラーが発生していることを示しています。

注目するのはErrorの少し手前の行。”SQM: Reporting poqexec status with status: 0xc0000043, failed file: conhost.exe, interfering process: tmbmsrv.exe,conhost.exe,conhost.exe, context: Startup, first merged sequence: 1613″のところです。 “failed file: conhost.exe”に続く”interfering process: “のところで、原因となった可能性のあるプロセスが列挙されています。そこには”tmbmsrv.exe”の表記が・・・・

“tmbmsrv.exe”ってトレンドマイクロのアンチウィルス・・・セーフモードで起動して、コントロールパネルのサービスから アンチウィルス のサービスを無効にして再起動。アンチウィルスが動作しない状態にして、Windows Updateを実行すると・・・成功しました。

事務に使う業務用パソコンに限ってはVDIも良い

最低限必要なパソコンのスペックって」の話の続き。

事務用パソコンに限った話だが、もし一拠点の事務用パソコンの台数が15台以上あるならVDI(Virtual Desktop Infrastructure、仮想デスクトップ基盤)を検討してみるのもよい。

VDIには様々なソリューションがあるが、おすすめしたいのは、最もコストパフォーマンスに優れる、Windows Server 2016にRDPで接続する、正確にはSBC(Server Based Computing)と呼ばれるタイプ。

パソコンを購入する場合、処理のピークを短い時間で終わらせるために十分な性能のCPUやストレージを用意する必要があります。ですが処理のピークが続くのは数秒(ピークが数秒で終わる程度の性能を持つCPUとストレージを準備したのだから当然だ)でしかありません。それ以外の時にはパソコンの持つ性能の数%しか使っていないので、潜在性能の10%も活用できていない事になります。

もしCPUやSSDを複数のユーザーで共有できるなら、メモリを16GBも積めば1台のパソコンで8人程度が同時に作業しても、体感速度はほとんど変わらないはずです。

そこで十分に高い性能を持つサーバーを用意します。そのサーバにシンクライアント端末という低性能な端末(モニター、マウス、キーボードが繋がっているだけで、実質的にCPUにメモリやストレージはありません。単体ではパソコンとして機能しません。)で接続して使います。それでもユーザーにとっては、普通にパソコンを使っているのと操作は変わりません。

仮に15人の場合には概ね下記のような金額になります。
サーバー(8コアCPU、メモリ32GB、SSD1.4TB RAID5)が90万円。シンクライアント(モニター込み)が5万円×15台で75万円。Windows Server 2016のCALが5000円×15台で7.5万円。割安なOfficeのプレインストールモデルを使うことは出来ないので、Office 2016 Std(約5万円)を購入するか、Office 365 ProPlus(月額1,310円)を契約する必要があります。トータルで250万円ぐらいで導入できるはずです。

15万のパソコンを15台買うなら225万円ですから25万円ほど割高になっています。でもそれ以上にメリットもあるのです。

・メンテナンスの手間が激減
サーバーにだけ設定すればよいので、手間が激減します。新しいプリンタのドライバや業務アプリケーションをインストールするにも、15台のパソコンにインストールしてあるく必要はありません。VDI用サーバ1台にインストールすればOKです。

・バックアップの手間が激減
クライアントパソコン内に保存されている設定やデータのバックアップはかなり大変です。実際にはパソコン内のデータバックアップは諦めている事が多いでしょう。VDI用サーバーのバックアップさえ取っていれば、各自のデスクトップやマイドキュメントのファイルもしっかりバックアップをとれます。

・故障時の復旧作業が激減
パソコンが壊れた場合、新しいパソコンに必要なアプリケーションのインストールや設定を施し、故障したパソコンのHDDが必要なデータを取り出してコピーする。場合によっては1日~2日は潰れてしまいます。VDI環境なら設定やデータはVDI用サーバーに保持されているので、新しいシンクライアント端末をつなぐだけで復旧します。予備にシンクライアント端末を1台余計に買っておくなら、30秒で復旧できるのです。
サーバが壊れた場合ですが「5年間24時間365日4時間以内に訪問修理」とかを購入時に申し込んでも+30万円程度です。年間6万円程度の支出に過ぎません。同じ事をパソコンで申し込んだら+100万円、年間20万円程度かかるであろう事を考えたら、安いものです。

・体感速度はむしろ向上
サーバー全体ではCPUのコア数もSSDの速度も、個人にパソコンを与えていた場合の2倍ほどになってます。したがってピーク時の処理性能も個人にパソコンを持たせていたときの2倍、ユーザーを待たせるような重たい処理も短時間で終わるようになり、体感速度も増します。

・在宅勤務やサテライトオフィスにも対応
VPNによる社内ネットワークへの接続方法さえ準備すれば、流行の在宅勤務やサテライトオフィスにも対応できます。全従業員を対象とするのは内部統制的な難しさもあるでしょうけど、部長の自宅にVPNルーターとシンクライアントを設置(10万円程度)するだけで「自宅でも会社と同じ作業ができる」ぐらいの事は簡単に実現できます。

ちなみに15台だと25万円ほど高くついてますが、30台だとサーバ(16コアCPU、メモリ64GB、SSD1.4TB RAID5)の価格が約160万円、他は同じだから総額で約320万円。15万のパソコンを30台買うと450万円なので、130万円くらい安くなる計算です。こうなると事務用パソコンに限っては、VDIを使わない理由は無いですね。

ちなみに技術者用パソコンをWindows Server 2016のRDPで共有するのは無理です。一般ユーザーよりも強い、管理者権限やデバッグ権限を与えてもらわないと仕事になりません。頻繁に管理者権限で設定を変更することになるので、ちょっとしたミスで全員巻き添えで仕事がとまる可能性が高いです。Hyper-VやVMWareを使ったVDIなら行けますが、さらにコストが高くなります。

またデザイナ用パソコンをVDIにするのは完全に無理です。GPUが使えなくなる上に、画面上の表示品質下がるので、おそらく仕事になりません。

最低限必要な業務用パソコンのスペックって

低スペックPCを使わせる事の損失・・・
人権を満たす最低スペックのパソコンとか、Twitterで話題になっているようなので、補足説明ておく。

・事務職・・・15万円前後

CPU:Intel i5 or i3(4コア)
メモリ:8GB(4GB×2枚)
ストレージ:SSD 128GB
モニタ:24インチ(設置スペースがあるならデュアルモニター)

事務職でこれが最低スペックな理由は、これ以上スペックを落とすと価格差以上に性能が低下してしまうため。例えばCPUをCeleronに落とすと数千円安くなるが、性能は半分以下になる。モニターも20インチにすれば数千円安くなるが、A4資料を画面上で閲覧することすら困難になる。
メモリが8GBなのには二つの理由がある。
一つ目はデュアルチャンネルを有効にするため。同サイズのメモリを2枚さすとデュアルチャンネルが有効になってメモリアクセス速度が2倍になる。同一メモリサイズでもデュアルチャンネルが有効か否かで実行速度が30%前後異なってくる。2GB×2枚でもデュアルチャンネルは有効になるが、2GBのメモリカードはほとんど製造されておらず流通していない。メーカーによっては16GB(8GB×2枚)以上にしないとデュアルチャンネルが有効にならない場合もある。この場合には16GBにしたほうが良い。
二つ目はメモリスワップが発生した場合にSSDの寿命が短くなってしまうこと。最近のアプリケーションはメモリをたくさん使って早く動かす設計になっていることが多い。そのためWEBブラウザだけでも1GB程度のメモリを使ってしまうことは珍しくない。SSDの欠点は書込み可能回数に制限があり、頻繁に書込みを行うと寿命が短くなることにある。メモリが不足してメモリスワップが発生し、SSDへの書き込み回数が増えると、SSDがより早く寿命を迎えることになる。SSDの容量を増やせば書込み可能回数も増やせるが、SSDよりメモリのほうが安い。
SSDが128GBとかなり小さいのは、日常的に使用するデータはファイルサーバに保存していると考えているため。128GBでも事務作業で使用するようなアプリケーションのインストールや、一時的な作業ファイルを置くのに、困ることは少ないと思う。128GBより小さくすること、Windows Updateのための作業領域が不足するなどの問題に直面する。

・技術職・・・30万円前後

CPU:Intel i5 又は i7
メモリ:16~32GB
ストレージ:SSD 256GB+HDD 数TB
モニタ:27インチ(設置スペースがあるならデュアルモニター、2台目は24インチでも可)

最低メモリが16GBに増えている。エンジニアは複数のツールを同時に起動して作業する機会がどうしても増える。統合開発環境などは、メモリを多く使う事が多い。WEBブラウザに、Officeに、メールに、統合開発環境に、ビジネス用チャットに・・・と立ち上げていくと到底8GBのメモリ消費では収まらない。最低でも16GB必要となる。

できれば32GBほしい。32GBあると仮想OSをストレスなく利用できる。仮想OSを使うと、テスト用のOSを作業前に保存していた状態に数十秒で戻すことが出来る。そのためインストールのテストや、環境を壊す恐れのあるようなテストが非常に捗る。仮想OSを使えないと、たびたび半日かけてOSを戻す羽目になるので、かなり大変なのだ。
またメインで使用している環境に共存できないソフトウェアを使ってテストしなければならない場合も便利である。特定バージョンのOSでしな再現しない問題や、古いバージョンのOfficeでしか再現しない問題などをテストするために、別途パソコンを用意してゼロからインストールしていては時間がかかりすぎるのだ。

CPUは早いに越したことはないですが、i7以上のCPUや、高速なグラフィックスカードは機械学習でもするのでない限りは必要ないです。

・デザイン職・・・50万円前後

CPU:Intel i5 又は i7
メモリ:16~32GB
ストレージ:SSD 256GB(容量不足時にはHDDを追加)
GPU:5万円前後
モニタ:27インチ(カラーマネジメント対応)

CADやCG、動画を扱うなら上記の技術職向けPCに加えて、5万円程度のGPUが必要になります。
そして何より重要なのがモニターです。安物のモニターだと微妙な色の差を視認できなかったり、モニター毎の発色の差を微調整する機能が不足していて、色校正に手間どってトラブルの原因になります。カラーマネジメント機能のついたモニターは、一般的な事務用モニターの価格より2~3倍ほど高いです。27インチモニターだと20万円ちかい金額となります。
意識せずにマックを使っているデザイナーも少なくないですが、デザイン職にマックが支持されてきた理由もここにあります。マックのモニターは最初から同じ発色になりように微調整されて販売されており、カラーマネジメントの云々を意識する必要がないのです。カラーマネジメント機能のついたモニターを買うと、結果的にマックと変わらない値段になってしまいます。もしデザイナーがWindowsではなくてマックで仕事をしたいというなら、素直にマックを買ってあげたほうが安いです。

でも、事務用に限るならパソコンを使う事自体を止めてしまう手もあります。「事務用に限ってはVDIの方が良いかもよ?」に続きます。

Windows 7以降にオフライン環境で.NET Framework 3.5をインストールする

Windows 7移行のOSに.NET Framework 3.5をインストールする場合など、コントロールパネルの「Windowsの機能の有効化または無効化」にて機能の追加をする場合、最新のモジュールを試みるために、インターネット接続に制限のある環境ではエラーとなる。

この場合にはコマンドラインからDISMコマンドを実行して、インストールメディアからインストールする事で回避できる。例えばWindwos 7上で.NET Framework 3.5をインストールする場合には、下記のコマンドを実行する。(D:はインストールメディアのあるドライブ)

DISM /Online /Enable-Feature /FeatureName:NetFx3 /Source:D:\sources\sxs\

参考:Deploy .NET Framework 3.5 by using Deployment Image Servicing and Management (DISM)

低スペックPCを使わせる事の損失・・・

「4年前のPC利用は約35万円の損失」――マイクロソフト「最新PC買った方が得」

古いPC もそうだが、10万円程度の安いPCを買い与えるのも問題で、低スペックなパソコンを従業員に使わせることによる損失というのはすごく大きい。

実際「自宅ならすぐに終わる仕事なのに、会社だとスペックの不足で仕事にならない・・・」等という話をしばしば耳にする。

15万円のPC(Intel Core i5、SSD 125GB、メモリ8GB、モニタ24インチ)を与えれば良いところ、5万円節約して10万円のPC(Intel Celeron、HDD 500GB、メモリ4GB、モニタ17インチ)を使わせる。その結果、例えばファイルを開くのに30秒余計な時間がかかる。

正社員の場合には年収400万円程度でも、間接人件費も含むと時給2,500円程度は支払っている。10秒の人件費に7円。ファイルを開くのに30秒余計に待たせれば20円、一日に20回ファイルを開くな400円、営業日数240日で96,000円になる。5万円の経費節約のために、年間96,000円の無駄なコストを負担し続けている。

もちろん、無闇に高性能なパソコンを買い与える必要は無いが、職務に合わせて最低必要なスペックは考えて与えなくてはならない。

PS1・・・同じ事はインターネット接続でも言える。

PS2・・・参考までに私が見積もるなら、こんな感じ。
CPUを1ランク落としてでも、メモリとSSDを購入した方が、体感速度は早い。
メモリはデュアルチャンネルが有効になるように、必ず2枚となる構成にする。よくよくカタログを見ると8GB x 1枚となっている事があるので注意。デュアルチャンネル有無で20%程度は体感速度が異なる。

事務職・・・15万円前後
CPU:Intel i5
メモリ:8GB
ストレージ:SSD 128GB
モニタ:24インチ(設置スペースがあるならデュアルモニター)

技術職・・・30万円前後
CPU:Intel i5 又は i7
メモリ:16~32GB
ストレージ:SSD 256GB(容量不足時にはHDDを追加)
モニタ:27インチ(設置スペースがあるならデュアルモニター、2台目は24インチでも可)
GPU:そこそこのものを、機械学習とかするなら高スペックのものを。

MozillaやThunderbirdもGroupPolicyで設定出来るらしい(覚え書き)

MozillaやThunderbirdもGroupPolicyで設定を制御できると聞いて色々と調べてたのだけど、事前にPluginをインストールしておく必要があると知って挫折。対象となるPCはそれほど多くないはずだけど、いまからPCに設定して歩くというのは、ちょっと非現実的にて。

ただ無償で使えるMUAの選択肢はそれほど多くなく、もしかしたらThunderbirdを展開する流れもあり得なくはない。機会があったら設定してみようと思う。

参考:https://addons.mozilla.org/ja/thunderbird/addon/gpo-support-for-firefox-and-th/