ごった煮

色々な事を書いてます

Xbox ワイヤレスエリートコントローラを修理した話

我が家には、Xboxのエリートコントローラが2台あるのですが、ここ最近2台とも調子が悪い状態でした。 買ってから数年経つものと日本国外で購入したものということで、サポートに修理に出すのもあれだったので自分で修理してみました。

次回の為にその時のメモを残します。

症状

エリートコントローラは、よくLB、RBのモジュールが壊れるらしいです。 自分のものは、片方が LB の破損、もう片方が ABXY ボタンがかなりの頻度で押した後の戻りが遅いという症状でした。

とりあえずこの記事では、ABXY の修理についてまとめます。 LB ボタンの交換については、別記事で

修理対象

今回の修理対象は、写真の黒いベーシックなヤツです。 f:id:papemk2:20191102195823p:plain

2016年発売なので3年と少し使った感じですが、メインは、赤いほうを使っていたので実際あまり使用していません。

分解に必要なもの

  • T8のドライバー(このコントローラのネジは、全て T8 の形状でした。)
  • マイナスドライバー(分解するときにあると便利)

分解する

最初のネジを外す

一番最初のネジは、電池入れにあります。 封印シールを剥がすとネジが出てきますが。 これを剥がすと完全に公式のサポート対象外になるので、気を付けましょう。 f:id:papemk2:20191102200424p:plain

外すと一つネジが出てきます。 f:id:papemk2:20191102200503p:plain

これが外れたら次は、グリップ部分についているカバーを外します。

グリップカバーを外す

グリップカバーは、内部で6つの爪と粘着テープで固定してあるので、カバーとボディの隙間にマイナスドライバー等を入れて外していきます。 外すと写真のようになります。

粘着テープが剥がれている間隔がしたらもう少しです。 強引にやると爪が折れるかもしれないので慎重にやりましょう。 f:id:papemk2:20191102200745p:plain

グリップ内のネジを外す

グリップカバーを外すと、左右にそれぞれ2本のネジがあるので、これを外します。 このネジも T8 の形です。

これが外れると表のカバーが外せるようになります。 外すと写真のような感じになります。 f:id:papemk2:20191102201030p:plain

直す

ボタンが戻らない症状なので、ボタンがダメになっているのかを確認するためにカバーを外してボタンを押してみても同じ症状が再現しませんでした。 そこで表のカバーだけ戻してボタンを押したところ症状が再現しました。 恐らく何かしらの原因でカバーとボタンが干渉している可能性があったので、ボタンを出す穴の部分を数ミリだけヤスリで削ることにしました。

削り終えたら元に戻します。 先ほどと逆の手順で戻しましょう。

まとめ

とりあえずこれで修理完了です。 似たような症状の方は、自己責任で試してみましょう。

Chromium Edge のプレビュー機能を使う方法について

Chromium Edge の完成度が大分上がってきましたが、まだデフォルトでオンになっていない便利機能が結構あります。

自分のメモ代わりにそれの有効化についてまとめます。

今回の環境

今回は、以下の環境での話になります。 f:id:papemk2:20191031183213p:plain

プレビュー機能を有効化する

以下をアドレスバーに打ち込みます。

edge://flags/

これによってプレビュー機能の管理画面にジャンプします。

f:id:papemk2:20191031183255p:plain

検索窓に適当に何か入れてみると色々出てきます。 例えば通知周りだと以下のような感じ

f:id:papemk2:20191031183743p:plain

他にも、Microsoft Edge blog で紹介された Collections なども f:id:papemk2:20191031183904p:plain

Enable にして再起動すると使えるようになります。

まとめ

いち早く試してみたい人は、使ってみましょう。(自己責任で)

Office 365 の MFA を有効にする

Admin Center にアクセスできない権限で、Office 365 に MFA を有効化しようとすると、画面のリンクを辿ってもどこにもリンクが見当たらない等いろいろあれなのでメモとして残します。

やり方

とりあえず Google に聞いてみます。

office365 mfa setup link

