トップ ソフト 雑記 日記 リンク

2018年5月22日火曜日

Windows10 1803でスタートメニューが開かなくなった(解決済)

●結論は一番下に

Windows10 1803アップデート自体は特に問題もなかった(Edgeの動きがおかしくなりましたが、常用していないので、特に問題は無し)のですが、先日パソコンを終了しようと思ってスタートメニューをクリックすると、何も反応がない。訓練されたWindowsユーザーなので、まあExplorer.exeがハングアップしていて動かないのだろうと思い、そのときはAlt + F4で電源を落としました。

それ以降、いくら再起動してもスタートメニューが開かない。これはなんかおかしいなと気が付いて検索してみると、どうやら最近のスタートメニューはExplorer.exeではなくShellExperienceHost.exeという別のプロセスで動作しているらしいです。そして、スタートメニューが開かないのはこの実行ファイルが暴走しているから、タスクマネージャーから強制終了させるといいらしい。
しかしタスクマネージャーを確認してもそんな実行プロセスはいません。

ShellExperienceHost.exeが使用するスタートメニューの情報を記録しているタイルデータベースというものが壊れている場合、別のアカウントを作って動作すればそのアカウントに乗り換えろという指示も出てきました。
別アカウントを作ってもアプリの再インストールや再設定をしないといけないので、あまりやりたくないなと思いつつ試してみますが解決せず、どことなく一安心。

他に検索で出てくるディスク障害を解決するコマンド類
dism /online /cleanup-image /restorehealth
sfc /scannow
も試してみましたが効果が無く。
また、スタートメニューの問題を対処するという、そのものズバリのstartmenu.diagcabというツールもあったのですが、「Microsoft.Windows.ShellExperienceHost Microsoft.Windows.Cortanaアプリケーションを正しくインストールする必要があります。」というエラーと未解決という表示。対処とは🤔

他に出てくる対処として、PowerShellを使ってアプリを再インストールしろという
Get-AppXPackage -AllUsers |Where-Object {$_.InstallLocation -like "*SystemApps*"} | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
しかしこちらも
Add-AppxPackage : 次の HRESULT で展開に失敗しました: 0x80073CF6, パッケージを登録できませんでした。
エラー 0x80073B1F: 次のエラーが発生したため、Microsoft.Windows.ShellExperienceHost_10.0.17134.1_neutral_neutral_cw5n1h2txyewy パッケージを登録できません: ResourceMap が見つかりません。
。パッケージの 'resources.pri' ファイルが有効であることを確認してください。
注意: 詳細については、イベント ログで [ActivityId] b5b9cffb-ef47-0003-f3e0-b9b547efd301 を検索するか、コマンド ラインの Get-AppxLog -ActivityID b5b9cffb-ef47-0003-f3e0-b9b547efd301 を使用してください
発生場所 行:1 文字:89
+ ...  | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.I ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (C:\Windows\Syst...ppXManifest.xml:String) [Add-AppxPackage], IOException
    + FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.AddAppxPackageCommand
というエラー。
このPowerShellスクリプトは、インストール先にSystemAppsを含む既にインストールされているパッケージを再度登録するという物のようです。
どうやら、C:\Windows\SystemApps\ShellExperienceHost_cw5n1h2txyewy\resources.priが壊れているようで、そもそも壊れたファイルを再度登録しようとしても登録できないですね。

ふと思い出してシステム復元ポイントからの復元を試してみたのですが、一週間分2回ほどしか残っておらず、どちらもSystemAppsが何らかの問題で戻せなかったというエラー。復元ポイントを設定する時点で壊れていたようです。復元ポイントとは🤔

あと残されている提示された対処法は上書きインストールか、全部捨てて再インストールかというところだったのですが、そもそもこのSystemAppsをWin10のインストールメディアから取り出せないのか?と思ったのですが、最近はCABファイル形式ではないようで、またシステムファイルを簡単に差し替えたりできない機構が入っているので無理そうです。

