Microsoft製品の内部バージョンメモ

Windows

コマンドプロンプトもしくはファイル名を指定して実行で「winver」。サーバの場合は、コマンドプロンプトで「ver」。

クライアントOS サーバOS バージョン
Windows 11
Windows 10
Windows Server 2022
Windows Server 2019
Windows Server 2016
10.0*
Windows 8.1 Windows Server 2012 R2 6.3*
Windows 8 Windows Server 2012 6.2
Windows 7 Windows Server 2008 R2 6.1
Windows Vista Windows Server 2008 6
Windows XP (x64) Windows Server 2003 R2
Windows Server 2003
5.2
Windows XP 5.1
Windows 2000 5

参考

Office

Officeを起動して、[ファイル]-[アカウント]-[Excelのバージョン情報(Excel 2016の場合)]。

Office バージョン
Office 365
Office 2021
Office 2019
Office 2016
16
Office 2013 15
Office 2010 14
Office 2007 12

参考

VisualStudio

Visual Studioを起動して、[ヘルプ]-[Microsoft Visual Studioのバージョン情報(Visual Studio 2019の場合)]。
また、ソリューションのアイコンの右肩にバージョン番号が表示される。ソリューション(*.sln)をテキストエディタで開いてもわかる。

VisualStudio バージョン
VisualStudio 2022 17
VisualStudio 2019 16
VisualStudio 2017 15
VisualStudio 2015 14
VisualStudio 2013 12

参考

SQL Server

SQL Server Management Studio で接続時、オブジェクトエクスプローラインスタンスに表示される。
もしくは、SQLで「select @@version」。

SQL Server バージョン
SQL Server 2022 16
SQL Server 2019 15
SQL Server 2017 14
SQL Server 2016 13
SQL Server 2014 12
SQL Server 2012 11
SQL Server 2008R2 10.5
SQL Server 2008 10

参考

ディレクトリサイズ一覧の取得方法あれこれ

自分の知っている範囲で、ディレクトリサイズの一覧取得方法を整理しました。対象とするファイル属性(隠し)やハードリンクを追うかどうか等の問題か、ツールで微妙に値が異なる場合があります。エクスプローラのフォルダのプロパティの全般タブと表示内容が近いのは「sdu」か「素のPowerShell」でしょうか。

コマンドプロンプト

du(sysinternals)

MicrosoftはIT担当者や開発者向けに、Sysinternals というツール群を提供しています。この中の一つにDisk Usage というものがあり、指定したディレクトリの使用状況を取得できます。他のツールと似た結果を得るには、階層の指定、ハードリンクの追跡、バナーの非表示を指定します。

C:\>du -l 1 -u c:\Windows\Microsoft.NET -nobanner
     198,774  c:\windows\microsoft.net\assembly
           0  c:\windows\microsoft.net\authman
      29,154  c:\windows\microsoft.net\DirectX for Managed Code
     295,576  c:\windows\microsoft.net\Framework
     324,718  c:\windows\microsoft.net\Framework64
Files:        3589
Directories:  1459
Size:         868,580,329 bytes
Size on disk: 885,002,240 bytes

sdu

動作OSにWin95やNT(3.51か4.0と思われる)があるいにしえのツールですが、Win10でも問題なく使えます。圧縮形式がlhaなので、解凍には7-zipなどのアーカイバが必要。フォルダ名の欄が固定サイズなので、長いフォルダ名だと表示が崩れてしまうのが悩みどころ。

C:\>sdu c:\Windows\Microsoft.NET
directory name                           size(MB)       % dirs  files
---------------------------------------------------------------------
c:\Windows\Microsoft.NET\assembly         195.555 ( 23.4) 1256    717
c:\Windows\Microsoft.NET\authman            0.000 (  0.0)    0      0
c:\Windows\Microsoft.NET\DirectX for Managed Code   28.516 (  3.4)   10     36
c:\Windows\Microsoft.NET\Framework        291.426 ( 34.9)   97   1427
c:\Windows\Microsoft.NET\Framework64      319.926 ( 38.3)   90   1411
c:\Windows\Microsoft.NET                    0.000 (  0.0)    5      0
---------------------------------------------------------------------
Total                                     835.422         1458   3591

PowerShell

素のPowerShell

PowerShellでは、Get-ChildItemで取得できるFileSystemInfoオブジェクトにLength(サイズ)プロパティがあるので、それを再帰的に合計することで、ディレクトリごとのサイズ一覧を取得可能です。

(Get-ChildItem -Force $_.FullName -Recurse|Measure-Object -Property Length -Sum).Sum

関数化したものをこちらで公開しています。FileSystemObjectを使わないことをオプションで指定しています。

PS C:\> Get-DirectorySize C:\Windows\Microsoft.NET\ -NonFso

Name                     Size      SizeByte Files Folders
----                     ----      -------- ----- -------
assembly                   194.1M 203544778   717    1256
authman                      0.0B               0       0
DirectX for Managed Code    28.5M  29853934    36      10
Framework                  288.6M 302670920  1427      97
Framework64                317.1M 332509797  1411      90

