たちまち。

即席で役に立つこと。

WindowsUpdate エラーコード0x800f0831の解決方法

f:id:aposke:20210120125106p:plain

エラーの意味

まず、このエラーの意味は以下のいずれかである模様。

・前提条件となるモジュールが足りていないので失敗する

・WindowsUpdateにうまくアクセスできない

大抵は前者が原因となるだろう。では、足りていない前提条件となるモジュールとは何か? それはログを見て調べることとなる。

ログの場所

CBS.logを確認する。以下の場所に存在している。

C:\Windows\Logs\CBS

ここにCBS.logが出力されているので確認する。

何度かWindowsUpdateを実行している場合は、CbsPersistほにゃららという過去のログになってる可能性もあるので注意。

不足モジュールを特定する

ログを開いたら、「CBS_E_STORE_CORRUPTION」で検索する。

「Store corruption, manifest missing for package: ほにゃらら~」といった文言の箇所が見えるだろう。

ここに記載されているのが不足ているモジュールである。KB番号があれば、それを控える。なければ、最下部の手順へ。

カタログサイトからダウンロードしてインストール

Microsoft Update カタログにアクセスする。

https://www.catalog.update.microsoft.com/

先ほどのKB番号を入れて検索。

ヒットしたモジュールのうち、環境にあったものを選択してダウンロードし、インストール。

インストール後、再度Windows Updateを行って通ることを願おう。

CBS.logにKB番号がない場合

CBS.logにKB番号がなくモジュール名の場合もある。

私の今回のケースでは「Microsoft-Windows-DirectoryServices-ADAM-Client-Package」が表示されていた。

このようになってくると中々解決が難しく、dismツールによるリカバリが必要な事になるようだ。

この時に必要なものは、OSのインストールディスク。

インストールディスクを用意した上で、管理者権限のコマンドプロンプトにて次を実行する。

Dism /Online /Cleanup-Image /RestoreHealth /Source:E:\sources\sxs /limitaccess

※Eドライブにインストールディスクが入っている想定

これでもうまくいかない場合は、中々文献がないので、OSのアップデートをかけてしまうなど、諦めて入れ替えてしまうような策を講じた方が早いかもしれない。

SQLServer2016のSSRSでrdlファイルがアップロードできない

f:id:aposke:20210120175443j:plain

SQLServer2016のSSRSでrdlファイルをアップロードするため、次のURLにアクセスする。

http://サーバアドレス/reports

ここからフォルダを掘ってrdlファイルをアップロードするのだが、アップロードボタンからファイルを選択してもウンともスンとも言わない。

原因

InternetExplorerでは動かない('ω')

対応策

Chrome等の別のブラウザをインストールして使う。

もしくは外部からChrome等のブラウザでアクセスすることで解決。

特に管理者実行とかはしなくてもいいみたい。

IM-Noticeでバーチャルテナント&複数ベースURLに対応する方法

環境

・AccelPlatform 2020 Summer Advanced

・バーチャルテナントで2つのテナントを運用している

テナント解決機能を用いて、各テナントには別々のURLで接続している

発生している問題

IM-Noticeの通知をクリックして画面遷移を行う際、

URL(ベースURL)が固定となってしまい、片方のテナントで正しく遷移できない。

原因

im-notice-config.xmlでベースURLを指定しているため。

解決

im-notice-config.xmlの<base-url>を空にする。

つまり、以下。

<base-url></base-url>

当初はserver-context-config.xmlのように、im-notice-config.xmlの<base-url>タグそのものをコメントアウトしていたのだが、

その場合はbase-urlが未定義のエラーが出てしまい、ハマった…

【AccelPlatform】システム管理者画面だけ静的ファイル(js等)が読み込めない

WebサーバにIISを使用した環境において、システム管理者画面(system/login)にアクセスすると、画像などが読み込めずに崩れている。

こんな感じ。

f:id:aposke:20210114154918p:plain

