Windows/Active Directory メモ

エンタープライズ環境で、Windowsは切っても切り離せないくらいよく使われている
ADやWindowsの管理者になったが、運用に不安がある情シス向けの記事

※本記事はMicrosoft公式ドキュメントベースの記事です。

## AD/Windowsの運用について
### AD/Windowsの管理コマンドについて
色々なコマンドを覚えておくと運用や不具合対応に役立つ

https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/windows-commands

ネットワークのコマンドは下記を参照

https://qiita.com/eguchi7309/items/c87f26a4b752d5c935ae#%E4%B8%8D%E5%85%B7%E5%90%88%E5%AF%BE%E5%BF%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

>ipconfig
>ping
>tracert
>telnet
>netstat
>nslookup

#### ユーザのステータス確認
ロックアウトの確認などができる

```net user構文
net user [<UserName> {<Password> | *} [<Options>]] [/domain]
net user [<UserName> {<Password> | *} /add [<Options>] [/domain]]
net user [<UserName> [/delete] [/domain]]
```

よく使う構文
```
net user
net user <ローカルユーザ名>
net user <ドメインユーザ名> /domain
```

下記のような結果が返ってくる
```
>net user <ユーザ名>
ユーザー名                           <ユーザ名>
フル ネーム
コメント
ユーザーのコメント
国/地域番号                          000 (システム既定)
アカウント有効                       ロック
アカウントの期限                     無期限

最終パスワード変更日時               2020/03/05 19:29:35
パスワード有効期間                   無期限
パスワード次回変更可能日時           2020/03/05 19:29:35
パスワードあり                       No
ユーザーによるパスワード変更可能     Yes

ログオン可能なワークステーション     すべて
ログオン スクリプト
ユーザー プロファイル
ホーム ディレクトリ
最終ログオン日時                     2023/09/10 11:32:40

ログオン可能時間                     すべて

所属しているローカル グループ        *Administrators
                                     *Performance Log Users
所属しているグローバル グループ      *なし
コマンドは正常に終了しました。
```


#### 環境変数の確認
```set構文
set [<Variable>=[<String>]]
set [/p] <Variable>=[<PromptString>]
set /a <Variable>=<Expression>
```

よく使う構文
```
set
```

環境変数の一覧を取得できる
```環境変数の一覧を確認
>set
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\PowerShell\6\;C:\Users\<ユーザ名>\AppData\Local\Microsoft\WindowsApps;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 10, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=8e0a
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
PUBLIC=C:\Users\Public
QT_DEVICE_PIXEL_RATIO=auto
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\Users\ユーザ名~1\AppData\Local\Temp
TMP=C:\Users\ユーザ名~1\AppData\Local\Temp
USERDOMAIN=DESKTOP-ABCDEFG
USERDOMAIN_ROAMINGPROFILE=DESKTOP-ABCDEFG
USERNAME=<ユーザ名>
USERPROFILE=C:\Users\<ユーザ名>
```

特定の環境変数はechoで取得するのが簡単
%で囲む (大文字小文字を区別しない)
```環境変数名がわかっている場合
>echo %PATH%
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\PowerShell\6\;C:\Users\<ユーザ名>\AppData\Local\Microsoft\WindowsApps;
```

#### サービスのステータス確認

サービスの起動状況が確認できる

```sc query構文
sc [<ServerName>] query [<ServiceName>] [type= {driver | service | all}] [type= {own | share | interact | kernel | filesys | rec | adapt}] [state= {active | inactive | all}] [bufsize= <BufferSize>] [ri= <ResumeIndex>] [group= <GroupName>]
```

よく使う構文

```
sc query
sc query <サービス名>
sc query | findstr <検索文字列>
```