FileSystemObjectを使う

再帰で取得するのはパフォーマンスが微妙なのではないかとの懸念から、FileSystemObjectを使用するバージョンを作成しました。PowerShell(マネージドコード?)から、COMを呼び出すと実行権限が委譲できないのか、特殊フォルダなどでアクセス権のエラーが発生することがありますが、素のPowerShellよりは早いです。関数化したこちらのデフォルト動作です。

$fso = New-Object -ComObject Scripting.FileSystemObject 
$fso.GetFolder($_.FullName).size
PS C:\> Get-DirectorySize C:\Windows\Microsoft.NET\

Name                     Size      SizeByte Files Folders
----                     ----      -------- ----- -------
assembly                   194.1M 203544778   717    1256
authman                      0.0B         0     0       0
DirectX for Managed Code    28.5M  29853934    36      10
Framework                  288.6M 302670920  1427      97
Framework64                317.1M 332509797  1411      90

モジュール「PSFolderSize」を使う

Microsoftが「PowerShell コンテンツの中央リポジトリ」と言っているPowerShell ギャラリーに「PSFolderSize」があります。インターネット接続環境かつインストール可能であれば、これが手っ取り早いかもしれません。

PS C:\> Get-FolderSize C:\Windows\Microsoft.NET\

FolderName                     SizeMB       SizeGB       FullPath
----------                     ------       ------       --------
Framework64                    317.11       0.31         C:\Windows\Microsoft.NET\Framework64
Framework                      288.65       0.28         C:\Windows\Microsoft.NET\Framework
assembly                       194.12       0.19         C:\Windows\Microsoft.NET\assembly
DirectX for Managed Code       28.47        0.03         C:\Windows\Microsoft.NET\DirectX for Managed Code
authman                                                  C:\Windows\Microsoft.NET\authman

実行時間比較

ローカルHDD(SATA)の約40GBのフォルダのサイズ一覧の取得にかかった時間は次のとおりでした。測定はMeasure-Commandで行いました。実行のたびに10msの桁は変わるので、有効桁は1桁な気もしますが、とりあえず2桁で整理。

ツール 実行時間[ミリ秒]
du 430
sdu 74
素のPowerShell関数 860
PowerShellからFileSystemObject 590
PSFolderSize 390

ライセンス

どのツールも使用上の費用発生はありません。Sysinternals は商用ホスティング サービスでの使用が禁止されていますのでご注意ください。詳細はリンク先を参照のこと。

ツール ライセンス
du Sysinternals ソフトウェアライセンス条項
sdu フリーソフト(付属テキスト「SDU.TXT」を参照)
PSFolderSize MIT

参考サイト

多色ボールペンのリフィルについての覚書

  • ちょっと高級な多色ボールペン及び多機能ボールペン(以降はまとめて「多色ボールペン」と記載)の金属リフィルは「JIS S 6039 D形」にほぼ準拠しているものが多く、三菱鉛筆ジェットストリームパイロットのアクロインキが使えたりしますが、ゼブラの4Cは微妙にサイズが合わないですね、ということを確認して整理したものです。
  • 端的には、自分のリフィル購入用のメモです。純正以外のリフィルに交換して使用するのは自己責任で。

リフィルの規格

リフィルの規格として「JIS S 6039:2020 油性ボールペン及びレフィル」があり、この中でD形のサイズは以下のように規定されています。かっこ内の数値は公差です。

規格 a(全長)[mm] b(本体径)[mm] c(ペン先径)[mm]
JIS S 6039 D形 67(+0.3, 0) 2.35(0, -0.05) 2.35(+0.05, 0)

また、「JIS S 6039」は「ISO 12757-2:1998 Ball point pens and refills -- Part 2: Documentary use (DOC)」の対応JIS規格で、同等性が「modified(修正)」なので、変更箇所があることになりますが、「レフィルの形状および寸法並びに構造」について実質的な差異はないとなっています。

多色ボールペンと初期セットリフィル

おすすめの多色ボールペンとその初期リフィルを並べておきます。HelveticaとRotringは4色ではなく3色プラスシャープペンシルです。そのためか、切り替えやすさは LAMY2000が頭一つ抜けています。また、HelveticaとRotringは押し込みのストロークが思ったより深いです。ひっこめるには、LAMYが再ノック、Helveticaがクリップ上のボタンを押す、Rotringがクリップを広げるとなっています。

多色ボールペン(型番) セットリフィル型番(色)(ボール径) 全長[mm] 本体径[mm] ペン先径[mm]
LAMY2000 4色ボールペン LM21BK(黒)
LM21BL(青)
LM21RD(赤)
LM21GN(緑)
67 2.3 2.3
伊東屋 Helvetica 多機能ペン 4 in 1 BPRBK(黒)(0.7)
BPRRD(赤)(0.7)
BPRBL(青)(0.7)
67 2.3
Rotring マルチペン フォーインワン(502-700F)1 S0R074426(黒)
S0R074422(赤)
S0R074420(青)
67 2.3 2.3