こういう場合、静的ファイルが配置できてないとか、設定の向き先が間違えていることが多いのだが、一般ユーザ(/login)の画面については問題ないしログインもできる。

静的ファイルがなぜ読み込めてないかというと、Chromeの開発者ツールで確認する限り、ポート番号8080のアドレスにある静的ファイルを見に行こうとしている。

つまり、IISにて静的ファイルを関連付けるルールよりも先に、Resin(8080)へURL書き換えするルールが優先されてしまっている。

しかし、一般ユーザはログインできるわけだから設定に誤りがあるわけではない。imart/loginと、imart/system/loginで何かが異なるのか。

久しぶりにハマった。原因は何なのか。

解決方法

原因はベースURLにあった。

server-context-config.xmlのベースURLがコメントアウトされていたが、指定することで正常に画面表示された。

システム管理画面についてはserver-context-config.xmlにあるベースURLを見る仕様のようで、これを定義していないとURLが正しいものにならないようだ。

今回はバーチャルテナント環境で2つテナントを構築しており、ベースURLはテナント毎に設定していたからserver-context-config.xmlは未指定で大丈夫と思ったものの、システム管理者画面については影響があるので注意されたし。

【結論これ】WindowsServerのAntimalware Executable Serviceを止める方法

1. PowerShellを管理者権限で起動する。

2. 以下のコマンドを実行する。

Set-MpPreference -DisableRealtimeMonitoring 1

3. OSを再起動する

以上。

MsMp.exeを除外するとかグループポリシーをいじるとレジストリをいじるとか色々あるけど、結局これが一番早い。

ウイルス対策ソフト入れるってのもあるけど、検証用のWindowsServerにはいちいち入れないしね。

Proxy認証が必要な環境でIM-Noticeをインストールする方法

PC版のIM-Noticeをインストールしようとする際、認証が必要なプロキシを使用していると、「407 プロキシ認証が必要です」とのエラーが出てインストールができない。

しかし、特にIM-Notice自体にプロキシの設定を行う機能はない。setup.exe.configとか置いてみても効果がない。

そこで、中継プロキシを立てることによって解決する。

1. HttpProxyAuthのダウンロード

https://www.vector.co.jp/soft/winnt/net/se499627.html

ダウンロードしたzipを任意の場所に解凍する。「HttpProxyAuth.exe」というファイルが入っている。

2. HttpProxyAuthを起動

コマンドプロンプトを起動し、解凍したフォルダに移動する。

そして、以下のコマンドを実行する。(username,password,proxyserver,portは自身の環境に合わせて書き換える)

HttpProxyAuth.exe "username:password@proxyserver:port" 8888

成功すると、「認証プロキシとの中継を開始しました。」と出る。

これを残したまま、次の設定に移る。

3. PCのプロキシ設定を変更

PCのプロキシ設定を開く。(設定>ネットワークとインターネット>プロキシ)

「プロキシサーバーを使う」の設定のところで、アドレスを「localhost」に、ポートを「8888」に設定して保存する。

要するに、先ほど中継させたプロキシサーバに向き先を変えている。

この設定後、ブラウザを使ってインターネットに接続できることを確認しておくと余念がなくて良い。

4. IM-Notice

この状態でIM-Noticeのsetup.exeを実行。問題なくインストールができる筈。

やったー!

以上。

一時期はお手上げかとも思いましたが、世の中には便利なツールを作る方がいるものですね…

A5:SQL Mk-2のデータビューから特定のカラムを探す方法

A5M2にて、非常にカラム数の多いテーブルをデータビューしているとき、「あのカラム、このへんだったっけ・・・」とスクロールして探すことがある。

これだと目を使うし時間もかかるので、次の方法がスマートで良い。

  1. 「カラム」タブを開く

  2. 該当のカラムを見つける(Ctrl+Fで検索も可能)

  3. 該当のカラムをダブルクリックする

これで、該当のカラムにジャンプすることができる。便利~!