Windows †
別メニュー †
コマンドメモ †
プロセス情報 †
wmic process [where "(条件式)" ] [get <列名>[,<列名>] ...]
CSV形式のフォーマットで出力する
wmic process LIST /format:CSV
メモリサイズが20MB以上のプロセス名とサイズを表示
wmic process where "(workingsetsize > 20000000)" get name,workingsetsize
※CreationDate列はプロセスの起動時間
パフォーマンスカウンタ †
typeperf "オブジェクト名" [オブジェクト名...] -si 間隔 -sc 回数 -f <CSV|TSV|BIN|SQL> -o 出力ファイル名
-- CPU使用率とメモリ使用量を1秒毎に表示
typeperf "\Processor Information(_Total)\% Processor Time" "\Memory\Committed Bytes" -si 1
-- オブジェクト一覧取得
typeperf -qx
-- バイナリファイルの変換
relog <カウンタログ> -f csv -o <出力ファイル名>
セッション操作 †
quser ※ ログインしてるユーザー、ステータス、アイドル時間
query session ※ ログインしてるセッション数確認
reset session ※ セッション切断
-- リモートのセッション状況を確認
qwinsta /server:<接続先ホスト名>
-- リモートのセッションをログオフする
logoff <SID> /server:<接続先ホスト名> /v
-- 最大ユーザー数、最大オープンファイル数、アイドルセッションタイムの確認
net config server
ユーザー情報 †
-- ローカルユーザー情報
net user [ ユーザーID [/domain] ]
※ /domain を付与すると、ドメインコントローラーのユーザー情報を取得
-- ローカルグループ情報
net localgroup
--ファイルアクセス制御
icacls
インストール情報 †
-- インストールソフト一覧
psinfo -s ※ Sysinternalsツール(日本語は文字化けする)
Get-WmiObject Win32_Product
Get-AppxPackage ※ Windows Server 2016以降
wmic product get name /value ※ 表示されないバージョンとかもあり、参考レベル
-- 役割・機能一覧
Get-WindowsFeature
servermanagercmd -query ※非推奨
サービス一覧表示 †
sc query (起動のみ)
sc query state= all (起動停止全部)
sc query state= inactive (停止のみ)
sc qc サービス名 (依存情報などの構成情報の確認)
サービスの依存関係について
- このサービスが依存するシステム コンポーネント
このサービスが起動する際に、この一覧に記載されてるサービスが起動してる必要がある。
このサービスが停止する際は、一覧に記載されてるサービスに関係なく単独で停止する。
- このサービスに依存しているシステム コンポーネント
このサービスが起動する際に、この一覧に記載されてるサービスが起動してる必要がある。
このサービスが停止する際に、この一覧に記載されてるサービスも停止する。
タスクスケジューラーの一覧 †
schtasks /query /fo csv /v >> schtasks-query.csv
ディレクトリのファイル一覧 †
dir C:\ /S /-C | findstr /V "<DIR>"
forfiles [/P パス名] [/M 検索マスク] [/S] [/C コマンド] [/D 日付]
引数を何も指定しない場合は、forfiles /C "cmd /c echo @file" が実行される。
オプション | 説明 |
/M | 特定のファイル名のみ対象とする。ワイルドカード利用可能 |
/S | サブフォルダも対象に含める |
/C | "cmd /c 任意のコマンド"で対象のファイルに対して任意のコマンドを実行できる |
/D | YYYY/MM/DD または NNN で指定。先頭に-で以前。先頭に+で以降と解釈sれる |
/Cで実行するコマンド内で利用できる変数一覧
変数 | 説明 |
@file | ファイル名 |
@fname | ファイル名.拡張子 |
@ext | 拡張子 |
@path | フルパスでのファイル名 |
@relpath | カレントディレクトリからの相対パスでのファイル名 |
@isdir | フォルダーであればTRUE。if内部コマンドと組み合わせ「/C "cmd /c if @isdir==FALSE echo @file"」のように利用 |
@fsize | ファイルサイズ(bytes) |
@fdate | ファイル更新日 |
@ftime | ファイル更新時間 |
(例) カレントディレクトリ配下のファイル名一覧取得
forfiles /S /C "cmd /c echo @path*@fdate @ftime*@fsize"
(例) 90日以前のタイムスタンプを持つファイルを削除
forfiles /d -90 /c "cmd /c del @file"
イベントログ操作 †
イベントビューアから、カスタムビューにてログフィルタを作成し、プロパティのXMLタブ Selct Path〜要素の中をコピペする。
あまりにもエラーメッセージが長いと途切れるかもしれない。実際途切れたことあるので。
(例) 24時間(86400秒)以内にログイン/ログオフしたユーザーをセキュリティログから取得する(上はテキスト形式で出力、下はバイナリ形式で出力)
wevtutil qe Security /f:text /q:"*[System[(EventID=4624 or EventID=4634) and TimeCreated[timediff(@SystemTime) <= 86400000]]]"
wevtutil export-log Security Security.evtx /q:"*[System[(EventID=4624 or EventID=4634) and TimeCreated[timediff(@SystemTime) <= 86400000]]]"
wmicコマンドによるイベントログ出力
(例) システムログ、2018/04/25 00:00:00以降、レベルがエラーのログをCSV形式で出力。(+540は日本時間に合わせてる)
wmic ntevent where "(logfile='system' and timegenerated >= '20180425000000.0+540' and type='error')" list /format:CSV
指定文字 | 説明 |
ComputerName | コンピューター名 |
LogFile | Application、Security、System、DNS Serverなど |
Message | ログのメッセージ |
SourceName | ソース名 |
TimeGenerated | 発生時間。YYYYMMDDHHMMSS.0+540 |
Type | イベントの種類。error、warning、info |
PowerShellによるイベントログ出力
Get-Eventlog [System | Application] [-List | -Newest | -After | -Before ]
Get-Eventlog System -After (Get-Date).adddays(-30) | export-csv -encoding default -path C:\SystemLog.csv
認識してないデバイスを表示する †
set devmgr_show_nonpresent_devices=1
start devmgmt.msc
文字列を検索する †
findstr
makecab(ファイルの分割) †
conf.txt ファイルを作成し以下のパラメータを記述する
------------------------------------
.Set CabinetNameTemplate=file*.cab ;
.Set MaxDiskSize=52428800 ;
.Set Cabinet=on ;
.Set Compress=off ;
.Set DiskDirectoryTemplate= ;
分割対象ファイルのフルパス
------------------------------------
makecab /F conf.txt
※ MaxDiskSize(512byteの倍数である必要あり)で指定したサイズ毎に分割される。
Memory †
タスクマネージャのメモリ使用量は、リソースモニターの使用中+変更済みの容量を合わせた容量。
RAMMapを使用すると更に詳細なメモリ使用領域が確認できる。下記は( )はRAMMapでの表示。
キーワード | 説明 |
使用中(Active) | ページフォールトを発生させることなく直ぐに利用可能なアクティブメモリ。 プロセス(ワーキングセット)やデバイスドライバ、カーネルなどで使用されている使用中のメモリ |
スタンバイ(Standby) | ワーキングセットから削除された削除されたキャッシュメモリ。 ソフトフォールトでActiveメモリに戻すことが可能。ディスクI/O発生させず再利用可能 |
変更中(Modified) | ワーキングセットから削除されたキャッシュメモリで使用中に変更されたデータを含むがディスクへの書き込みが完了していない |
スタンバイ+変更中の合計がタスクマネージャの「キャッシュ済」になる。
タスクマネージャのコミットチャージは、Mapped Fileと、Metafile の Active/Standby/Modifiedすべて除外されてるように思える
つまり、Mapped FileとMetafileは、Activeでも必要に応じて解放可能なのではないか?
RAMMap縦列のカラム
Usage | 説明 |
Process Private | プロセス用メモリ |
Mapped File | ディスク上のファイルに対応する共有可能なメモリマップドファイル(ファイルをメモリに読み込むことで、メモリ内で操作可能になる) |
Shared Memory | 他のプロセスと共有可能なメモリ。ページファイルにページアウトすることが可能 |
Page Table | プロセスの仮想アドレス空間を記述したカーネルモードのメモリ |
Paged Pool | カーネルの割り当てメモリでディスクにページアウトすることが可能 |
Nonpaged Pool | カーネル割り当てページで常に物理メモリに存在する必要がある。常にActive列にのみ表示される |
System PTE | システムのページエントリに使用。I/O領域やカーネルスタック、メモリ記述子リストのようにシステムページを動的にマップする為に利用 |
Session Private | リモートデスクトップセッション用のメモリ |
Metafile | NTFSのメタファイル用メモリ |
AWE | メモリ空間拡大用のAWE機能で利用されるメモリ |
Driver Locked | ドライバーによって割り当てられたメモリでシステムコミットのために予約されている。常にActiveに存在。 Hyper-VやVirtual PCはDiriverdメモリを使用して仮想マシンにRAMを割り当てる |
Kernel Stack | カーネルスレッドのスタックに割り当てられたメモリ |
Unused | 未使用メモリ |
プロセス単位で細かいメモリー使用状況を確認するには、VMMap.exe を使用する。
MSFC(Microsoft Failover Cluster) †
クラスター情報 †
cluster /prop
cluster node /prop
cluster group /prop
cluster res /prop
cluster res /priv
cluster net /prop
cluster netint /prop
cluster res /status
cluster group /status
ckuster res "リソース名" /on /wait ※ 特定リソースをONLINEにする
cluster log /g
※ C:\Windows\Cluster\Reports に出力された Cluster.log を取得(クラスターノード分取得)
コマンド | 説明 |
Get-Cluster | クラスター名情報 |
Get-ClusterNode | クラスターノード情報 |
Get-ClusterNetworkInterface | クラスターインターフェース情報 |
Get-ClusterGroup | クラスターグループ情報 |
Get-ClusterResource | クラスターリソース情報 |
Get-ClusterLog | クラスターログ出力(C:\Windows\Cluster\Reports\Cluster.log) |
Start-ClusterResource | 引数に指定したリソースを ONLINE にする |
シャドウコピー †
コマンド | 説明 |
vssadmin List Shadows | 取得されてるシャドウコピーの一覧 |
vssadmin List ShadowStorage | 記憶域関連付けの一覧(使用量やシャドウ領域のサイズ確認) |
vssadmin List Volumes | シャドウコピーで利用できるボリュームの一覧 |
vssadmin List Providers | 登録されているボリュームシャドウコピーのプロバイダー一覧表示 |
vssadmin List Writers | ボリュームシャドウコピーのサブすくライブライターの一覧 |
diskshadowユーティリティ †
List Writersコマンドでwbadminによるバックアップの -allCriticalオプション指定した時のバックアップ対象ドライブを確認できる。
sysinternals †
Procmon †
- フィルタ
begin with(〜で始まる) end with(〜で終わる) contains(含む) less then(未満) more then(より大きい)
PsExec †
1台または複数台のリモートコンピューター上で任意のプログラムを実行する
リモート先で実行したコマンド結果を、リモート先にリダイレクトする場合は、> の前に ^(CMDの場合)や`(PowerShellの場合)をつける
PsExec [実行ホスト] [オプション] コマンド [ ^> リモート先のファイル出力 ]
オプション | 説明 |
-d | プロセスの終了を待たずにPsExecを終了する |
-c [-f,-v] | 指定したプログラムをローカルからリモートへコピー。-fは上書き、-vは新しいバージョンの場合は上書き |
-s | システムアカウントでプロセスを実施 |
-i | 対話的なデスクトップ上でプログラムを実施 |
-<優先度> | プロセスの実行優先度。-background、-low、-belownormal、-abovenormal、-high、-realtime(低←→高) |
Excel †
VLOOKUP高速化 †
INDEXと、MATCH関数を利用する。サンプルのExcelを参照。
時間操作 †
文字列操作 †
セルを交互に色分けしたい †
数式で偶数になる場合という条件式で色を付ける
=MOD(ROW(),2)=0
値の取得 †
グラフ †
- 軸の数値を実際の値とは別の値に書き換える(飛び抜けた軸の値を省略する時に使う)
軸のオプション表示形式で、ユーザー形式を選択。
[=200]"1200";[=250]"1250";0
200 の値は 1200、250の値は 1250 と表示される。[=100]"",#,##0 とした場合は 100の値が非表示になる。
実際の軸の値が 1220 の時、値から 1000 マイナスし、220 の値にしてグラフを作成し、
軸の項目だけ、0,50,100,150,1200,1250 のように表示すれば、220の値でも軸上は1200〜1250の間になる
ピボットテーブル †
その他 †
- INDEX/MATCHの使い方
=VLOOKUP("A",C5:D8,2)
=INDEX(C5:D8,MATCH("A",C5:C8),2)
この二つは同じ意味
違いは
=INDEX(B5:D8,MATCH("A",C5:C8),1)
とすることで、検索対象C列の左側B列から値を取得できる。
また
ここれは、取得する列を2,1で固定していますが
=INDEX(D5:F8,MATCH("A",C5:C8),MATCH("B",D4:F4))
のように、行、列をMATCH関数で検索することで、マトリックスな検索も出来ます。
- CASE文のような処理を行う
=CHOOSE((DATEDIF(Q6,NOW(),"D")>=0) + (DATEDIF(Q6,NOW(),"D")>=14) + (DATEDIF(Q6,NOW(),"D")>=30) + (DATEDIF(Q6,NOW(),"D")>=90),"1の時","2の時","3の時","4の時")
引数1の値により、引数2以降の値を表示する。引数1が3だったら、引数4の値を表示する
条件がTRUEの場合は、1 になる為、TRUEになる条件によって、表示する値を変えている
- Excelのシート名をセルに表示
=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)
WORD †
自動連番のスタイル作成 †
リボンメニューの [ホーム] - [アウトライン]を選択。
連番が割り振られるリストを選択する。例えば、1.1.1 を選択すると、1.1.1 をワードに表示される。
リストのレベル変更で、自由に 1.1 や 1.1.1.1 など変更可能。他のリストレイアウトなど自由に選べる。
1.1.1 などとなった行にカーソルがあったまま、スタイルから(隠れてるので▼で全て表示させる)[スタイルの作成]をクリックする。
そうすると今、選択してるスタイルを、スタイルとして保存可能。
ようは選択してる行のスタイルを作成することができるということ。
行はアウトラインなどで自由に作成すれば良い。
見出し †
見出しにしたい項目を選択し、[ホーム] - [スタイル] から「見出し1」を選択する。
見出し1 がトップレベルの見出しとなり左のナビゲーションバーにリンクされる。
ナビゲーションバーのリンクを右クリックし「レベル下げ」を行うことで、サブ見出しとなる。
[ホーム] - [スタイル] に「見出し2」が作成される。
箇条書き †
以下のような箇条書きが自動で割り振られるようにするには[ホーム]のスタイルから「リスト段落」を選択する。
1. ----
1.1 ----
1.2 ----
2. ----
2.1 ----
2.2 ----
1.1 の小項目の左側の数値(1.の部分)を自動的に大項目と合わせて採番させるには
その項目にカーソルを合わせて[ホーム]から「段落番号」をクリックする。
更に「段落番号」のプルダウンを選択し「リストレベルの変更」からレベル2(上から2番目)を選択する。
基準にするスタイルを「見出し」に変更することで目次の作成が可能となる。
目次の階層を変更するには、右クリック「段落」から「アウトラインレベル」を変更する。
目次を作成するには [参考資料] の「目次」で見出しレベルのものを選択する。
PowerPoint †
スライドマスター †
表示メニューから選択する。
ページ背景のレイアウトを決めるマスター。<#>を埋め込めば、現在のページが入る。