※ サイズの青字は、測定の素人が約2,000円のデジタルノギス(最小読み取り値 0.01mm、器差0.03mm)で測った3本の平均値。妥当な公称値が見つけられなかったため。

LAMY2000のリフィルLM21は「ISO12757-2 D M DOC」と書かれているので、D形で太さはM(中字 ボールの直径 0.85mm以上1.05mm未満)、公文書用と思われます。

リフィル

ジェットストリームとアクロインキが好みです。ゼブラ4Cはサイズ比較のためにあえて記載。

ブランド リフィル型番(色)(ボール径) 全長[mm] 軸径・最大径[mm]
三菱鉛筆 ジェットストリーム SXR-200-07(黒,赤,青)(0.7)
SXR-200-05(黒,赤,青)(0.5)
67.0 2.3
パイロット アクロインキ BRFS-10M(黒)(1.0)
BRFS-10F(黒,赤.青,緑)(0.7)
BRFS-10EF(黒,赤.青)(0.5)
67 2.3
【参考】ゼブラ 4C R4C10(黒,赤.青,緑)(1.0)
BR-8A-4C(黒,赤.青,緑)(0.7)
R4CS-BK(黒)(0.5)
R4C4-BK(黒)(0.4)
67.0 2.4

どこで買えるか

実店舗なら「伊東屋」、「ロフト」、「東急ハンズ」など。ネット通販なら「ヨドバシカメラ」でしょうか。スーパーに併設の文房具コーナーでは、プラスチックのリフィルは置いていても、金属のリフィルは置いていない気がします。

あと、全部回ったわけではないですが、伊東屋の池袋店(東武百貨店7F)と新宿店(京王百貨店5F)は、高級なものも含めてたくさんのペンが試せて楽しいです。

参考サイト


  1. なぜ公式サイトに記載がないのだろう?

ストライク・ザ・ブラッド 読書ガイド

去年の話になってしまいましたが、アニメの完結を記念して、ストライク・ザ・ブラッドのアニメと原作の対応について整理します。要はアニメが終わったけど、よく分からなかった部分は、未アニメ化の原作を読めばわかるのではないか、と思った人向けの読書ガイドです。

Wikiと公式を見ればわかる情報ですが、自分が知りたい形で整理されていなかったので。 あと、原作は一部しか読んでいないので、タイトルが同じだけど内容が違うとかあった場合はご容赦ください。APPEND系はDVD/BDの購入特典の小冊子を膨らませたものみたいです。「ヴァルキュリアの王国篇」はOVAが先にあって、新説で膨らませたもののようなので、別扱いにしています。

ちなみに配信サービスでは、dアニメストア(ドコモ系)、アニメ放題(ソフトバンク系)、U-NEXT のどれかあれば、TVシリーズと4期までは見れるでしょう。 OVA5期はツタヤで借りるか、買うかでしょうか。

原作とアニメの対応

小説タイトル アニメタイトル 話数
1 ストライク・ザ・ブラッド1 聖者の右腕 聖者の右腕篇 TVシリーズ#1~4
2 ストライク・ザ・ブラッド2 戦王の使者 戦王の使者篇 TVシリーズ#5~8
3 ストライク・ザ・ブラッド3 天使炎上 天使炎上篇 TVシリーズ#9~12
4 ストライク・ザ・ブラッド4 蒼き魔女の迷宮 蒼き魔女の迷宮篇 TVシリーズ#13~15
5 ストライク・ザ・ブラッド5 観測者たちの宴 観測者たちの宴篇 TVシリーズ#16~19
6 ストライク・ザ・ブラッド6 錬金術師の帰還 錬金術師の帰還篇 TVシリーズ#20~22
暁の帝国篇 TVシリーズ#23~24
ヴァルキュリアの王国篇 OVA
7 ストライク・ザ・ブラッド7 焔光の夜伯
8 ストライク・ザ・ブラッド8 愚者と暴君
9 ストライク・ザ・ブラッド9 黒の剣巫 黒の剣巫篇 OVA2期#1~3
10 ストライク・ザ・ブラッド10 冥き神王の花嫁
11 ストライク・ザ・ブラッド11 逃亡の第四真祖 逃亡の第四真祖篇 OVA2期#4~5
12 ストライク・ザ・ブラッド12 咎神の騎士 咎神の騎士篇 OVA2期#6~7
13 ストライク・ザ・ブラッド13 タルタロスの薔薇 タルタロスの薔薇篇 OVA3期#1~3
14 ストライク・ザ・ブラッド14 黄金の日々 黄金の日々篇 OVA3期#4~6
15 ストライク・ザ・ブラッド15 真祖大戦 真祖大戦篇 OVA3期#7~10
消えた聖槍篇 OVA SP
16 ストライク・ザ・ブラッド16 陽炎の聖騎士 陽炎の聖騎士篇 OVA4期#1~3
17 ストライク・ザ・ブラッド17 折れた聖槍
18 ストライク・ザ・ブラッド18 真説・ヴァルキュリアの王国
19 ストライク・ザ・ブラッド APPEND1 人形師の遺産
20 ストライク・ザ・ブラッド APPEND2 彩昂祭の昼と夜
21 ストライク・ザ・ブラッド19 終わらない夜の宴 終わらない夜の宴篇 OVA4期#4~6
22 ストライク・ザ・ブラッド20 再会の吸血姫 再会の吸血姫篇 OVA4期#7~9
23 ストライク・ザ・ブラッド21 十二眷獣と血の従者たち 十二眷獣と血の従者たち篇 OVA4期#10~12
24 ストライク・ザ・ブラッド22 暁の凱旋 暁の凱旋篇 OVA5期#1~4
25 ストライク・ザ・ブラッド APPEND3

