Ryo's Log

26才(現在31才)が一回人生を仕切り直して始めていくブログです。主に技術ログ。

Google Chromeが証明書設定がwindows システムと別になる予定

以前から話題にはあったけれど明確に予定が掲示されたので確認をしておく。

Root store policyが独自のものになるというのは証明書のインポートが別になるということで間違いないのだろうか。 わかりやすくいうとFirefoxと同じ形式になり、windowsとは別に追加作業が必要になると思われる。

"Chrome 105以降、AndroidChrome OSLinuxWindowsmacOSでは、ホストOSのRootストアに依存する方法から、プラットフォームごとに独自の方法に移行する予定です。" ※The Chromium Projectsを参照 www.chromium.org

6月の時点で102.0.5005.63になっているので、アップデートサイクルから考えると9月ごろに仕組みが変更になると予想。 ※Chrome Release Cycleを参照 chromium.googlesource.com

"If you're responsible for a CA that only issues certificates to your enterprise organization, sometimes called a "private" or "locally trusted" CA, the Chrome Root Program policy does not apply to or impact your organization’s use cases. Enterprise CAs are intended for use cases exclusively internal to an organization (e.g., a TLS certificate issued to a corporate intranet site)."

「プライベート」または「ローカルに信頼された」CA と呼ばれる、企業組織に対してのみ証明書を発行する CA の責任者の場合、Chrome ルート プログラムのポリシーは、その組織の使用事例に適用されたり影響を与えたりすることはありません。エンタープライズ CA は、組織内部でのみ使用されるケースを想定しています(たとえば、企業のイントラネット サイトに発行される TLS 証明書など)。

この文章が本当なのであれば社内のルート証明機関設定で新しく設定する必要がないように思えるが本当なのか疑わしい。

”The initial Chrome Root Store contains a variety of existing CA certificates that have historically been distributed as trusted on the majority of Chrome’s supported platforms. This promotes interoperability on different devices and platforms, and minimizes compatibility issues as the transition to the Chrome Root Store takes place. This should ensure as seamless a transition as possible for users.”

初期のChrome Root Storeには、これまでChromeがサポートするプラットフォームの大半で信頼できるものとして配布されてきた、さまざまな既存のCA証明書が含まれています。これにより、異なるデバイスやプラットフォームでの相互運用性が促進され、Chromeルートストアへの移行に伴う互換性の問題を最小限に抑えることができます。これにより、ユーザーにとって可能な限りシームレスな移行が実現されるはずです。

初期から入れてくれているとあるがどうなのか。よくわからん。

Microsoft Edge「Internet Explorer モードでサイトの再読み込みを許可」が表示されない ドメイン環境下+Edge version最新なのに

苦労したIEモードの設定

社内ではIEからMicrosoft Edgeへの切り替えがほぼ完了している。 一部IEモードを利用した業務はあるがIEでないとできないものは今のところない。 2カ月ぐらいかけてEdgeのIEモードとグループポリシーの関係などを調べたので わからないことは少ない状況だ。

けれど 社内の中核になるシステムのEdge対応が進められている中で、その開発に利用しようとした端末でIEモードの切り替えに不良が発生した。

IEモードの切り替え不良

IEモード自体への切り替えはうまくいっているけど真っ白になってしまう。 同じ機種、同じ設定の別端末では問題が発生しないが準備した開発端末では発生する。

ユーザ固有か端末固有か、Edgeのバージョン、IEモードの設定など調べてもなかなか判明せず。 社内ではドメインGPOで管理しているため、ログインするユーザにEdgeの設定を付与している。

GPOが当たっているか確認するためにabout:policyで確認するも すべて正常な端末と同じようだ。

一応念のため設定も確認しておこうと思ったら 設定>既定のブラウザ>Internet Explorerの互換性 を確認すると「Internet Explorer モードでサイトの再読み込みを許可」がない。↓画像は正常端末