システムの入れ直しを決意すると、取りあえず破壊的な作業もできるので、パッケージを完全に削除してしまうというものも試してみました。 
Get-AppxPackage | Where-Object {$_.Name -ne "Microsoft.Windows.ShellExperienceHost"} | Where-Object {$_.Name -ne "Microsoft.Cortana"} | Remove-AppxPackage
ShellExperienceHostとCortana以外を消すというPowerShellスクリプトですが、かなりパッケージが入っているようで結構時間が掛かります。
試しているうちに何気なくスタートメニューをクリックすると、開くではないですか。

startmenu.diagcabによるとShellExperienceHostとCortanaが原因だったはずなのに、それ以外を消して解決するとは。
結局先ほどのコマンドでUWPアプリがまとめて消えたので、Microsoftストアからもう一度インストールする必要があります。
Windows 10 に搭載されているアプリを再インストールする方法 - マイクロソフト コミュニティ
https://answers.microsoft.com/ja-jp/windows/forum/apps_windows_10-outlook_mail/windows-10/239ef7e9-9f4f-40dc-bf41-2cd2b8217843
なぜかストアアプリが英語になってしまったのと、アラーム&クロックだけがエラーコード0x80073D05でインストールできないのですが、取りあえず使える状態には戻りました。


また今回の件を調べているうちに知った、コマンドラインからEdgeを起動する方法
explorer.exe shell:AppsFolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge


結論。PowerShellで
Get-AppxPackage | Where-Object {$_.Name -ne "Microsoft.Windows.ShellExperienceHost"} | Where-Object {$_.Name -ne "Microsoft.Cortana"} | Remove-AppxPackag
を流してUWPアプリを全削除、Microsoftストアから入れ直し。

2018年4月19日木曜日

マストドンを始めて1年過ぎた

あちこちでポエムが書かれているようなので、わたしも。

マストドン自体の歴史はもう半年ぐらい長いのですが、わたしも多くの日本人と同じように、やはり日本語で紹介されて始めた口です。当時は、まだTwitterを使いまくっていたのですが、ぶろるっく関連のスパム対応なんかで面倒だなぁと思っていた頃でした。
現在mstdn.jpインスタンスを公開しているぬるかる氏が、nil.nuドメインで立ち上げたよーというツイートをしているのを見かけて登録してみました。ユーザーID2番を取っちゃったのはボケ老人として語り続けていくでしょう。

この日はなんやかんやで人が殺到して、お祭り状態になっていました。当初は分散SNSというものを知らず、もっと歴史のあったGNU Socialなんかも、このとき初めて耳にしたのでした。
分散SNSの思想については、らりお氏の記事が詳しいです。
gnusocial や mastodon の哲学 - 何とは言わない天然水飲みたさ
https://blog.cardina1.red/2017/04/13/federated-social-web/

わたしにとって初めて触れる分散SNSという思想は、当時上手く解釈をすることができず、どのように複数のインスタンスを使い分けたらよいのかが理解できませんでした。マストドンには「ローカルタイムライン」という同じインスタンスに属する人の投稿が流れてくるタイムラインがあるのですが、これがチャットのような機能を果たしてしまうため、この中で話題を完結させてしまうと、外部の人とは会話がしづらいというものでした。

使っていくうちに、わたし自身が理解したこととしては、Twitterの時と同じように使うのが一番よいというものです。これは複数のインスタンスに所属して、アカウントごとに人格を切り替えて使うのではなく、一つのアカウントにプログラマーな自分も、ゲーマーな自分も、全部載せてしまうというものです。ありのままを見せるということですね。テーマなどを決めずに考えを垂れ流すことで、どんどん話題は移り変わっていきますし、「アカウント間違えました」なんて発言をしなくて済むわけです。