アニメについて、ちょっとだけ気になること

  • あの強力無比なボウガンの説明がどこかにあっただろうか。アニメだけ見ていると分からなかった
  • 女性の体形が男性的で微妙な場合があるのが残念(特にOVAの風呂のシーンのあさぎ)
  • どことは言わないがピンクが明るすぎる気がする

参照サイト

コマンドプロンプトからPowerShellへの移行

この記事は何か

Windowsコマンドラインシェルとして長らくコマンドプロンプトを利用していたが、エクスプローラの Shift+右クリックメニューで表示されるのがいつのまにか「コマンドウィンドウをここで開く」から「PowerShellウィンドウをここで開く」に変更になっているのに気づいて、「いい加減PowerShellに移行するしかないか」と考えたけれど、ちょっと調べると、PowerShellは複数のバージョンがあったりして困惑しているという人に、PowerShellの知っておくとよいことを案内するものです。

コマンドラインシェル比較

用途は似たようなものなので、何が違うのか簡単に表にします。PowerShell 7.x のみ、別途インストールが必要です。

コマンドラインシェル 実行ファイル フレームワーク サポート期間 プラットホーム 文字コード 起動時間
コマンドプロンプト cmd.exe なし OS依存 Win CP932(ShiftJIS) 瞬時
Windows PowerShell 5.1 powershell.exe .NET Framework OS依存 Win UTF16(BOMあり) 気にならない程度
PowerShell 7.x pwsh.exe .NET Core 及び .NET リリースから1.5~3年 Win, Mac, Linux UTF8(BOMなし) 引っ掛かりを覚える

※ここで文字コードと言っているのは、標準出力で出力した日本語をファイルにリダイレクトしたときに生成されるテキストファイルの文字コードです(バッチファイル、スクリプトファイルを作成する場合のテキストファイルの文字コードでもあります)。また、起動時間は PC のスペックに依存します。

コマンドプロンプトと比較して、PowerShellの大きなメリットは、UNCパス(共有フォルダ)を直接開けることです。コマンドプロンプトだとネットワークドライブの割り当てが必要でした。

また、PowerShell 5.1は、PowerShell ISEという開発環境が利用可能です。拡張子ps1のファイルを右クリック「編集」で起動できます。 「MacLinuxでも使う」、「デフォルトの文字コードはUTF8でないとイヤだ」、「PowerShell 7.x にしかない機能を使いたい」という人以外は、プレインストールされており、サポート期間が長く、起動が早いPowerShell 5.1 を使うのがよいでしょう。

7.x系のサポート期間は、ベースとなる .NET のバージョンに依存しており、だいたいLTS(長期サポートバージョン)は3年、それ以外は1.5年です。7.x系を使う場合は、基本的にLTS-Current(現行の長期サポートバージョン、2023年2月時点ではPowerShell 7.2)をお勧めします。PowerShell 7.2起動時に「最新版があります」と親切に教えてくれますが、最新版の7.3に更新するとサポート期間が短くなります。あと、Microsoftのページのダウンロードリンクは最新版になってしまっており、LTS-Currentを入手しようとすると、GitHubの方に行かないといけないのは注意が必要です。

PowerShellでできること

PowerShellオープンソースで開発されており、レポジトリの GitHub に「Learning PowerShell」という記事があり、この中にあった「Map Book for Experienced Bash users」がよいガイドになっていたのですが、なくなってしまったので、bashコマンドプロンプトに置き換えた対応表を置いておきます。

