原文(日本語に翻訳)
PowerShellツールコマンドがパーミッションモードで自動承認できるようになり、Bashの動作と一致するようになった
原文(英語)
PowerShell tool commands can now be auto-approved in permission mode, matching Bash behavior
概要
Windows環境でPowerShellを使用している場合、これまでPowerShellコマンドはBashコマンドと異なり自動承認の対象外だった。今回の更新でBashと同様に自動承認ルールを設定できるようになり、Windows環境でのワークフローが大幅に改善される。
基本的な使い方
設定ファイルにPowerShellコマンドの自動承認ルールを追加する:
json
// .claude/settings.json
{
"permissions": {
"allow": [
"PowerShell(Get-ChildItem *)",
"PowerShell(npm *)",
"PowerShell(dotnet *)"
]
}
}実践例
よく使うPowerShellコマンドを自動承認する
json
// .claude/settings.json
{
"permissions": {
"allow": [
"PowerShell(Get-ChildItem *)",
"PowerShell(Get-Content *)",
"PowerShell(npm install)",
"PowerShell(npm run *)",
"PowerShell(dotnet build)",
"PowerShell(dotnet test *)"
]
}
}.NETプロジェクト向けの設定
json
// .claude/settings.json
{
"permissions": {
"allow": [
"PowerShell(dotnet *)",
"PowerShell(nuget *)",
"PowerShell(git *)"
]
}
}開発環境全体での設定(ユーザーレベル)
json
// ~/.claude/settings.json
{
"permissions": {
"allow": [
"PowerShell(git *)",
"PowerShell(npm *)",
"PowerShell(yarn *)",
"PowerShell(pnpm *)"
]
}
}特定のコマンドのみを許可する(厳格な設定)
json
// .claude/settings.json
{
"permissions": {
"allow": [
"PowerShell(npm run build)",
"PowerShell(npm run test)"
],
"deny": [
"PowerShell(Remove-Item *)"
]
}
}注意点
- PowerShellコマンドの自動承認はBashと同じ形式で設定できる
denyルールはallowルールよりも優先される- ワイルドカード(
*)を使って柔軟なパターンマッチングが可能 - 削除系コマンド(
Remove-Item、rmなど)の自動承認には十分注意すること - この機能はWindows環境のPowerShellに加え、macOSやLinuxでPowerShell Coreを使う場合にも適用される
- セキュリティの観点から、必要最小限のコマンドのみを自動承認することを推奨する