ここで真っ白になるのはIEモード切替後再読み込みが行われないことに気づく

ちなみに少し前まではドメイン環境の端末では同様に表示されない仕様でした。 Edgeのバージョンが上がったりで仕様変更になりドメイン環境では「Internet Explorer モードで未構成のサイトを再度読み込みできるようにする」ポリシーを有効化することで 表示される

ちなみに利用Edgeは現在の最新バージョン 102.0.1245.33 (公式ビルド) (64 ビット)

Edgeのリセットや修復を行っても変わらない。

何か差異がないか確認するためabout:compatで現在のIEモードについて調査をする。

差異を発見

するとInternet ExplorerAPIバージョンが他と比べると低いことに気づいた。

そのためwindows updateをカタログで調査して5月分のアップデートを適用。 APIバージョンは16になりそして再読み込みがうまくいった!

そんなのわかんないよ(´・ω・`)

■参考サイト

jpdsi.github.io

docs.microsoft.com

docs.microsoft.com

support.microsoft.com

■同じような方がいらっしゃったようです。もっと早く出会いたかった

https://answers.microsoft.com/ja-jp/microsoftedge/forum/all/internet-explorer/a214fb02-a350-405c-a809-5d7a6b6bccec

32bit windows 10 ではメモリは3GB以上増やせない

以前どこかでやってしまったけどずいぶん昔過ぎて忘れてしまっていた。

PCの動作が重いということでPCを確認。

PCはDELLのvostro 430 WIndows7 からwindows10へアップデート済み core i-5 850 メモリは3GB HDDはある程度余裕がある状態

この時点でメモリが3GBであることに違和感があったが 余裕がなくてメモリ増強していなかったのかなと考えてしまった。

タスクマネージャから状況確認。

メモリとディスクが常に100%になってしまっている。 このことからハード面での遅延と認識した。

メモリの型番はPC3-10600だったので予備があることがわかり 時間をとって換装した。

PCのハードを確認すると16GBとあったのでちゃんと認識している。

が動作は安定しない。

Windows OSはメモリ4GB以内利用の制限あり

32bitクライアントOSで利用できる物理メモリは最大4Gbytesまで:Tech TIPS - @IT

ちゃんと認識しているか確認を始めると タスクマネージャのパフォーマンスタブ上は3GBのまま。

認識していない?ということで調べるとだめだったことがわかりました。 最近は64bitしか触れていないからたまに32bitがくるとちゃんと歴史を感じさせてくれます。

別の動作改善法

いろいろありそうだけど今回は端末交換になりそう

www.pcdepot.co.jp

Outlookのメール受信不良・フリーズ

Outlookでメールを受信するとOutlookがフリーズする事象が発生。

Outlook以外はフリーズしないため、タスクマネージャにて状況を確認。

みると「Windows Push Notifications User Service_xxxxxx」というサービスがメモリをすべて使ってしまっているようだ。

xxxxxxについては再起動をすると名前が変わってしまう動的なサービスのようである。

タスクを終了しようとするとウィンドウが表示されるが終了してもシステムに大きな影響はないようだ。

ただこちらを終了してもメールを受信するたびにフリーズしてしまう。

なのでOutlookのタスクバーの設定から通知をOFFに。 windowsの設定>システム>通知とアクションから通知をOFFにしたところフリーズは解消されOutlookでメールの受信はできるようになった。

が数時間たつと「Windows Push Notifications User Service_xxxxxx」が再度メモリ使用率が上昇してフリーズが起こるようになった。

これはサービスから停止させても意味がないようだ。

システムのサービスらしくGUI上からはスタートアップの停止もエラーが表示されてできない

レジストリから以下の値を0にすると止められるらしいが今回は試さなかった。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servcies\WpnUserService\start

以下のフォルダに通知のデータベースがあるようなのでこちらを「Notifications_old」に名前変更をする ※「Windows Push Notifications User Service_xxxxxx」サービスを一度停止する必要がある。できない場合はPC再起動直後に行う C:\Users\YOURUSERNAME\AppData\Local\Microsoft\Windows\Notifications

サービスを再起動すると「Notifications」フォルダが作成されている。

これで解決できない場合は コマンドプロンプトsfc /scannow→DISM.exe /Online /Cleanup-image /Restorehealthで対応

今のところフリーズはなくなったようだ。

powershellでcsvデータをSQL挿入/更新。insertとupdateを一度の読み込みで。

SQLを組む機会が巡ってきた。 MS SQL Server EXPRESSではSQL Server Agentが使用できないため SQL文を作成し、定期実行というのができないので powershellSQLを実行できるようにしてタスクスケジューラに配置する必要がある。

■install-module sqlserver

powershellsqlserver用モジュールをインストールする

■write-sqltabledataとinvoke-sqlcmd

データ変更には2種類のコマンドがあるがinvoke-sqlcmdを選択 write-sqltabledataには認証が-credentialでの接続しかできず、うまく接続ができなかったため invoke-sqlcmdではuserとpasswordが明確に設定できた。

sqlのクエリ

csvファイルを取り込む際はbulk insertが使われるが 今回の仕様として何度も取り込むので、このままでは主キーがかぶってしまい更新が行われない。

そのためmergeとusing openrowset ( bulkを利用することにした。 これを利用する場合はformatファイルが必要になるため別のコマンドで作成する

openrowsetはファイルからリモートテーブルを準備できるコマンド 単品でデータが読み込めているかどうか確認をしてから 組み込んだ。

Invoke-Sqlcmd -query "
(select  * from  openrowset ( bulk 'c:\temp\add.csv',
                    formatfile = 'c:\temp\test.xml',
                    Firstrow = 2) as new) " `  -ServerInstance '.\SQLEXPRESS'
■コマンド内容(列名は適当に伏せています)
Invoke-Sqlcmd -query "
merge into [dbo].[test]
using   openrowset ( bulk 'c:\temp\add.csv',
                    formatfile = 'c:\temp\test.xml',
                    firstrow = 2) as new
ON [test].[a] = new.[a]
WHEN MATCHED THEN
    update set
        b = new.a,
        c = new.b,
        d = new.c,
        e = new.d,
        f = new.e
WHEN NOT MATCHED THEN
    insert (
        a,
        b,
        c,
        d,
        e,
        f
        )
    values (
    new.a,
    new.b,
    new.c,
    new.d,
    new.e,
    new.f
    );" ` -ServerInstance '.\SQLEXPRESS'
■フォーマットファイル作成
bcp [dbo].[test] format null  -S '.\SQLEXPRESS' -f c:\temp\test.xml -x -c -T -t ','
■フォーマット内容
<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="50" COLLATION="Japanese_CI_AS"/>
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="50" COLLATION="Japanese_CI_AS"/>
  <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="50" COLLATION="Japanese_CI_AS"/>
  <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="50" COLLATION="Japanese_CI_AS"/>
  <FIELD ID="5" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="50" COLLATION="Japanese_CI_AS"/>
  <FIELD ID="6" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="50" COLLATION="Japanese_CI_AS"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME='a' xsi:type="SQLVARYCHAR"/>
  <COLUMN SOURCE="2" NAME="b" xsi:type="SQLVARYCHAR"/>
  <COLUMN SOURCE="3" NAME="c" xsi:type="SQLVARYCHAR"/>
  <COLUMN SOURCE="4" NAME="d" xsi:type="SQLVARYCHAR"/>
  <COLUMN SOURCE="5" NAME="e" xsi:type="SQLVARYCHAR"/>
  <COLUMN SOURCE="6" NAME="f" xsi:type="SQLVARYCHAR"/>
 </ROW>
</BCPFORMAT>
csvファイルの文字コード

csvはshift-jisで保存

■所感

1日かかってしまった。openrowsetの仕組みを確認したことで進んだ気がする。