すっかりマストドンに取りつかれてしまったわたしは、mstdn.jpがサーバを強化している間に、別のインスタンスにアカウントを作成しました。Twitterでフォローしている中で、わりと技術者寄り的で雰囲気がよいグループのうちの一人がインスタンスを立てたというので、同じグループで一気に移住が進むかなと目論んでの参加でした。しかしこれは思惑が外れてしまい、グループの移住は進まず、管理者もほとんど姿を見せなくなってしまいました。こうなるとインスタンスがいつまで維持されるのか、不安との戦いになります。Twitterでもそれほどツイートはしない部類の人間だったのですが、それでもローカルタイムラインには自分の発言ばかりが並んでいて、むしろここに新しい人が入り込めると考えるだろうか?という状態でした。

マストドンにはローカルタイムラインの他に「連合タイムライン」というものがあり、これは同じインスタンスに参加している人達がフォローしているアカウントの発言が流れてきます。ここから外部の人達の存在を知ることができるわけです。また同じインスタンスの人も、よそのインスタンスの人も、フォローすることによってホームタイムラインに発言が並び、まさしくTwitterと同じように使うことができるのです。

極たまに現れるローカルタイムラインの他者の発言に乗っかっていき、話題を広げようとしてみたり、連合タイムラインから新しい人をフォローしてみたり、この時期は分散SNSの難しさみたいなものを実感することができました。人は、寂れたところにはなかなか集まらないものです。自分が作ったインスタンスではないわけで、いよいよこれは自分一人が頑張ってもどうにもならないぞと思い至り、インスタンスを移ることにしました。

連合SNSは自分でインスタンスを立てる事もできます。先に書いたように、ありのままの自分というものを見せて行くには、自分のドメインでそれを行うのが一番分かりやすいものでしょうし、誰にも束縛されないマイルールをインスタンスに敷くことができるのです。しかし、わたし自身が技術者の端くれとして、自分の管理下のものは端々まで把握しておきたいという気持ちがあります。マストドンが作られているのはRubyで、Dockerを使って運用するのがメインとなる動かし方でした。わたしはそのどちらも、ほとんど把握していません。何かあればコードを読んで理解することはできますが、修正が必要となったときに言語の作法などを知らないわけで上手く直せなかったりする可能性がありました。まだ自分でサービスを立てるのは時期尚早と判断し、次も他者が立てたサービスのお世話になることにしました。

次の移住先は、現在わたしがメインで利用しているmstdn.nere9.help(インターネット蟹工船(通称nere9(ねれないん)))インスタンスです。nere9では、管理者が複数居るということで、そのあたりもインスタンスを選んだ一因です。nere9では、考察の好きなユーザーがよく発言しているため、考えを垂れ流しているうちに話題が変わっていくわたしとしても性に合っていると思いました。また、自分と感覚の合う人がインスタンスに居るということは、その人達がフォローしているアカウントが連合タイムラインに並ぶということで、こちらも好みのアカウントが多く、新しいフォローの助けにもなりました。

こうした経験から、連合の人口が少ない状態でのインスタンスの選択は、わりと重要だということです。マストドンでは、ローカルタイムラインと連合タイムラインから新しい人を発見してフォローしていくという流れになります。Twitterでも、昔はパブリックタイムラインというTwitterを一つのインスタンスと見立てるとローカルタイムラインのようなものが有りました。そこはTwitterに参加している全員の発言が流れていたので、大変雑多なものでしたが、たくさん並ぶ他言語の中から日本語話者を金魚すくいのようにフォローしていくという感じでした。今振り返るとマストドンに熱狂した当時は、Twitterで経験した過去の感覚と同じものだったのではないかと思います。

現在はTwitterからはパブリックタイムラインは失われてしまい、多くの人が既にTwitterアカウントを所有しているという状態です。こうなると、なにかしら別のコミュニティで知り合ってアカウント情報を交換するという流れで、サービス上で新しい人を発見する必要はないのかもしれません。連合SNSもこれと同様に、人が増えていくことで新しい人を見つけにくいという問題は解消されていくのではないかと思っています。そうです、こうやってウェブサイトでアカウントの紹介をして、ぜひフォローしてねと書くのが当時のTwitterでした。