コマンドプロンプト PowerShell 説明
dir dir, Get-ChildItem ファイルとフォルダーを一覧表示する
tree dir -Recurse, Get-ChildItem -Recurse すべてのファイルとフォルダーを一覧表示する
cd cd, Set-Location ディレクトリを変更する
cd(引数なしで実行) pwd, $pwd, Get-Location 作業ディレクトリを表示
cls cls, clear 画面をクリアする
mkdir New-Item -ItemType Directory 新しいフォルダーを作成する
なし1 New-Item -Path test.txt 新しい空のファイルを作成します
type test1.txt test2.txt Get-Content test1.txt, test2.txt ファイルの内容を表示する
copy ./source.txt ./dest/dest.txt Copy-Item source.txt dest/dest.txt ファイルをコピーする
robocopy /MIR ./source ./dest Copy-Item ./source ./dest -Recurse あるフォルダーから別のフォルダーに再帰的にコピーする
move ./source.txt ./dest/dest.txt Move-Item ./source.txt ./dest/dest.txt ファイルを他のフォルダーに移動する
del test.txt Remove-Item test.txt ファイルを削除する
rmdir /s Remove-Item -Recurse フォルダーを削除する
dir /s build* Get-ChildItem build* -Recurse 「build」で始まるファイルまたはフォルダーを検索します
findstr /s /i sometext *.cs Get-ChildItem -Recurse -Filter *.cs| Select-String -Pattern "sometext" 大文字と小文字を区別せずにファイル内のテキストを再帰的に検索する
curl https://github.com Invoke-RestMethod https://github.com Webからデータを転送する
more test.txt Get-Contents text.txt|Out-Host -Paging 出力を1画面ずつ表示する
fc text1.txt text2.txt Compare-Object (Get-Content text1.txt) (Get-Content text2.txt) ファイルを比較し、相違点を表示する

あと、コマンドプロンプトでは難しかった、ZIP圧縮と解凍が可能になりました。

ヘルプの参照方法

コマンドプロンプトだとヘルプの参照方法はそのコマンドのオプションに「/?」スイッチをつけて実行する形でしたが、PowerShellの場合は Get-Help コマンドレットの引数に調べたいコマンドを指定します。

dir /?
Get-Help Get-ChildItem

ファイル一覧の取得の例

これまたいつの間にか、エクスプローラのファイル選択状態での Shift+右クリックメニューに「パスのコピー」が加わったことにより、必要性が低下しましたが、個人的にはネットワーク調査コマンド以外で、コマンドラインシェルで一番使用頻度が高いのが、ファイル一覧の取得だと思います。ファイル一覧を取得して、クリップボードにコピーする操作は、コマンドプロンプトだと以下でした。

dir /b | clip

PowerShellだと以下になりますが、TABで入力補間ができるので、字面ほどタイプする文字数は増えていません。

Get-Childitem -Name | Set-Clipbord

ネットワークドライブからクイックアクセスへ

PowerShellへの切り替えにより、ネットワークドライブを捨てて、クイックアクセスに一本化できます。 クイックアクセスの利点は次のとおり。

  • 登録と解除が簡単(下記のMSへのリンク参照)
  • 並び替えが簡単(クイックアクセス上で、左クリックでドラッグ&ドロップできます)
  • エクスプローラのトップに表示される

クイック アクセスでのピン留め、削除、カスタマイズ - Microsoft サポート

実行ポリシーの初期値

  • クライアントOS:Restricted(個々のコマンドを許可しますが、スクリプトは許可しません。)
  • サーバーOS:RemoteSigned(インターネットからダウンロードされたスクリプトにデジタル署名を要求。ローカルスクリプトは許可。)

必要に応じて、実行ポリシーについてを参考に変更してください。

参考サイト

更新履歴

  • 2023-02-04 初版作成。
  • 2023-07-21 GitHubの「Learning PowerShell」削除に伴い、対応表を追加。ついでに実行ポリシーの記載を追加。

  1. 「type nul > text.txt」でできるみたいですが、使ったことがある人はほとんどいないと思うので。自分はエクスプローラで「右クリック->新規作成->テキストドキュメント」していました。

PowerShellでテキストファイルを処理する

例えば、フォルダの一覧のテキストファイル「folders.txt」があるとして、多くのプログラミング言語(ここでは「Ruby」)ではフォルダをコピーするスクリプトを作ろうとすると、ループする処理を書いて、ブロック内に個別の処理を書くのが素直でしょう。複数の処理がある場合は、処理がネストしていきます(この場合は処理が1行なので、ifを後置するif修飾子で対応できますが…)。ドットで始まるフォルダは除外しましょう。

File.foreach("folders.txt") do |line|
  if line[0,1] != '.'
    puts "robocopy \\\\file-server\\#{line.chomp} D:\\#{line.chomp} /MIR"
  end
end

PowerShellの場合は、集合を取得する処理を書いて、各要素に対する処理を書きます。処理をパイプで数珠繋ぎにしていきます。

Get-Content folders.txt|
?{$_.Substring(0,1) -ne '.'}|
%{"robocopy \\file-server\{0} D:\{0} /MIR" -f $_}|
Set-Content mirror.cmd.txt

また、結果をファイルに書き出す際、Ruby 等のスクリプト言語の場合は出力先を標準出力にしておいて実行時にリダイレクトするのが、PowerShellの場合は書き出す処理をスクリプトに含めるのが一般的な気がします(注.個人の感想です)。

