今までコマンドプロンプトで逃げてたけど、やっとPowershell本気でやらないとなという事でまとめはじめてます。 いつもの様に、1ページである程度使えるようにまとめていきます。
基本コマンド一覧
pwd whoami # ユーザー名の大文字小文字は区別されず同じになる cd dir dir -File dir -Directory Get-ChildItem -File # dir -Fileと同じ Get-ChildItem -Path . -Recurse | Where-Object { $_.Extension -eq ".rc" -or $_.Extension -eq ".txt" } Get-ChildItem -Directory # dir -Directoryと同じ mkdir Get-Acl .\example_directory | Format-List #ディレクトリのアクセス権限表示 Get-Acl "." | Select-Object -ExpandProperty Owner Get-Help Get-Process # コマンドのヘルプを表示 Get-PSDrive # df同様ドライブの空き容量確認 $env:WX_DIR = "C:\path\to\wxWidgets" echo $env:WX_DIR
コマンドレット | 説明 |
---|---|
Get-Help | コマンドレットやスクリプトのヘルプ情報を表示します。 |
Get-Command | 使用可能なコマンドレット、エイリアス、関数の一覧を表示します。 |
Get-Process | 実行中のプロセスの情報を表示します。 |
Stop-Process | 指定したプロセスを停止します。 |
Get-Service | システム上のサービスの状態を表示します。 |
Start-Service | 指定したサービスを開始します。 |
Stop-Service | 指定したサービスを停止します。 |
Get-EventLog | イベントログの情報を表示します。 |
Get-ChildItem | 指定したディレクトリ内のファイルとフォルダーを表示します(dir のエイリアス)。 |
Copy-Item | ファイルやフォルダーをコピーします。 Copy-Item -Path “C:\Path\To\SourceDirectory\*” -Destination “C:\Path\To\DestinationDirectory” -Recurse |
Move-Item | ファイルやフォルダーを移動します。Move-Item -Path "C:\Path\To\SourceDirectory\*" -Destination "C:\Path\To\DestinationDirectory" -Recurse |
Remove-Item | ファイルやフォルダーを削除します。 Remove-Item -Path “C:\Path\To\Directory\*” -Recurse -Force |
New-Item | 新しいファイルやフォルダーを作成します。 |
Set-Location | カレントディレクトリを変更します(cd のエイリアス)。 |
Get-Content | ファイルの内容を表示します。 |
Set-Content | ファイルに内容を書き込みます。 |
Add-Content | 既存のファイルに内容を追加します。 |
Clear-Host | コンソールの画面をクリアします。 |
Get-Variable | 現在のセッションで使用されている変数の一覧を表示します。 |
Set-Variable | 新しい変数を作成または既存の変数の値を変更します。 |
Remove-Variable | 変数を削除します。 |
Invoke-Expression | 文字列として指定されたコマンドを実行します。 |
Start-Process | 新しいプロセスを開始します。 |
Get-Help about_* | PowerShellのトピックに関するヘルプを表示します。 |
-Recurse: 再帰的な操作。 その下のディレクトリやファイル全てに適用させる。 Linuxでは-Rや-rと同じ。
便利なエイリアス
PowerShellには、コマンドレットの短縮形として使用できるエイリアスがいくつかあります。以下はその一部です。
エイリアス | 対応するコマンドレット |
---|---|
ls | Get-ChildItem |
dir | Get-ChildItem |
cat | Get-Content |
echo | Write-Output |
rm | Remove-Item |
cp | Copy-Item |
mv | Move-Item |
gci | Get-ChildItem |
gps | Get-Process |
sls | Select-String |
Owner変更方法
未検証
$newOwner = "DOMAIN\NewOwner" # 新しい所有者のユーザー名 $acl = Get-Acl "C:\Path\To\Your\FileOrDirectory" $acl.SetOwner([System.Security.Principal.NTAccount]$newOwner) Set-Acl "C:\Path\To\Your\FileOrDirectory" $acl
Powershell起動時実行ファイル
- C:\Users\<user_name>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1が実行されるファイル。 PowerShellスクリプトまたはps1ファイルと呼びます。
- Ctrl+Cで停止
$PROFILE # これでパスとファイル名を確認 # 最初は存在しないので以下で作成する if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force } # これでファイルが出来るので以下で編集する notepad $PROFILE # 編集完了して保存したら以下実行して$PROFILEを再読み込みする(権限を設定する必要あり。後述。) . $PROFILE
以下を書込めば、ddirがディレクトリだけ表示するコマンドになる。
Function ddir { param( [string]$Path = ".", [System.Management.Automation.SwitchParameter]$Recurse ) if ($Recurse) { Get-ChildItem -Path $Path -Directory -Recurse } else { Get-ChildItem -Path $Path -Directory } }
権限設定
PS C:\Users\USER_NAME> . $PROFILE . : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\9033113\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 を 読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。 発生場所 行:1 文字:3 + . $PROFILE + ~~~~~~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess PS C:\Users\USER_NAME> dir $PROFILE ディレクトリ: C:\Users\9033113\Documents\WindowsPowerShell Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2025/02/13 13:46 281 Microsoft.PowerShell_profile.ps1 PS C:\Users\USER_NAME> Get-ExecutionPolicy -List Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine Undefined PS C:\Users\USER_NAME> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser PS C:\Users\USER_NAME> Get-ExecutionPolicy -List Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser RemoteSigned LocalMachine Undefined PS C:\Users\9033113> . $PROFILE PS C:\Users\9033113> ddir ディレクトリ: C:\Users\9033113 Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2025/01/10 13:09 .cert d----- 2024/06/07 15:05 .ipython d----- 2024/07/29 16:23 .jupyter d----- 2024/06/07 15:20 .keras d----- 2023/02/14 11:40 .ms-ad d----- 2025/01/10 13:32 .pyenv d----- 2025/01/17 11:04 .ssh
実行可能ファイル
- Windowsの場合は、exe、bat, ps1が実行可能ふぁいるだそうです。
- msiファイルはmsiexe.exeファイルを呼び出しているんだそうです。 ショートカットと同じかな。
- msiファイルにはアプリに必要なファイル、レジストリ設定、インストール手順などを記述するファイル。
コメント