
Windows 11、レジストリキーにASCII外の文字を使用するアプリと互換性の問題 59
ストーリー by nagazou
互換性結構やばそうなようで 部門より
互換性結構やばそうなようで 部門より
headless 曰く、
サブキーを含むレジストリキー名で ASCII 以外の文字を使用するアプリと Windows 11 との間に互換性の問題が確認されたそうだ (Windows 11 の既知の問題と通知、 BetaNews の記事、 Softpedia の記事)。
影響を受けるアプリは開けなくなるほか、BSOD が発生する可能性もあるという。また、影響を受けるレジストリキーに ASCII 以外の文字が含まれている場合は修復できない可能性もあるとのこと。そのため、影響を受けるアプリのインストールされたデバイスでは Windows 11 の提供が保留されており、問題が解決するまで強制的なアップグレードを実施しないことも推奨される。
組織で更新コンプライアンスを利用している場合、Cốc Cốc Browser のあるデバイスのセーフガード ID は 35891494、Aplicação Autenticação.gov のあるデバイスのセーフガード ID は 36632506 とのこと。
ただし、これらのアプリを実際にインストールして起動してみたが、問題は発生しなかった。これらのアプリが作成するレジストリキーはそれぞれ「HKCU\Software\CocCoc」「HKCU\Software\PTEID」であり、サブキーを含めて ASCII 以外の文字が使われている部分はない。Cốc Cốc は本件を受けた検証記事を公開し、特に問題は見つからなかったと説明している。
JPKI利用者ソフト (スコア:1)
「公的個人認証サービス 利用者クライアントソフト」(JPKI利用者ソフト)のインストーラーが途中で応答不能になるらしい。
https://forest.watch.impress.co.jp/docs/news/1358208.html [impress.co.jp]
Re:JPKI利用者ソフト (スコア:1)
Re: (スコア:0)
アップグレードとクリーンインストールでは違うのかもしれない
レジストリ キーで ASCII 以外の文字を使用するアプリの互換性の問題 [microsoft.com]
注: この問題が解決するまで、 [今すぐ更新] ボタンまたはメディア作成ツールによる手動アップグレードを試みないようお勧めします。
Windowsのレジストリって (スコア:0)
Linuxの/etc/に日本語名のディレクトリやファイル作るようなもんだよなぁ
それでまともに動くOSってかなり歪なんじゃないかな
Re:Windowsのレジストリって (スコア:1)
Unicodeで表現できる範囲は使えるようにしなきゃ駄目でしょ。近代的なOSならば。
Re: (スコア:0)
Unicodeで表現できる範囲は使えるようにしなきゃ駄目でしょ。近代的なOSならば。
/etc/オレが作ったイカしたソフト/オレの最強設定.conf
こうですね
Re:Windowsのレジストリって (スコア:1)
/etc/😺/🐻.conf です
Re:Windowsのレジストリって (スコア:1)
/etc/ด้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้/こうですか.conf
Re: (スコア:0)
多言語対応ってそういうもんでしょ
Re: (スコア:0)
unix系は近代的ではないんだから、扱える必要ないのでは?
Re: (スコア:0)
サロゲートペアとか人間とマシンが中途半端に関わるところだとね…
もう人間がレジストリ触るなって感じだろうけど
Re: (スコア:0)
個別のアプリや実装で再発明すんなって話だよ。必ず文字列扱う共通のライブラリなりを経由して、操作してればUNICODEの複雑さなんか(ライブラリ作者以外は)気にする必要はない。
Re: (スコア:0)
Windowsのビルドバージョンによってレジストリの解釈が変わってBSODが…
Re: (スコア:0)
XML 1.0がそれをやろうとして失敗してXML 1.1で対応しようとしたらXML 1.1自体が失敗して、結局XML 1.0 5th Editionで後方互換性を一部犠牲にしてまでXML 1.1の変更をほとんど丸呑みする羽目になってたな。
Re: (スコア:0)
そのへんがダメな限りLinuxデスクトップに覇権は来ないでしょうね〜
Androidみたいにガチガチに縛った時のみ例外。
…だったらWindowsの方がいいや。
Re:Windowsのレジストリって (スコア:1)
HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings
ここ見てみ。多分すごいことになってると思うよ。
VB4(?)~VB6とVBAが好きに使えるレジストリ領域で、設定保存のために気軽に使える。
ホント気軽。こんなコード。
Call SaveSetting("アプリ名だぞ", "セクションその①", "キー名の指定", "値です")
当たり前のように非ASCII使ってるはずだ。特に動作不良起きるとか聞いたことも無い。
実際、Windows10環境で簡単なプログラム組んでみたけど当然なんら支障は無いし、レジストリエディタで見れば非Asciiのキーができている。
「能」とかの「\」文字入れてもなんもおきない。(unicodeだから当たり前)
おそらくMSがWindows11で効率化か何かのためにやらかしたんだろう。
ところで、上記コードのVB6アプリを作ってWindows11で実行したけど特になんもおきなかったね。
制御文字になっちゃうとか左右逆転コードとか何か特殊な修飾文字ついてる時に起きるんじゃないのかな。
非Asciiてだけで落ちるわけではない模様。
Re: (スコア:0)
システムロケールに依存するとかじゃないの。
Re: (スコア:0)
It is the use of non-ASCII characters not in app names but in registry keys that is causing the issue. In the case of Cốc Cốc browser, it would appear to be the ố character that is causing problems, while the newly added warning for Aplicação Autenticação.gov features the characters ç and ã.
修飾文字かなと思ったけど、サロゲートでもない普通の文字みたい。
Re: (スコア:0)
見てみたけど、殆ど空っぽだな??
Re:Windowsのレジストリって (スコア:0)
そうだレジストリやめてINIファイルにもどそう
Re: (スコア:0)
いまだにASCII文字以外ダメってほうが時代遅れだと思うけどね
Unicode文字くらい使えるようにしてくんないと
Re: (スコア:0)
いいよ英数字で
ソースやDBテーブルが日本語なの気持ち悪いし
Re: (スコア:0)
いっぱい触れば慣れて気持ちよくなるから大丈夫
Re: (スコア:0)
おまわりさんこいつです
Re: (スコア:0)
/etc/ の下に多バイト文字のディレクトリやファイル作っても問題ないし、少なくともWin95からWin10までは全く問題ないよ。
むしろ、いまどきASCII以外を扱えないようなOSのほうが歪だよ。
レジストリに関しては、Win95でも UTF-16だし、Win11でも、UTF-16なのは変わらず。
UTF-16のデータで、ASCIIコード以外でおかしくなるって実装のほうが、かなり変わったことしてるはず。
Re:Windowsのレジストリって (スコア:1)
フォレンジックの記事とかでレジストリのファイル形式を解説してるのを見ると、キー保存形はAsciiなんだよね。
たぶんキーがAscii Onlyのみで構成されるときの最適化なんだろうけど、そこらのコードの改造をしくじったのかな?
Re: (スコア:0)
レジストリエディターで作成した.regファイルをバイナリエディターで開いてみ? UTF-16を使っているから。
Re: (スコア:0)
.regファイルは単に拡張子が.regのテキストファイルであって、レジストリの実体じゃないぞ……
メモ帳で開いてみ?バイナリデータじゃないから軽く開けるから
せめて System32/config/SYSTEM とか NTUSER.DAT とか見よーや
で、キーの値は Ascii か UTF-16LE なので最適化にミスってるかもという考察は別にありだと思うぞ
Re: (スコア:0)
状況を見るに多分アプリ側の問題な気がする
Re: (スコア:0)
BSoDを起こしている時点でOSの問題(アプリが独自のドライバーをインストールしたりしていない限り)。
Re: (スコア:0)
Windowsでユーザー名を全角日本語にしてると動作不良起こすゲームなんて今でも珍しくない
OSが大丈夫でもアプリ側が駄目なパターン
こういうの見てると、多言語対応してるから平気で使っていこうなんて言いにくい
Re: (スコア:0)
かなり微妙な書き方なんで、わかってて書いてるのかとも思うが。
UTF-8で処理するプログラムをWindowsへ持っていくとASCIIじゃないと
動かないことがある、と聞いた。
Windows10のどこからかは大丈夫だとかなんとか……
Re: (スコア:0)
Re: (スコア:0)
だが、日本語ファイル名があったとしても、起動しなくなるってどういうこと?
サービスが一つ二つならわかるけど、カーネルパニックって。
Re: (スコア:0)
最初からならまだしも、そんな基本的なところで何で今更バカになるんだろうな
ゼロから書き直してテストもしてないなんてことは無いだろうし
未だにこんな問題があるのか (スコア:0)
Microsoftがマルチランゲージ向けのテストをろくにしていないというのが丸わかりだ。
Re: (スコア:0)
別ACだけど、そんなコメントじゃあなたも理解してるか怪しいなぁ
だいたい一般的に「わからなくて恥ずかしい」とは、思うべきじゃないよ
コメントするやつ、質問したやつこそがえらい
くだらない質問でもコメントでも、その後に続く人がやりやすくなるからね
知らないだけで罪のない人を貶めるようなことはやめよう
Re: (スコア:0)
ユニコード対応すればオッケーなのでシングルランゲージ。
Re: (スコア:0)
これもわかってて言ってるんだろうか。
ユニコードはCJKVの異なるグリフを同一コードポイントに割り当ててるので、
ユニコードに対応するだけではマルチランゲージにならない。
Re: (スコア:0)
自分に言ってるのかな?
BSODとは穏やかじゃない (スコア:0)
てかNTカーネルは全部UTF-16(少なくとも16-bit透過)で動いてるはずなので、なんでいまさらこんなことが。
Re: (スコア:0)
コードページ概念残してるからじゃないの
Re: (スコア:0)
MSも文字列処理でコケるとは
ほんとAppleの後追いが好きだな
何色だか知らんが (スコア:0)
BSODにならずに検知して適切な処置を自動で行うか、ダイアログを表示して適切な操作をオペレータに実行させる事は出来ないのか?
NT3.5からWindows2000あたりまではそう簡単に落ちなかったように思うが。
Re: (スコア:0)
昔は実行出来なくなったことに気づかず漫然と実行を続けていただけ。
Re: (スコア:0)
BSOD になるってことは、かなり強烈なぶっ壊れ方をしているかシステム権限で変な動きしているか、って感じですかね
文字列終端の検出か文字列長の解釈あたりにミスがあって、読み書きしちゃいけない領域を触っているとか?
# そんなところに手が入るとも思えないけどね
Re: (スコア:0)
> BSODにならずに検知して適切な処置を自動で行うか
問題を検知して適切※に処置してるのがBSODではないのか?
※ 個人の感想です
「Windows 11のアクセス キーが漢字」問題がゲームボーイを使った力技で解決される (スコア:0)
だんな、もっと面白いものが
Windows11には搭載されおります。
Windowsのアップグレードゲームの隠しイベントです。
どぞ
「Windows 11のアクセス キーが漢字」問題がゲームボーイを使った力技で解決される
漢字でしか起動できないないというなら漢字を使うまでよ!!!!
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1357980.html [impress.co.jp]
Re:「Windows 11のアクセス キーが漢字」問題がゲームボーイを使った力技で解決される (スコア:1)
入力方法さえクリアできればアクセラレータキーに漢字が使えるのだという驚き
Re: (スコア:0)
日本語Windows 3.0/3.1ではアクセラレータキーに半角カナを使う(しかも日英で異なるアクセラレータキーを割り当てる)ことができましたね。