マストドンのアカウントです。 https://mstdn.nere9.help/@osapon
ぜひフォローしてみて、新しい人を発見する足がかりにしてみてください。



マストドンにはまってしまって、色々とマストドン関連サービスなんかも作ってしまいました。osa-p.netに並んでいます。ITmediaのマストドンつまみ食い日記にも紹介してもらったりしました。把握しきれない連合の流れや、自分の作ったものが紹介される事によるモチベーションなど、マストドンつまみ食い日記には大変お世話になっています。ITmediaは情報発信用にインスタンスを立ててアカウントを運用しているので、連合SNS内でも情報の出所が分かりやすく、大変活用されていると思います。

マストドンを使った1年目、新しい可能性をたくさん感じた年でした。まだまだ広がり始めたばかり(GNU Socialを昔から使っていた人達、ごめん!)の連合ですが、面白い世界にしていけたら良いなと思います。

2018年4月6日金曜日

フォローリンクに機能追加しました

今年初のブログ記事です。
一応更新などはしているのですが、SNSをやり始めるとどうしてもそちらに投げるのが楽で、まとめて記事にしておくのがおろそかになりますね。

以前発表(ITmedia記事この日記の記事)した、マストドンでのフォロー状態を表示する「フォローリンク」ですが、新しい機能が追加されています。
まず、マストドンというのはSNSですが、特定の取り決めがあって、他のSNSとも接続できるのですね。このあたりは、マストドンについて調べてもらうと、他の人が書いている記事の解説がわかりやすいでしょう。
簡単に説明すると、マストドン以外にも、マストドンの元祖とも言えるGNU Socialや、新しく出てきたPleromaなどもあり、これらは互いに意識することなくフォローしあえるのです。これらは製品の名前であって、それぞれ各自が好きなように場(インスタンス)を作れます。Twitterみたいなのがいっぱいあると思ってもらえばいいでしょう。そしてお互いにやり取りできるので、それぞれにアカウントを作る必要はなく、どこか一カ所(のインスタンス)にアカウントをつくって、他の人をフォローすれば、他のインスタンスの人でもタイムラインに投稿が流れてくるので、便利です。

で、話を戻して、最初に描いたフォローリンクがこのフォロー状態を表示するのですが、新機能の1点目として、今までマストドンにしか対応していなかったものが、GNU SocialとPleromaにも対応しました。
より完璧に近いフォロー状態が表示できるようになりました。

2点目は、この機能を使って、フォロー状態をバックアップするツールを作りました。
マストドンではフォロー状態のインポート・エクスポート機能があるので、それを使って移動ができるのですが、インスタンスのトラブルなどで接続できなくなってしまうことがあるかもしれません。
このバックアップツールを使っておくと、定期的にフォロー状態を取り込んでおくので、いざというときにこのツールからフォロー状態のリストを取り出すことができます。

3点目は、これらの取り込んだ情報から、お勧めユーザーを紹介する機能です。
フォローをしてタイムラインにその人が居るということは、少なくとも見たくないユーザーではないと言うことです。そのユーザーがフォローしている人も同様だと考えると、「フォローしている人のフォローしている人」 もフォローしちゃって良いのでは?と言うことでお勧めとして紹介します。
インスタンスが離れていると、好みのユーザーを見つけにくいというのが現在GNU Socialをはじめとする分散SNSの問題ではないかと、わたしの観測範囲では言われているのですが、その解決に一つになれば良いなと思います。
もうちょっと精度を上げる方法も有るだろうと考えているのですが、まだデータ収集が十分ではないので、そのあたりを変えていけたらなと思っています。

そんなわけで、現在わたしはマストドンをメインに活動しています。
よろしければフォローしてみてください。
https://mstdn.nere9.help/@osapon

広告