なんでこんな記事を書くかというと、PowerShellでテキストフィルタを書こうとすると一瞬書き出しに迷うことがある自分への備忘録です。

Windows 10 のアカウントについて

この記事は何?

Windows 8 以降、Microsoftクラウドサービス展開に伴い、個人利用でも Microsoft アカウントの利用が推奨されるようになっていますが、これに対してどうするのがよいのかを考えたものです。
整理のため、法人用のアカウントについても言及します。
なお、家族アカウントとWindows 11 は、考慮の対象外です。
サービスに関する用語は作成時点(2022-03-04)のもの、OSのメニュー等はVersion 20H2のものです。
2022-03-14に「Microsoftアカウントのメリット・デメリット」を追記しましたが、結論は変わりません。

Windows 10 で利用可能なアカウントの種類はいくつか?

エディションや対象読者の想定の違いにより、2種類、3種類、5種類といろいろな数え方がありますが、とりあえず、個人向けか法人向けかと、Microsoftクラウドサービスを利用するアカウントか否かの2軸で4種類に分けて理解するのがよいと思います。個人として悩むのは、ローカルアカウントか、Microsoftアカウントか、だけです。

アカウントの種類 対象 MSのクラウド 主な用途(サービスの例) 利用可能なエディション
ローカルアカウント 個人 関係なし ローカルPCの利用 Home, Pro, Enterprise
Microsoftアカウント 個人 利用可能 個人としてのMSのクラウドサービスの利用
(Outlook, OneDrive, Microsoft 365, Xbox LIVE, Microsoft Store)
Home, Pro, Enterprise
Active Directory
(AD)アカウント
法人 関係なし 法人組織のネットワークリソースの利用
(ファイルサーバ、共有プリンタ、業務アプリケーション)
Pro, Enterprise
Azure Active Directory
(Azure AD)アカウント
法人 利用可能 法人としてMSのクラウドサービスの利用
(Outlook, Teams, Azure, VLSC, Microsoft 365, Windows 365, Intune)
Pro, Enterprise
余談Microsoftボリュームライセンス(組織向けのライセンス)は電子化に伴い、メールアドレスの紐づけが必要になっていましたが、このときにMicrosoftアカウント(旧Windows Live ID)に紐づけられていました。また、組織のライセンス管理なので、組織のメールアドレスを使っていたことがほとんどだと思われます。ある時点より、ライセンス管理にMicrosoftアカウントは使えなくなり、Azure ADアカウントへの移行する必要がありました。

今利用しているアカウントが何かは「設定>アカウント」の「ユーザーの情報」でわかります。

ローカルアカウントの場合 ユーザー名の下に「ローカルアカウント」と表示
Microsoftアカウントの場合 ユーザー名の下にメールアドレスが表示

それぞれの認証先はどこか?

認証先、別名及びアカウントの例を整理しておきます。この整理から、Googleアカウントとは異なり、Microsoftアカウントを作成する際には、Azure ADアカウントとの取り違えを避けるため、所属組織のメールアドレスを使うべきでないことが分かります。もちろん、所属組織のアカウント管理が、Azure ADに移行済みであれば、所属組織のメールアドレスをMicrosoftアカウントとして登録することはできません。

アカウントの種類 別名 認証先 アカウントの例
ローカルアカウント オフラインアカウント ローカルPC 任意、漢字も使える
Microsoftアカウント 個人のアカウント Microsoft ~@live.jp, ~@outlook.jp の他、登録したメールアドレス
ADアカウント ドメインアカウント 法人組織のドメインコントローラ(DC) 姓名のローマ字や社員番号等、組織のアカウント発行ルールに基づく
Azure ADアカウント 組織アカウント、職場または学校アカウント Microsoft ~@example.com, ~@example.co.jp など所属組織のメールアドレス

オフライン等で認証先に接続できない場合、ADアカウントの場合は認証のキャッシュが使われます(キャッシュログイン)。この認証キャッシュは、ドメイン管理者が別途設定してなければ、有効期限はありません(デフォルトでは10アカウント分の履歴があるらしいです)。Azure ADアカウントも結局ADなので、同様に認証のキャッシュが使われるのだと思います。Microsoftアカウントはオフラインでログインできることは確認したのですが、認証のキャッシュの仕様についての資料は探せませんでした。また、オフラインでも正しくオフライン(「接続できません」と表示されている状態?)でないと、キャッシュログインできないかもしれません。

Microsoftクラウドサービス利用時に下図のようにサインインの選択画面がでることがありますが、ここでいう「職場アカウント」が、Azure AD アカウントです。

f:id:pipin68k:20220304064127p:plain
サインインの選択

昔は『「職場または学校アカウント(IT部署が作成)」か「個人のアカウント(お客様が作成)」を選択してください』となっていて、大変わかりにくかったのですが、若干わかりやすくなりました。Microsoft側もこの問題は認識していて、以下の解説があります。