これで検索します。 リンクが見つかります。

f:id:papemk2:20191015181143p:plain

account.activedirectory.windowsazure.com

このページで画面の手順に従うと MFA が有効化できます。

まとめ

MFA は、セキュリティを向上させるうえでかなり重要なので出来るだけ有効化しておきましょう。

それにしてもこれはひどい

AAD のゲストユーザでも SQL Database の AAD 認証を使う話

SQL Database は、 AAD ユーザを使ったログインが出来ますが、外部の AAD からのゲストユーザの場合、直接権限付与が出来ないので、外部ユーザでもログイン出来るようにする方法をまとめます。

仕組み

これを実現するための仕組みは、以下のような形です。

  1. AAD にグループを作成する
  2. 作成したグループにゲストユーザを追加する
  3. グループを DB ユーザとして登録する

この流れで実現が可能です。

グループを作成して、ゲストユーザを追加までは、今回の本質ではないので省略です。

権限付与は、以下の SQL を流すだけで OK です。

GO

CREATE USER [グループ名] FROM EXTERNAL PROVIDER;

ALTER ROLE db_owner ADD MEMBER [グループ名];

GO

これを実行するとユーザ作成完了です。

CREATE USER [グループ名] に FROM EXTERNAL PROVIDER を付けると、AAD のユーザを DB のユーザとして追加するという構文になります。

グループ名に、作成したグループの名前を入れて実行すると、そのグループを DB のユーザとして登録できます。

ゲストユーザ以外なら、ユーザ名にメールアドレスを入れてやると AAD のユーザを DB ユーザに追加できます。

ログインする際、master 以外の DB にユーザを作成した場合は、SSMS などで接続する際に DB 名を指定してやる必要があるので気を付けましょう。

まとめ

SQL Database に繋ぎに行く場合、AAD を使ってセキュアに繋ぐことが自分たちのデータを保護する上でとても重要です。

ゲストユーザ以外を追加する場合でも、グループ単位でまとめてユーザ作成をしておけば、権限の付与やはく奪という作業の手間を省くことが出来るので、ぜひ使ってみてください。

Azure CLI で Azure Monitor に登録されているアラートの情報を取得する

Azure を使っていると監視で Azure Monitor を使うと思いますが、毎回似たようなことを手動でやるのもしんどいので CLI でいい感じにした方が色々楽ですよね

ということで今回は、Azure CLI でAzure Monitor を触るための第一歩をまとめます。

Azure CLI でメトリックアラートの情報を取得する

とりあえず az コマンドを使えるように Azure CLI を入れるか Windows Terminal で Cloud Shell に繋ぎましょう

以下のコマンドで Azure Monitor に登録されているメトリックアラートの情報が取得できます。

az monitor metrics alert list

このコマンドで、現在選択しているサブスクリプションのすべてのアラートが表示されます。(デフォルトだとJson形式)

[
  {
    "actions": [
      {
        "actionGroupId": "アクショングループid",
        "webhookProperties": null
      }
    ],
    "autoMitigate": null,
    "criteria": {
      "additionalProperties": null,
      "allOf": [
        {
          "criterionType": "StaticThresholdCriterion",
          "dimensions": [],
          "metricName": "Http5xx",
          "metricNamespace": "microsoft.web/sites",
          "name": "cond0",
          "operator": "GreaterThan",
          "threshold": 0.0,
          "timeAggregation": "Count"
        }
      ],
      "odatatype": "Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria"
    },
    "description": "High CPU",
    "enabled": true,
    "evaluationFrequency": "0:01:00",
    "id": "リソースid",
    "lastUpdatedTime": null,
    "location": "global",
    "name": "CLI_Test",
    "resourceGroup": "Staging",
    "scopes": [
      "監視ターゲットid"
    ],
    "severity": 2,
    "tags": null,
    "type": "Microsoft.Insights/metricAlerts",
    "windowSize": "0:05:00"
  }
]

結果は、上のような感じです。

az monitor alert list

というコマンドもありますが、将来的に廃止されるようなので

