LoginSignup
0
2

Windows/Active Directory メモ

Last updated at Posted at 2023-09-10

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

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

AD/Windowsの運用について

AD/Windowsの管理コマンドについて

色々なコマンドを覚えておくと運用や不具合対応に役立つ

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

ipconfig
ping
tracert
telnet
netstat
nslookup

ユーザのステータス確認

ロックアウトの確認などができる

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 [<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 [<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は表示名)

>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のステータス確認

>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 [/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 [<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・セキュリティ以外のことは大体ここで見る

起動・シャットダウンタイミングを調べたい場合

【Windows】起動・シャットダウンなどで発生するイベント
上記のサイトを参考にしてください。

下記のログが個人的におすすめ

Kernel-Boot
Kernel-Power
Kernel-General

アカウントのログオンタイミングを調べたい場合

アカウント ログオンイベント

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

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

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

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

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

Windows Updateについて

オフラインアップデート

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

オフラインアップデート手順

1.サービススタック更新プログラム(Windows Update自体を更新)
2.累積的な更新プログラム(OSなどの更新プログラム)
3.適宜セキュリティパッチ

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

サービススタック更新プログラム

サービス スタック更新プログラムと累積更新プログラムの違いは何ですか?

Windows クライアントと Windows Server の両方で累積更新プログラムの方式が使用されており、この方式では、Windows の品質とセキュリティを向上させる多くの修正プログラムが 1 つの更新プログラムにまとめられます。 それぞれの累積更新プログラムには、それ以前のすべての更新プログラムでの変更と修正が含まれます。

サービス スタック更新プログラムは、更新プロセスの信頼性を向上させ、毎月のセキュリティ更新プログラムの最新リリースと機能更新プログラムをインストールするときに発生する可能性のある問題を軽減します。 最新のサービス スタック更新プログラムをインストールしない場合、最新の Microsoft セキュリティ修正プログラムによるデバイスの更新が実行できなくなる恐れがあります。

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

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

その他

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

レジストリ値について

レジストリ値とは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と略することができる

レジストリハイブと実体

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

レジストリ ハイブ サポート ファイル
HKEY_CURRENT_CONFIG System、System.alt、System.log、System.sav
HKEY_CURRENT_USER Ntuser.dat、Ntuser.dat.log
HKEY_LOCAL_MACHINE\SAM Sam、Sam.log、Sam.sav
HKEY_LOCAL_MACHINE\Security Security、Security.log、Security.sav
HKEY_LOCAL_MACHINE\Software Software、Software.log、Software.sav
HKEY_LOCAL_MACHINE\System System、System.alt、System.log、System.sav
HKEY_USERS\.DEFAULT Default、Default.log、Default.sav
レジストリ ハイブ

設定をコマンドで確認したい場合
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のサービスについて

通信要件

Windowsサービス 通信要件

主要なサービス

最低限知っておいたほうがいいサービス

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 グループポリシーについて

グループポリシーの適用

適用タイミング

グループポリシーの更新タイミング

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

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

手動での適用方法

Administrators、またはそれと同等のメンバーシップが、この手順を実行するために最低限必要なメンバーシップです。

  1. ネットワーク ポリシー サーバー (NPS) がインストールされているコンピューターで、タスクバーのアイコンを使用して PowerShell を開きます。
  2. PowerShell プロンプトで、「gpupdate」と入力し、Enter を押します。

よく下記を使う
gpupdate /force

ポリシー適用確認

個人的に一番使いやすいコマンド

gpresult /h ファイル名.html
start ファイル名.html

/hがHTML形式で適用状況を出力してくれる
一応、gpresultのページはこちら

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

グループポリシーの作成について

実装したいGPOを検索し作成

下記のサイトがGPOの一覧を見れた
admx.help
※使い勝手がいいサイトだったが、停止中のため代替サイトを捜索中

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

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

GPOの管理用テンプレートなどで実装できない場合

基本的に管理が面倒だが下記による対応が考えられる
1.レジストリ値による実装
2.PowerShell・Batによる実装

その他

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

グループポリシーのAD追加について

新規グループポリシールールをインポートする方法

カスタムグループポリシーや新しく作成されたグループポリシーをADに追加する方法
MS公式 GitHub管理用テンプレートの更新

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

Windowsの認証について

Windowsは様々な認証がある
Windowsの認証

対話型ログオンのシナリオ概要図

色々な分岐をするため複雑、、、
Windows ログオンのシナリオ

Kerberos認証

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

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

Kerberosの概要

NTLM認証

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

NTLMの概要

Azure ADについて

後日追加予定

勉強方法

業務経験、書籍かMicrosoft公式リファレンスで学ぶ
Microsoft公式のGitHubなどもある

ひとめでわかるシリーズ

ひとめでわかるWindows Server Active Directory 2019

ひとめでわかるWindows Server 2019

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

Microsoft公式 インサイド Windows

インサイド Windows 第7版 下

インサイド Windows 第7版 上

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

PowerShell実践ガイドブック

PowerShell 実践ガイドブック

PowerShellは使えたほうがいい
網羅的にPowerShellが載っている
内容重め

Windows10 上級リファレンス

Windows10 上級リファレンス

Windows10のことを詳しく書いてある
Windowsを詳しく知りたい
細かなカスタマイズをしたい人向け

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2