#AzureAD と Microsoft アカウントの重複問題に対する取り組み | Microsoft Docs

Microsoftアカウントのメリット・デメリット

(※ 2022-03-14追記)

Microsoftアカウントのメリットは、下記リンク先に説明によれば以下の2つです。あと「Microsoftアカウントでのサインインに切り替える」というメニューが消えるのもメリットですね。

  • クラウトサービスの利用
  • アカウントの一元管理

Microsoft アカウントとは

しかし、クラウドサービスの利用は、ローカルアカウントでもブラウザから可能で、認証情報も覚えさせれば再入力の必要はありません。アカウントは、個人で使う場合はいいとこ常用する2~3台について、アカウントを統一しておけば、似た状況にはできます。

デメリットは、利用状況を常に Microsoftに把握されるというのが一つと、もう一つは「オンラインでの認証トラブル、オフラインでの認証トラブル」です。特にオフラインでの認証はろくな説明がないことも相まって不安を掻き立ててくれます。

Microsoftドメイン下で類する情報を探すとオンライン時のトラブルについては「Microsoftアカウントにサインインできない時の対処法」という記事が見つかりますが、執筆者がボランティアモデレーター(Microsoftの社員でない)というのはどうかと思います(もちろん、Microsoft側の姿勢が問題という意味で、この執筆者や記事に瑕疵があるということではありません)。

https://answers.microsoft.com/ja-jp/outlook_com/forum/all/microsoft%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3/4609091d-5d56-4eca-b635-1a4b0af57fb0?ocid=OO_Core_NEU_GetHelp_DG_GetHelp_Solutions

オフライン時のトラブルについての記載があるのを見つけた数少ない記事が以下のNEC富士通のものです。

NEC LAVIE公式サイト > サービス&サポート > Q&A > Q&A番号 019772

富士通Q&A - [Windows 10] Microsoft アカウントでサインインするときに「デバイスはオフラインです。このデバイスで最後に使ったパスワードでサインインしてください。」と表示されます。 - FMVサポート : 富士通パソコン

Azure ADへの参加(joined)と登録(registered)

私物端末の業務利用(BYOD)のケースがあるので、AzureADについても触れておきます。
Azure ADについては、利用の形態により、Azure AD登録、Azure AD参加、ハイブリッドAzure AD参加、があります。
参加(joined)は、当該ドメインの管理下にPCを所属させることで、そのドメインのポリシーが適用されます。よって、ADへの参加と、Azure ADへの参加は排他です。
登録(registered)は、サービス利用のための登録ですが、ポリシーを適用することもできるようです。

よって、おおむね想定される Azure AD の利用パターンは下表のとおりです。Azure ADアカウントの利用においては、Microsoftアカウントとローカルアカウントに差異はないものと思われます。

PCの所有者 PCへのログイン クラウド利用
個人(BYOD) ローカルアカウント Azure ADアカウント情報を登録して、法人用クラウドを利用(Azure AD登録)
個人(BYOD) Microsoftアカウント Azure ADアカウント情報を登録して、法人用クラウドを利用(Azure AD登録)
法人 ADアカウント Azure ADアカウント情報を登録して、法人用クラウドを利用(Azure AD登録)
法人 ADアカウント 透過的に法人用クラウドを利用(ハイブリッド Azure AD参加)
法人 Azure ADアカウント 法人用クラウドを利用(Azure AD参加)

ADアカウントやAzure ADアカウントの場合の登録状況は「設定>アカウント」の「職場または学校にアクセスする」に表示されます。また、「設定>アカウント」の「メールとアカウント」の「他のアプリで使われるアカウント」にも表示されるようです。
「職場または学校にアクセスする」からは「切断(参加している状態から抜ける)」することができます。

アカウントの作成方法

ADアカウントとAzureADアカウントはドメイン管理者が作成するので、ここで記載するのは個人向けアカウントの作成方法です。また、ローカルアカウントとMicrosoftアカウントは相互に切り替えが可能です。

ローカルアカウントの作成方法

以下の3つの方法があります。

  1. Windowsのセットアップ時に作成
  2. 「設定>アカウント」を選択、「家族とその他のユーザー」から「その他のユーザーをこのPCに追加」を選択、「このユーザーのサインイン情報がありません」をクリック、「Microsoftアカウントを持たないユーザーを追加する」をクリック
  3. エクスプローラーで、PCを右クリックして「管理」を選択、「コンピュータの管理」が起動するので、「システムツール>ローカルユーザーとグループ>ユーザー」を右クリックして、「新しいユーザー」を選択

1.の方法でもインターネットにつながっていると、Microsoftアカウントの作成に誘導されますが「スキップする」等の文言を含むメニューを選択することで、ローカルアカウントの作成に分岐します(Proエディションの場合)。Homeエディションの場合、インターネットから切断しないと、ローカルアカウントの作成に行けないようです。

