---
# System prepended metadata

title: KT#010-yoshiki Windows 入門
tags: [Windows]

---

---
title: KT#010-yoshiki Windows 入門
tags: Windows
---

# はじめに

(一応) わいが仕事でやってる Windows について、クライアント OS として使ってる間はなかなか意識する機会は少ない機能、トラブルシューティングについて紹介  
Linux のトラシューはなんとなくできると思うので、同じくらいの練度で Windows のトラシューがわかるようになってもらえると嬉しい  

ゲーミング PC とかでよく使われてるし Twitter ゲーム女子が「PC 壊れたー助けてー」に颯爽と登場して解決させたらモテるはずなので、仕事にしていない人にとっても有益のはず  


# Windows 特有の概念

書いてから気づいたけど、あまり次に繋がる話はない  
なんとなくこんなものがあることを知ってくれていたらいつか役に立つはず  


## Remote Desktop Protocol (RDP)

Windows ではデフォルトでは SSH できない (インストールすればできる)  
大体、サーバーには RDP 接続で接続する  

(やってみる)  


## Active Directory (AD)

Linux ではあまり意識しない特徴的な概念として Active Directory というのがある  
Windows PC は、デフォルトで Active Directory に参加していない状態 (ワークグループ) という状態と AD (ドメイン) に参加している状態の 2 種類がある  

Active Directory に参加している状態では以下の 2 つの嬉しいことがある  

-   ユーザー・コンピューターの一元管理
-   グループポリシーによる設定管理


### ユーザー・コンピューターの一元管理

AD では、コンピューターとユーザーを管理することができる  
AD で管理されているコンピューターにどのユーザーがログインできるかなどを制御することができる  
ユーザーの観点で言えば、ファイルへのアクセス権限をここで制御することもできる  

例えば、学校の演習室の PC のどの PC にも同じ ID・パスワードでログインできるみたいなことができる  
また、どの PC にログインしても、他の PC で残していたファイルがデスクトップに残ってたりするのも AD で実現できる  

また、AD の認証情報を連携させて色んなサービスにログインできるような構成を実現できる  
例えば、PC にログインする ID・パスワードでメールサーバーにログインして、メールを利用したり、学校の Web サービスにログインできるようになったりする  


### グループポリシー

AD に参加しているコンピューターやユーザーに対して、管理者から設定を強制することができる  
AD 配下のどのコンピューターやユーザーにどの設定を反映させるかということも管理できる  

大体コントロールパネルとかで設定できることはなんでも設定できる  
会社の PC で特定のサイトを見れなくしたり、追加のアプリケーションの設定をさせなくしたりできる  


## レジストリ

結構、トラブルの元になったりするので説明  
Linux で、アプリケーションの設定をするときに、環境変数・設定ファイル・OS のカーネルパラメーターがある  
Windows ではレジストリというもので、Windows OS やアプリケーションの動作が管理されている  
(例えば、時刻同期でどの NTP サーバーを利用するかなど)  
アプリケーションがレジストリを使うかどうかはアプリケーションの実装によるが、利用されていることがまあまあある  


## Windows サービス

Linux の systemctl みたいなものは、Windows Service Control Manager の中で Windows サービスとして動作している  
services.msc を見ると色んなプロセスが動作しているのが見れる  


# トラブルシューティングツール

実際にトラシューをする上でどんな情報を見ていくかという話  


## Event Viewer

Linux の /var/log/messages みたいなものが見れる  
大体、System, Application, Security を見る  
エラーにはレベルが用意されており、Critical、Error レベルのログから問題を確認したりする  


## Resource Monitor

Task Manager よりも CPU・メモリ・ディスク IO が見れたりする  


## [Process Monitor](https://docs.microsoft.com/en-us/sysinternals/downloads/procmon)

Microsoft が公式で提供している外部ツール  
OS の動作がめちゃくちゃ詳細にでてくる  
どのプロセスがどのファイルやレジストリにアクセスしているのかが見れる  

試しに見てみる  


## パケットキャプチャ

ツールというかパケットキャプチャの撮り方  
Wireshark をインストールすればキャプチャ取れるが、デフォルトで取得だけならできる  

取得開始  

```powershell
netsh trace start capture=yes tracefile=c:¥temp¥capture.etl
```

取得終了  

```powershell
netsh trace stop
```

これで capture.etl というファイルが出てくるが、これだと Wireshark から見れないので、etl から pcap 形式に変換する  
< https://github.com/microsoft/etl2pcapng/releases >  

これで Wireshark から解析ができるようになる  


## [Fiddler](https://www.telerik.com/fiddler)

HTTP に特化した、アクセス解析ツール  
ローカルのプロキシとなり、ブラウザだけでなく色々なリクエストの HTTP/HTTPS のログが見れる  
特定の URL へのアクセスを止めて見たりとかもできる  


## [ダンプ解析](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools)

設定をしていれば、Windows OS やアプリケーションがクラッシュして終了したときに、クラッシュした時のメモリ情報をメモリダンプとして残す機能がある  
このメモリダンプからどのプロセスが OS をクラッシュさせたのかがわかる  