サービス名の検索 (DISPLAY_NAMEは表示名）
```Windowsから始まるサービス名の検索
>sc query | findstr Windows
DISPLAY_NAME: Windows Audio Endpoint Builder
DISPLAY_NAME: Windows Audio
DISPLAY_NAME: Windows Event Log
DISPLAY_NAME: Windows Font Cache Service
DISPLAY_NAME: Windows ライセンス マネージャー サービス
DISPLAY_NAME: Windows Defender Firewall
DISPLAY_NAME: Windows セキュリティ サービス
DISPLAY_NAME: Windows Image Acquisition (WIA)
DISPLAY_NAME: Windows Biometric Service
DISPLAY_NAME: Windows Connection Manager
DISPLAY_NAME: Windows Connect Now - Config Registrar
DISPLAY_NAME: Windows Management Instrumentation
DISPLAY_NAME: Windows プッシュ通知システム サービス
DISPLAY_NAME: Windows Search
DISPLAY_NAME: Windows Update
DISPLAY_NAME: Windows Push Notifications User Service_14df01
```

サービス名 eventlogのステータス確認

``` Windows Event Logのステータス確認
>sc query eventlog
SERVICE_NAME: eventlog
        TYPE               : 30  WIN32
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
```

#### タスクリストの取得

```tasklist構文
tasklist [/s <Computer> [/u [<Domain>\]<UserName> [/p <Password>]]] [{/m <Module> | /svc | /v}] [/fo {table | list | csv}] [/nh] [/fi <Filter> [/fi <Filter> [ ... ]]]
```

よく使う構文

```
tasklist
tasklist /SVC
```

タスクの一覧を取得 /SVCをつけるとサービス名も取得可能

```
>tasklist
イメージ名                     PID セッション名     セッション# メモリ使用量
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0          8 K
System                           4 Services                   0         96 K
Secure System                   72 Services                   0     23,852 K
Registry                       132 Services                   0     25,752 K
smss.exe                       564 Services                   0        948 K
csrss.exe                      888 Services                   0      2,936 K
wininit.exe                    976 Services                   0      3,928 K
csrss.exe                     1012 Console                    1      4,648 K
services.exe                   632 Services                   0     10,412 K
LsaIso.exe                    1028 Services                   0      3,092 K
lsass.exe                     1048 Services                   0     15,836 K
winlogon.exe                  1056 Console                    1      6,648 K
svchost.exe                   1216 Services                   0     47,008 K
```

#### RDPログオンしているユーザの確認
```query session構文
query session [<SessionName> | <UserName> | <SessionID>] [/server:<ServerName>] [/mode] [/flow] [/connect] [/counter]
```

よく使う構文

```
query session /server:<IPアドレス>
```

リモートサーバのログオンユーザの確認 (net userで追加確認)
```
>query session /server:<IPアドレス>
    SESSIONNAME     USERNAME        ID STATE    TYPE    DEVICE
    console         Administrator1  0 active    wdcon
    >rdp-tcp#1      User1           1 active    wdtshare
    rdp-tcp                         2 listen    wdtshare
                                    4 idle
                                    5 idle
```



### 不具合対応/Windows Event Viewer
不具合が発生した際にはログを分析することで原因を切り分けることができます。
ログにおいて重要なものは発生タイミングなどの共通点を見つけることで不具合の原因が判明することがあります。

■起動方法
Win+r > eventvwr > Enter で起動できる

■ログの種類
・セキュリティ
　ログオンなどセキュリティに関するログ
・System
　電源の起動など様々なOSの主要機能のログ
・Application
　System・セキュリティ以外のことは大体ここで見る

#### 起動・シャットダウンタイミングを調べたい場合
<a href="https://laboradian.com/win-system-power-state-events/">【Windows】起動・シャットダウンなどで発生するイベント</a>
上記のサイトを参考にしてください。

下記のログが個人的におすすめ
>Kernel-Boot
>Kernel-Power
>Kernel-General

#### アカウントのログオンタイミングを調べたい場合
<a href="https://learn.microsoft.com/ja-jp/windows/security/threat-protection/auditing/basic-audit-logon-events">アカウント ログオンイベント</a>

<table>
<thead>
 <tr><th>ログオンイベント</th><th>説明</th><tr>
</thead>
 <tr><td>4624</td><td>ユーザーがコンピューターに正常にログオンしました。</td></tr>
 <tr><td>4625</td><td>ログオンエラー。 不明なユーザー名またはパスワードが正しくない既知のユーザー名でログオン試行が行われました。</td></tr>
 <tr> <td>4634</td> <td>ユーザーのログオフ プロセスが完了しました。</td> </tr>
 <tr> <td>4647</td> <td>ユーザーがログオフ プロセスを開始しました。</td> </tr>
 <tr> <td>4648</td> <td>ユーザーは、別のユーザーとして既にログオンしているときに、明示的な資格情報を使用してコンピューターに正常にログオンしました。</td> </tr>
 <tr> <td>4779</td> <td>ユーザーがログオフせずにターミナル サーバー セッションを切断しました。</td> </tr>
</table>

	
	
#### セキュリティ侵害の兆候を調べたい場合

https://learn.microsoft.com/ja-jp/windows-server/identity/ad-ds/plan/appendix-l--events-to-monitor

セキュリティ侵害の兆候ログがたくさん記載されている


#### そもそもイベントログとは

https://learn.microsoft.com/ja-jp/windows/win32/eventlog/event-logging

イベントログがそもそもわからない人は上記サイトを参考

## Windows Updateについて
### オフラインアップデート

https://catalog.update.microsoft.com/Home.aspx


上記サイトから累積更新プログラムとセキュリティ更新プログラムなどが取得できる。

#### オフラインアップデート手順
１．サービススタック更新プログラム(Windows Update自体を更新)
２．累積的な更新プログラム(OSなどの更新プログラム）
３．適宜セキュリティパッチ

**サービススタック更新プログラムを先に当てないと何度更新やっても失敗する場合がある**

<a href="https://learn.microsoft.com/ja-jp/windows/deployment/update/servicing-stack-updates">サービススタック更新プログラム</a>
>サービス スタック更新プログラムと累積更新プログラムの違いは何ですか?
>
>Windows クライアントと Windows Server の両方で累積更新プログラムの方式が使用されており、この方式では、Windows の品質とセキュリティを向上させる多くの修正プログラムが 1 つの更新プログラムにまとめられます。 それぞれの累積更新プログラムには、それ以前のすべての更新プログラムでの変更と修正が含まれます。
>
>サービス スタック更新プログラムは、更新プロセスの信頼性を向上させ、毎月のセキュリティ更新プログラムの最新リリースと機能更新プログラムをインストールするときに発生する可能性のある問題を軽減します。 最新のサービス スタック更新プログラムをインストールしない場合、最新の Microsoft セキュリティ修正プログラムによるデバイスの更新が実行できなくなる恐れがあります。

https://support.microsoft.com/ja-jp/topic/2023-%E5%B9%B4-8-%E6%9C%88-22-%E6%97%A5-kb5029331-os-%E3%83%93%E3%83%AB%E3%83%89-19045-3393-%E3%83%97%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC-9f6c1dbd-0ee6-469b-af24-f9d0bf35ca18

KB番号で検索すると上記のようなサイトが出てくる
事前に確認しておくべき（前提条件、既知の不具合など）

※Microsoft Updateカタログでもリンクが付与されている



#### その他

Windows OS 更新リリースタイミング

https://learn.microsoft.com/ja-jp/windows/deployment/update/release-cycle

## レジストリ値について
レジストリ値とはWindowsの設定を保持するデータベース
レジストリ以外にはiniファイルなどにより設定を保持することができる

■レジストリエディタの起動
Win+R > regedit > Enter

■コマンドによる操作
```
reg query #参照
reg add #追加
reg delete #削除
...
```


### レジストリの概要
・HKEY_CURRENT_USERは現在のユーザの設定
・HKEY_LOCAL_MACHINEはコンピュータ全体の設定
・HKEY_CURRENT_USERはHKCUと略することができる
・HKEY_LOCAL_MACHINEはHKLMと略することができる

https://learn.microsoft.com/ja-jp/troubleshoot/windows-server/performance/windows-registry-advanced-users

### レジストリハイブと実体

レジストリ ハイブとそのファイルの実態

<table> <thead>
 <tr><th>レジストリ ハイブ</th><th>サポート ファイル</th></tr>
</thead>
<tr><td>HKEY_CURRENT_CONFIG</td> <td>System、System.alt、System.log、System.sav</td></tr>
<tr><td>HKEY_CURRENT_USER</td><td>Ntuser.dat、Ntuser.dat.log</td></tr>
<tr><td>HKEY_LOCAL_MACHINE\SAM</td><td>Sam、Sam.log、Sam.sav</td></tr>
<tr><td>HKEY_LOCAL_MACHINE\Security</td><td>Security、Security.log、Security.sav</td></tr>
<tr><td>HKEY_LOCAL_MACHINE\Software</td><td>Software、Software.log、Software.sav</td></tr>
<tr><td>HKEY_LOCAL_MACHINE\System</td><td>System、System.alt、System.log、System.sav</td></tr>
<tr><td>HKEY_USERS\.DEFAULT</td><td>Default、Default.log、Default.sav</td></tr>
</table>
<a href="https://learn.microsoft.com/ja-jp/windows/win32/sysinfo/registry-hives">レジストリ ハイブ</a>

設定をコマンドで確認したい場合
reg query でダークモードの確認
>0: ダークモード
>1: ライトモード
```
>reg query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize /v AppsUseLightTheme 

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize
    AppsUseLightTheme    REG_DWORD    0x0
```

## Windowsのサービスについて
### 通信要件
<a href="https://learn.microsoft.com/ja-jp/troubleshoot/windows-server/networking/service-overview-and-network-port-requirements">Windowsサービス 通信要件</a>

### 主要なサービス
最低限知っておいたほうがいいサービス
#### Windows Time
　NTP(Network Time Protocol)による同期を行うサービス
　デフォルトは time.windows.com と同期をしている

#### Windows Update
　Windowsのアップデートを定期的に行うサービス
　Windows Updateを管理するためにWSUSサーバを立てることがある

#### Microsoft Defender Antivirus Service
　旧称 Windows Defender
　マルウェア対策用のサービス

#### RDS(Remote Desktop Service)
　Remote Desktop接続を行うためのサービス
　リモートによるサーバの管理などに使われる

#### WMI(Windows Management Instrument)
　Windowsの様々な情報を取得できるサービス
　監視やスキャンなどに使われる


## AD グループポリシーについて
### グループポリシーの適用
#### 適用タイミング
<a href="https://learn.microsoft.com/ja-jp/troubleshoot/windows-server/networking/service-overview-and-network-port-requirements">グループポリシーの更新タイミング</a>

>グループ ポリシーは、ドメイン メンバー コンピューターを再起動したときに、またはユーザーがドメイン メンバー コンピューターにログオンしたときに自動的に更新します。 さらに、グループ ポリシーは定期的に更新します。 既定では、この定期的な更新は最大 30 分のランダム オフセットでは 90 分ごとに実行します。

・コンピュータに割り当てたポリシー →再起動時
・ユーザに割り当てたポリシー →ログオン時
・その他 定期的に更新される（設定により変更ができる）

#### 手動での適用方法
>Administrators、またはそれと同等のメンバーシップが、この手順を実行するために最低限必要なメンバーシップです。
>
>1. ネットワーク ポリシー サーバー (NPS) がインストールされているコンピューターで、タスクバーのアイコンを使用して PowerShell を開きます。
>2. PowerShell プロンプトで、「gpupdate」と入力し、Enter を押します。

よく下記を使う
``` gpupdate /force ```

#### ポリシー適用確認
個人的に一番使いやすいコマンド
```
gpresult /h ファイル名.html
start ファイル名.html
```
/hがHTML形式で適用状況を出力してくれる
一応、gpresultのページは<a href="https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/gpresult">こちら</a>

:::note info
Administrator権限で実行しないとコンピュータのポリシーは見れない
Administrator権限でログインしたことがないとエラーが出たりする？ RSoPがどうとか
:::

### グループポリシーの作成について
#### 実装したいGPOを検索し作成
下記のサイトがGPOの一覧を見れた
<a href="https://admx.help/">admx.help</a>
※使い勝手がいいサイトだったが、停止中のため代替サイトを捜索中

AD GPO やりたいこと で検索する
　→出てきたらおそらく実装できる

作成方法はありふれているので省略

#### GPOの管理用テンプレートなどで実装できない場合
基本的に管理が面倒だが下記による対応が考えられる
１．レジストリ値による実装
２．PowerShell・Batによる実装


#### その他

・アプリケーションのインストールは.msi形式であればデフォルト機能でインストール可能
・コンピュータのポリシーの実行権限は NT_AUTHORITY\SYSTEM
・ユーザのポリシーの実行権限は ログインユーザ
・カスタムグループポリシー（デフォルトのWindowsアプリ以外)のものは事前にadml/admxファイルを所定の位置に配置(後述)
・GPOで設定できるポリシーはレジストリ値でもできる(非推奨)
　→大体のポリシーは裏でレジストリ値が書き換えられているだけ


### グループポリシーのAD追加について
#### 新規グループポリシールールをインポートする方法
カスタムグループポリシーや新しく作成されたグループポリシーをADに追加する方法
<a href="https://jpwinsup.github.io/blog/2022/06/23/ActiveDirectory/GroupPolicy/administrative-templates/">MS公式 GitHub管理用テンプレートの更新</a>

“PolicyDefinitions” フォルダー配下にadmx/admlファイルを配置


## Windowsの認証について
Windowsは様々な認証がある
<a href="https://learn.microsoft.com/ja-jp/windows-server/security/windows-authentication/windows-authentication-overview">Windowsの認証</a>


#### 対話型ログオンのシナリオ概要図
<img width="400" src="https://learn.microsoft.com/ja-jp/windows-server/security/media/windows-logon-scenarios/authn_lsa_architecture_client.gif">

色々な分岐をするため複雑、、、
<a href="https://learn.microsoft.com/ja-jp/windows-server/security/windows-authentication/windows-logon-scenarios">Windows ログオンのシナリオ</a>

#### Kerberos認証
ADを運用すると必ず聞く
・ADによる認証に使われる（SSOの実装）
　ADへユーザの認証→チケット発行用チケット(TGT)が発行される
　アクセスする際にTGTを渡すことでアクセス用チケットを発行してもらう
　権限がない場合は、認証ポップアップが表示される

・アクセスさきのSPN（ホスト名）がわからないとNTLMへダウングレード

<a href="https://learn.microsoft.com/ja-jp/windows-server/security/kerberos/kerberos-authentication-overview">Kerberosの概要</a>

#### NTLM認証
・チャレンジレスポンス型
・レガシーアプリケーションの認証に使用
・ドメイン コントローラー以外でのログオン認証にも使用

<a href="https://learn.microsoft.com/ja-jp/windows-server/security/kerberos/ntlm-overview">NTLMの概要</a>


## Azure ADについて
**後日追加予定**

## 勉強方法
業務経験、書籍かMicrosoft公式リファレンスで学ぶ
Microsoft公式のGitHubなどもある
#### ひとめでわかるシリーズ
<a target="_blank" href="https://www.amazon.co.jp/%25E3%2581%25B2%25E3%2581%25A8%25E7%259B%25AE%25E3%2581%25A7%25E3%2582%258F%25E3%2581%258B%25E3%2582%258BActive-Directory-Windows-Server-2019%25E7%2589%2588/dp/4822253880/ref=sr_1_7?&_encoding=UTF8&tag=cbltowl7309-22&linkCode=ur2&linkId=d4860e655fd024cfb72dea27543239e2&camp=247&creative=1211">ひとめでわかるWindows Server Active Directory 2019</a>
<img width="150" src="https://m.media-amazon.com/images/I/41gGoT2nsVL._SX391_BO1,204,203,200_.jpg">

<a target="_blank" href="https://www.amazon.co.jp/%25E3%2581%25B2%25E3%2581%25A8%25E7%259B%25AE%25E3%2581%25A7%25E3%2582%258F%25E3%2581%258B%25E3%2582%258BWindows-Server-2019-%25E5%25A4%25A9%25E9%2587%258E-%25E5%258F%25B8/dp/4822253872/ref=sr_1_10?&_encoding=UTF8&tag=cbltowl7309-22&linkCode=ur2&linkId=61926ab902faf12070c30daf6a35f08c&camp=247&creative=1211">ひとめでわかるWindows Server 2019</a>
<img width="150" src="https://m.media-amazon.com/images/I/41nzS3TByjL._SX397_BO1,204,203,200_.jpg">

ページ数は多いが画像も多く読みやすい
Hyper-Vなどもある
基本的な内容
Windows Serverを学ぶならまずはこれ

#### Microsoft公式 インサイド Windows

<a target="_blank" href="https://www.amazon.co.jp/%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25B5%25E3%2582%25A4%25E3%2583%2589Windows-%25E7%25AC%25AC7%25E7%2589%2588-%25E4%25B8%258B-Andrea-Allievi-ebook/dp/B0BCG6X7QN/ref=sr_1_2?&_encoding=UTF8&tag=cbltowl7309-22&linkCode=ur2&linkId=2d6fac439b30daf41e0315d4a5b127d4&camp=247&creative=1211">インサイド Windows 第7版 下</a>
<img width="150" src="https://m.media-amazon.com/images/I/41fM6pGMV1L._SX260_.jpg">

<a target="_blank" href="https://www.amazon.co.jp/%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25B5%25E3%2582%25A4%25E3%2583%2589Windows-%25E7%25AC%25AC7%25E7%2589%2588-%25E4%25B8%258A-Pavel-Yosifovich-ebook/dp/B07DJ1Q2B4/ref=sr_1_1?&_encoding=UTF8&tag=cbltowl7309-22&linkCode=ur2&linkId=501b0bd6c207a49ff1ab8a965cc1f71c&camp=247&creative=1211">インサイド Windows 第7版 上</a>
<img width="150" src="https://m.media-amazon.com/images/I/51-Ut2bG4jL._SX260_.jpg">

Microsoft公式が発行している本
これより詳しい本は恐らくない
辞書のような分厚さ
知りたいポイントをピンポイントで調べるのに向いている
Kindle版推奨


#### PowerShell実践ガイドブック
<a target="_blank" href="https://www.amazon.co.jp/PowerShell%25E5%25AE%259F%25E8%25B7%25B5%25E3%2582%25AC%25E3%2582%25A4%25E3%2583%2589%25E3%2583%2596%25E3%2583%2583%25E3%2582%25AF-%25E3%2582%25AF%25E3%2583%25AD%25E3%2582%25B9%25E3%2583%2597%25E3%2583%25A9%25E3%2583%2583%25E3%2583%2588%25E3%2583%2595%25E3%2582%25A9%25E3%2583%25BC%25E3%2583%25A0%25E5%25AF%25BE%25E5%25BF%259C%25E3%2581%25AE%25E6%25AC%25A1%25E4%25B8%2596%25E4%25BB%25A3%25E3%2582%25B7%25E3%2582%25A7%25E3%2583%25AB%25E3%2582%2592%25E5%25BE%25B9%25E5%25BA%2595%25E8%25A7%25A3%25E8%25AA%25AC-%25E5%2590%2589%25E5%25B4%258E-%25E7%2594%259F-ebook/dp/B07D73G2X7/ref=sr_1_1?&_encoding=UTF8&tag=cbltowl7309-22&linkCode=ur2&linkId=e92c292527e767e279a00ca0aa9e5672&camp=247&creative=1211">PowerShell 実践ガイドブック</a>
<img width="150" src="https://m.media-amazon.com/images/I/61ywcS7woNL.jpg">
PowerShellは使えたほうがいい
網羅的にPowerShellが載っている
内容重め

#### Windows10 上級リファレンス

<a target="_blank" href="https://www.amazon.co.jp/%25E6%259C%2580%25E6%2596%25B0-Windows-10-%25E4%25B8%258A%25E7%25B4%259A%25E3%2583%25AA%25E3%2583%2595%25E3%2582%25A1%25E3%2583%25AC%25E3%2583%25B3%25E3%2582%25B9-%25E5%2585%25A8%25E9%259D%25A2%25E6%2594%25B9%25E8%25A8%2582%25E7%25AC%25AC2%25E7%2589%2588-ebook/dp/B08FDJ71HT/ref=sr_1_1?&_encoding=UTF8&tag=cbltowl7309-22&linkCode=ur2&linkId=a6e0001870d279f45b58f53d44927cda&camp=247&creative=1211">Windows10 上級リファレンス</a>
<img width="150" src="https://m.media-amazon.com/images/I/41L9yTA-dqL.jpg">
Windows10のことを詳しく書いてある
Windowsを詳しく知りたい
細かなカスタマイズをしたい人向け