「セキュリティの質問」を設定しない

1.と2.の方法では、「パスワードを設定するとパスワードを忘れた場合に備えて」ということで「セキュリティの質問」の設定を要求されます。しかしこれは、攻撃者が知識(情報)だけで認証を突破できる機会を増やすセキュリティレベルを低下させる機能です。利用しないようにする方法は以下のとおりです。また、この設定をした場合、パスワードリセットディスクの作成の重要性が増すでしょう。

  • エディションがPro以上でVersion 1903以降であれば、グループポリシーで無効化する(ファイル名を指定して実行で「gpedit.msc」を実行し、グループポリシーエディタで、「コンピュータの構成>管理用テンプレート>Windowsコンポーネント>資格情報のユーザーインターフェイス」の「ローカルアカウントに関するセキュリティの質問を使用できないようにする」を「未構成→有効」にする)
  • それ以外の場合は、パスワードを空欄にしておいて、後でパスワードを設定する

Microsoftアカウントの作成方法

PCからだと以下の3種類があります。もっとあるかもしれません。XBOXからも作れるので。

  1. Windowsのセットアップ時に作成
  2. 「設定>アカウント」を選択、「家族とその他のユーザー」から「その他のユーザーをこのPCに追加」を選択、「このユーザーのサインイン情報がありません」をクリック、「新しいメールアドレスを取得」をクリック
  3. Microsoft アカウント | サインインするか、今すぐアカウントを作成 – Microsoft で「Microsoftアカウントを作成」をクリック
Microsoftアカウント作成時の留意事項

Microsoftアカウントでのトラブルを避けたい場合、自分が知る範囲では以下の留意事項があります。基本的に、Microsoft提供ドメイン(outlook.jp等)のメールアドレスで新規作成するのがトラブルが生じにくいと思われます。

  • 電話番号でアカウントを作成しない(ログオンIDというインターネット上で表示される可能性があるものに、公開すべきでない個人の電話番号を設定するのは望ましくない)
  • 組織のメールアドレスでアカウントを作成しない(理由は前述のとおり、AzureADとの混同を避ける)
  • Goolgeのメールアドレスでアカウントを作成しない(認証失敗の報告が散見される)
  • パスワードリセットのため、Microsoftアカウント以外のメールアドレスか、SMSが受け取れる携帯電話の番号(あるいは両方)を登録しておく。
  • ローカルアカウントの場合、個人の設定はシステムドライブがC:であれば、「C:\Users\<ユーザー名>」に格納されるが、Microsoftアカウントの場合、このフォルダ名が「Microsoftアカウントのはじめの5文字」になる。これを避けたい場合、希望するフォルダ名のローカルアカウントを作成して、そのアカウントをMicrosoftアカウントに切り替えるという方法がある。

パスワードのリセット方法

Dellのサイトが詳しいので、そこを見てください。

Windows 10のローカルアカウントのパスワードまたはMicrosoftアカウントの問題 | Dell 日本

結論としてどうするか

ここまでの整理だと、Microsoftアカウントで認証に失敗する場合に備えて管理者権限のローカルアカウントさえ作成しておけば、普段使いのアカウントはどちらでもよいように思います。
ただ、ここではサインインの方法について考えなかったので、別途考えることにします。

参考サイト

  1. Windows 10で利用できるアカウントの種類と管理方法:Windows 10 The Latest(1/4 ページ) - @IT
  2. Microsoft アカウントと組織アカウントについて
  3. [Windows 10] ユーザーアカウントの種類とその権限の違いについて - VAIO サポート FAQ / よくあるご質問
  4. [Windows 10] ユーザーアカウントの種類とその権限の違いを知りたい | Sony JP
  5. NEC LAVIE公式サイト > サービス&サポート > Q&A > Q&A番号 017756
  6. Windows 10(ローカルアカウント/Microsoft アカウントとは) | Windows入門ガイド | パナソニック パソコンサポート
  7. Azure AD 登録 と Azure AD 参加 の違い | Japan Azure Identity Support Blog
  8. 【問題点あり】マイクロソフトアカウントを電話番号で作成する(携帯電話/固定電話) | パソコンの困りごとを解決~ネコさやブログ~
  9. Windows10 で「セキュリティの質問」を回避する – 分析室の屋根裏
  10. 企業メールアドレスでMicrosoftアカウントを作成・登録しようとして「職場や学校のメール アドレスを使ってサインアップすることはできません」と表示された時の対処 – やまひで製作所
  11. Windowsでキャッシュされたログオンを無効にする(暗号化ファイルシステムの運用に注意):Tech TIPS - @IT
  12. VLSCに入れなくなるMSアカウントをなんとかする。 | の回想録
  13. MSDN での職場アカウントに関する FAQ | Microsoft Azure
  14. Microsoft アカウントにサインインできない
  15. 【Windows10】マイクロソフトアカウント紐付け環境でインターネット接続トラブルによりログインができない[解決策と対策] | TechLog