az monitor metrics alert list

を使用しましょう。

結果をフィルタする

単純に json でデータをドカンと落としても、ほとんどの情報は、必要のないデータなので必要なデータだけ出すようにフィルタを掛けましょう。 Azure CLI では、結果を jmespath 方式でフィルタ出来ます。

az monitor alert list --query "jmespathのクエリ"

という形でフィルタが出来ます。

アラート自体のリソースid と名前だけを表示するようにするクエリは、以下のような感じです。

az monitor alert list --query "[*].[id,name]"

これを実行すると以下のような結果が返されます。

[
  [
    "リソースid",
    "リソース名"
  ]
]

まとめ

Azure CLI で簡単にAzure Monitor の情報を取得できました。

CLI からアラートの作成なども行えるので、よくある VM のリソース監視や DB のリソース監視などのように大体みんな同じようなアラートを設定するような場合に、一つテンプレートを作っておけば簡単に同じようなアラートを展開できるためミスも減らせて非常に有意義です。

積極的に使っていきましょう。

Windows10がスリープした直後に復帰を繰り返す件に対応した話

タイトルの通り、ここ最近自宅のWindows10マシンがスリープした直後にすぐ復帰を繰り返しスリープ機能が実質死んでしまったので、その時に行った対処法をまとめます。

発生している事象

  • Windowsのスリープ機能でスリープモードに入る → 5秒程ですぐ復帰する

いつぐらいから

  • Windows 10を1903に更新した直後から

原因の調査

  • Event Viewerを見てみましょう

Event Viewerでの調査

Event Viewer > Windows Logs > System に電源関連などシステム周りのログが残っているのでそれを開きます。 SourceがPower-Troubleshooter を見るとそれっぽいログが残っていました。

f:id:papemk2:20190831112733p:plain

イベントのログを見ると、Wake Source: Device - Realtek PCIe GbE Family Controller とありました。

f:id:papemk2:20190831112841p:plain

マザーボードのネットワークコントローラが悪さをしているようです。

とりあえずこのデバイスがスリープ復帰出来ないように設定を変えます。

バイスの設定を変える

Device Managerから設定を変更します。

今回の場合は、ネットワークコントローラなのでNetwork adaptersの下にいました

f:id:papemk2:20190831113411p:plain

このプロパティを変更します。

Power Managementタブにこの設定があります。

f:id:papemk2:20190831113552p:plain

Allow this device to wake the computer にチェックが入っているとそのデバイスからスリープ復帰が出来るようになるのでチェックを外します。 これで解決です。

まとめ

Windowsで何か困ったらEvent Viewerを見てみましょう。

OData用のPocoを生成する(C#)

ODataを使用する際、OData用ライブラリを使う場合などでPocoがあると何かと便利なので、Pocoを生成する簡単な方法についてメモを残します。

やってみる

ツールを入れる

odata2pocoという便利なツールがOSSで公開されているのでこちらを入れます。 dotnetコマンドが入っている前提なので、先にdotnetコマンドを入れておきましょう。(dotnetコマンドを使わない方法も一応あります。)

dotnetコマンド

dotnet tool install --global OData2Poco.dotnet.o2pgen  

何もエラーが出なければインストール完了です。

使ってみる

基本的なコマンドは、

dotnet o2pgen

です。

認証があるURLに対してのコマンドは、以下のような感じ

dotnet o2pgen -r "Url" -u "ユーザID" -p "パスワード" -o "認証方式"

認証方式は、none、basic、token、oauth2の4種類、デフォルトはnoneなので、basic認証が掛かっている対象に対してユーザIDとパスワードを設定しただけで 認証方式を指定しないと認証エラーが返ってくるので注意が必要です。

これを実行するとpoco.csというPocoが生成されます。 ファイル名を指定する場合などは、以下のような感じです。

dotnet o2pgen -r "Url" -f "ファイル名" -x "メタデータファイル名" -u "ユーザ名" -p "パスワード" -o "認証方式"

まとめ

生のODataもいいけどPocoがあると便利ですよね