はじめに †
Windowsでbashを手軽に使いたいなどでbashを使えるようにすれば、LinuxTips/チートシートの一部を流用できます。
パッケージ(Chocolatey) †
更新 †
インストール †
強制インストール †
1
|
| choco install -f <パッケージ名>
|
パッケージ検索 †
1
2
|
| choco list
choco list <パッケージ名>
|
インストール済みのパッケージ一覧 †
アンインストール †
権限 †
アプリ起動時の権限昇格を簡単に行う †
- アプリ名を検索して起動する場合、[Ctrl]+[Shift]+[Enter]
- アイコン経由で起動する場合、右クリック→[管理者として実行]
ライセンス †
プロダクトキーを差し替える †
1
2
3
4
| -
!
-
!
| slmgr /ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
slmgr /dlv
|
エクスプローラー †
任意のフォルダでコマンドプロンプトを起動 †
- [Alt]+D, cmd, [Enter]
応用例. [Alt]+D, cmd /c dir /b > hoge.txt, [Enter]
- Shiftを押しながらフォルダを右クリック→[コマンド ウインドウをここで開く]
ネットワーク †
相手のコンピュータ名を取得 †
静的経路設定 †
1
2
3
4
5
6
7
8
| -
!
-
!
| route -p add <IP|ネットワークアドレス> mask <サブネットマスク> <デフォルトゲートウェイ> metric <メトリック> if <インターフェイス番号(route printで確認できる)>
route -p add 172.25.32.0 mask 255.255.255.0 172.25.32.254 metric 1 if 19
REM 削除
route delete <IP|ネットワークアドレス>
|
特定のポートを開いているプロセスを調査 †
1
2
3
4
5
6
7
| -
|
|
!
-
!
| netstat /ab > <結果出力先>
netstat /ao | findstr LISTENING
|
ホップ数(中継機器数)を取得 †
統計情報の表示 †
共有フォルダのマウント/アンマウント †
1
2
3
4
5
6
|
-
!
| net use <マウント先> <共有パス> <パスワード> /user:<ユーザー名>
net use <マウント先> /d /y
net use z: \\192.168.50.2\data foo /user:bar
net use /d /y z:
|
指定したポートでの疎通確認 †
1
2
3
4
5
6
7
8
9
| -
!
-
!
-
!
-
!
| psping <IP>:<port>
psping google.co.jp:80
nping -tcp -p <port> <IP>
nping -tcp -p 80 google.co.jp
|
TCPグローバルパラメータの取得 †
1
|
| netsh int tcp show global
|
MTU確認/変更 †
1
2
3
4
5
6
| -
!
-
|
|
!
| netsh interface ipv4 show interfaces
netsh interface ipv4 set subinterface <interface name> mtu=<MTU値>
|
名前解決 †
1
2
| -
!
| nslookup <名前|IP> <DNSサーバー(省略可能)>
|
DNSキャッシュのクリア †
1
2
3
4
5
6
7
8
9
10
11
| -
!
-
!
-
!
| ipconfig /flushdns
net stop dnscache
net start dnscache
ipconfig /displaydns
chrome://net-internals/#dns
DNS - Clear host cache
|
DHCPサーバーから取り直し †
1
2
3
4
5
6
|
-
!
-
!
| ipconfig /renew <アダプタ名(省略可能, ワイルドカードもOK)>
ipconfig /renew
ipconfig /renew イーサネット
|
静的ルーティングの表示 †
ARPテーブルを表示 †
ARPテーブルのクリア †
ログイン時にネットワークドライブを接続状態にする †
割り当て作成時に[サインイン時に再接続]を有効にしても、ログイン後にドライブをダブルクリックしないと接続しない場合の対処
- gpedit.msc
- [管理用テンプレート]-[システム]-[ログオン]
- [コンピュータ起動時とログイン時にネットワークを常に待つ]を有効にする
ファイアーウォール †
ポリシー確認 †
1
2
3
4
| -
!
-
!
| netsh advfirewall show allprofiles
netsh advfirewall show currentprofile
|
ルール確認 †
1
2
3
4
5
| -
|
!
-
-
| netsh advfirewall firewall show rule name=all verbose > <出力先>
netsh advfirewall firewall show rule name=all dir=in type=dynamic
|
調査 †
共有ライブラリの依存関係を調べる †
- Dependency Walkerを使う
- dumpbinを使う(要Visual Studio)
VisualStudio*コマンドプロンプトを起動する(環境変数の関係で直接dumpbinを叩いても動かない)
1
|
| bin/dumpbin /DEPENDENTS <調査対象パス>
|
共有ライブラリ内のシンボル名を調べる †
- Dependency Walkerを使う(*.dll,*.exe)
- dumpbinを使う(要Visual Studio)
VisualStudio*コマンドプロンプトを起動する(環境変数の関係で直接dumpbinを叩いても動かない)
1
|
| bin/dumpbin /SYMBOLS <調査対象パス>
|
名前付きパイプが有効か調べる †
1
2
3
4
5
6
| -
!
-
!
-
!
|
pipelist
pipelist | findstr <名前付きパイプ名>
|
タスク情報の取得 †
1
2
3
4
5
6
7
8
9
10
11
12
13
| -
!
-
!
-
!
-
!
-
!
| tasklist
wmic process get Caption, Handle, HandleCount, ThreadCount, WorkingSetSize, PeakWorkingSetSize, VirtualSize, PeakVirtualSize, PageFileUsage, PeakPageFileUsage, PageFaults
tasklist /M <DLL名>
tasklist /SVC | findstr svchost.exe
tasklist /FI "<条件>"
|
システム情報の取得 †
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| -
!
-
!
-
!
-
!
-
!
-
!
-
!
-
!
-
!
-
!
-
!
-
!
| systeminfo
fsutil fsinfo drives
netstat -ano
whoami /all
net use
net view
net share
chcp
wmic csproduct
wmic csproduct get identifyingnumber
wmic csproduct get UUID
wmic baseboard get serialnumber
|
電源 †
スリープを解除する可能性を調べる †
1
2
3
4
5
6
7
8
| -
!
-
!
-
!
-
!
|
powercfg /waketimers
powercfg -devicequery wake_armed
powercfg -lastwake
|
スリープを抑止する可能性を調べる †
1
2
3
4
| -
!
-
!
|
powercfg /requests
|
セキュリティ †
HDDのデータを完全に消去する †
1
2
3
4
5
6
7
| -
!
-
!
-
!
| cipher /w:<ドライブ名>
cipher /w:i:
|
ディスク †
パーティションを削除する †
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| -
|
|
!
-
!
-
!
-
!
|
diskpart
list disk
select disk <ディスク番号>
list partition
select patition <パーティション番号>
delete patition
exit
|
ファイル/フォルダ †
ファイル/フォルダのコピー †
1
2
3
4
| -
|
|
!
| robocopy <コピー元> <コピー先> /E /COPYALL /R:<リトライ回数(既定値1,000,000)> /W:<リトライ間隔(既定値30秒)> /NP /UNILOG:<ログ出力先>
|
シンボリックリンクを作成 †
1
2
3
| -
|
!
| mklink /D <シンボリックリンクパス> <実体のパス>
|
ハードリンクを作成 †
1
2
| -
!
| mklink /H <ハードリンクパス> <実体のパス>
|
証明書 †
自己証明書を作成(powershell) †
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| -
|
|
|
!
-
!
|
$subject="[email protected]"
$expiryDate = (Get-Date).AddYears(100)
$outputFilePath=".\out.crt"
$cert = New-SelfSignedCertificate `
-Subject "${subject}" `
-KeyAlgorithm RSA `
-KeyLength 4096 `
-HashAlgorithm sha256 `
-NotAfter ${expiryDate} `
-CertStoreLocation "Cert:\CurrentUser\My" `
-KeyExportPolicy NonExportable `
-Provider "Microsoft Enhanced Cryptographic Provider v1.0"
Export-Certificate -cert $cert -FilePath "${outputFilePath}"
|
自己証明書を作成(makecert) †
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| -
|
|
!
-
!
| "C:\Program Files (x86)\Windows Kits\10\bin\x64\makecert.exe" ^
-n <サブジェクト> ^
-a <署名アルゴリズム> ^
-e <有効期限> ^
-ss <格納先証明書ストア(Local|My)> ^
-r ^
-sky <キータイプ(signature|exchange)> ^
-sk <キーコンテナ名>
"C:\Program Files (x86)\Windows Kits\10\bin\x64\makecert.exe" -n "[email protected]" -a sha256 -e 12/31/2100 -ss My -r -sky exchange -sk foo
|
pfxファイルからX509証明書(der)の取得 †
1
|
| Get-PfxCertificate -FilePath <pfxファイルパス> | Export-Certificate -FilePath <出力先ファイルパス> -Type CERT
|
証明書ストア †
証明書ストアにアクセス †
1
2
3
4
5
6
7
8
9
10
11
12
13
| -
!
-
!
-
|
|
|
|
!
| Get-ChildItem Cert:\CurrentUser\My\
certutil -store my
Get-ChildItem Cert:\CurrentUser\AuthRoot\
certutil -store authroot
Get-ChildItem Cert:\LocalMachine\root\
|
スマートカード †
情報取得 †
証明書のインポート †
1
2
3
4
5
6
7
| -
!
-
!
-
!
| certutil -csp <プロバイダー名> -importpfx <pfxファイルパス>
certutil -pin <PIN> -csp <プロバイダー名> -importpfx <pfxファイルパス>
certutil -csp "Microsoft Base Smart Card Crypto Provider" -importpfx ".\foo.pfx"
|
証明書の削除 †
1
2
3
4
5
| -
!
-
!
| certutil -csp <プロバイダー名> -delkey <キーコンテナ名>
certutil -csp "Microsoft Base Smart Card Crypto Provider" -delkey "owhpg324npgsu2t"
|
ショートカット †
プログラムの実行 †
- [Windowsキー]-[プログラム名など]
- Everythingをショートカットで表示して、[プログラム名(パスが通っている必要はないし、曖昧な名前でもok)]
- エクスプローラー上で、[Alt+D]-[プログラム名(パスが通っている必要がある)]
- [Windowsキー+R]-[プログラム名(パスが通っている必要がある)](Vista以降では使う必要性を感じない)
高DPI †
高DPIに対応していないアプリでレイアウトが崩れて使い物にならない場合の回避策 †
- 対象アプリのプロパティを開き、[互換性]-[高DPI設定では画面のスケーリングを無効にする]にチェックを入れて使う
検索 †
コマンドプロンプトから検索 †
1
2
3
| -
|
!
| where /R <フォルダパス> <検索条件>
|
サービス †
起動/停止 †
1
2
3
4
5
6
7
|
| # 同期
net start <サービス名>
net stop <サービス名>
# 非同期
sc start <サービス名>
sc stop <サービス名>
|
アンインストール †
1
2
| -
!
| sc delete <サービス名>
|
多言語 †
言語を追加する †
- [Windowsキー]-[lang]-[Settings]-[Add a language](デフォルト言語が英語の場合)
- [Add a language]-<追加した言語を選択>
- <追加した言語をダブルクリック>-[Download and install language pack]
- インストール完了まで待つ
- 必要ならば[Move up]で優先順を変更
- OS再起動
bash on Ubuntu on Windows †
インストール †
アンインストール †
1
2
3
4
5
6
7
| -
!
-
!
-
!
|
lxrun /uninstall
lxrun /uninstall /full
|
デスクトップ †
タスクビュー †
1
2
3
4
5
6
7
8
9
10
| -
!
-
!
-
!
-
!
| [win]+Tab
[win]+[Ctrl]+[←]/[→]
[win]+[Ctrl]+[D]
[win]+[Ctrl]+[F4]
|
スナップ †
1
2
3
4
5
6
| -
!
-
!
-
!
| [win]+[←]/[→]
[win]+[↑]
[win]+[↓]
|
その他 †
実行ファイルの場所を調べる †
GodMode †
- 新規フォルダを作成し、名前を"GOD.{ED7BA470-8E54-465E-825C-99712043E01C}"にする
Base64エンコード †
1
2
| -
!
| certutil -f -encode <入力ファイルパス> <出力ファイルパス>
|
ホスト名取得 †
Windowsエクスペリエンスインデックス取得 †
1
2
3
4
| -
!
-
!
| winsat formal
Get-CimInstance Win32_WinSat
|