PowerShellでよくある問題を解決する10の便利なコマンド
はじめに
PowerShellは、Windowsユーザーにとって強力なツールですが、初心者にとっては理解が難しい場合もあります。この記事では、よくある問題に対処するための10の便利なPowerShellコマンドを紹介します。これらのコマンドをマスターすることで、効率的に作業を行い、生産性を向上させることができます。
2023年にVBScriptが非推奨になったことよりPoweShellの移行をする方にはお勧めのコマンドです。
フォルダーと子フォルダー内のファイル名を取得
Get-ChildItem (gci): ファイルやフォルダーの一覧を取得する際に使用します。例えば、特定の拡張子を持つファイルを検索したり、特定のフォルダー内のファイルを一覧表示したりするのに役立ちます。
例.C:\test 以下のフォルダーとファイルが下記の場合
C:\test\text00.txt
C:\test\kodomo1\text01.txt
C:\test\kodomo1\text02.txt
C:\test\kodomo1\exe01.exe
C:\test\kodomo2\text03.txt
PS C:> Get-ChildItem -Path C:\test\ -Recurse -Include *.txt
ディレクトリ: C:\test\kodomo1
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2024/03/30 土曜日 3:2 2638 text01.txt
4
-a---- 2024/03/30 土曜日 1:4 2638 text02.txt
1
ディレクトリ: C:\test\kodomo2
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2024/03/29 金曜日 0:2 2638 text03.txt
4
ディレクトリ: C:\test\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2024/03/29 金曜日 5:2 2638 text00.txt
4
テキストファイル内の文字列を検索
Select-String (sls): テキストファイル内で文字列を検索する際に使用します。特定のキーワードを含む行を簡単に見つけることができます。
例えば、ログファイルから特定のエラーが出てきている時を探す場合に約に立ちます。
例.C:\test 以下のファイルが下記の場合
C:\test\text00.txt
C:\test\text01.txt
C:\test\text02.txt
C:\test\text03.txt
C:\test\text04.txt
text03の中身のみ、2行目に error を含む文字列があり。
PS C:> Select-String -Path C:\test\*.txt -Pattern "error"
C:\test\test03.txt:2:あああerrorいいい
実行中のプロセスを表示、プロセスを終了
Get-Process (gps): 実行中のプロセスを表示します。特定のプロセスを見つけて終了させたり、CPUやメモリの使用状況を監視したりするのに便利です。
PS C:> Get-Process -Name chrome
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
226 16 10632 18528 0.00 2516 1 chrome
2085 77 134976 268192 7.33 2756 1 chrome
256 19 21444 47068 0.00 5868 1 chrome
212 16 19012 27056 0.09 9204 1 chrome
511 27 216120 249984 2.66 9420 1 chrome
752 56 282080 171564 5.77 10408 1 chrome
330 24 85180 149640 1.20 10456 1 chrome
226 18 18844 30644 0.02 11968 1 chrome
345 31 28108 52884 0.91 12672 1 chrome
228 9 1924 7124 0.00 12744 1 chrome
270 21 113524 151768 1.11 13820 1 chrome
265 21 25140 56708 0.02 13944 1 chrome
257 19 20496 46464 0.02 14000 1 chrome
338 20 65060 102324 0.22 14008 1 chrome
285 20 74872 118060 1.00 14020 1 chrome
352 24 80708 127444 0.80 14440 1 chrome
365 24 100396 160308 0.94 15340 1 chrome
272 20 35424 70760 0.13 19768 1 chrome
371 28 140752 216512 4.89 22868 1 chrome
「Get-Process」だと、すべてのプロセスが、上の例では、後ろに「-Name chrome」を入れているので、chromeのプロセスを表示させています。
PS C:> Get-Process -Name chrome | Stop-Process
上記のようにするとchromeのすべてのプロセスを強制終了します。バッチ系処理の場合、プロセスを見るよりかはプロセスを終了させる方が多く使うかもしれません。
サービスの状態を表示
Get-Service (gsv): サービスの状態を表示します。特定のサービスの状態を確認したり、開始/停止したりするのに役立ちます。
PS C:> Get-Service -Name Spooler
Status Name DisplayName
------ ---- -----------
Running Spooler Print Spooler
上の例では、「spooler」(印刷の各種機能を含む)サービスの状態を確認し、結果として「Status:Running」と読み取れるので、正常に動いていることが確認できます。なお、サービスの開始をさせる場合には後ろに「| Start-Service」と入れ、サービスの停止をさせる場合には後ろに「| Stop-Service」と入れことで可能です。
※プロセスを停止させる場合、先にサービスを終了させないと、プロセスをしない場合がありますので、ご注意ください。
イベントログを取得
Get-EventLog (gel): イベントログから情報を取得します。システムの問題をトラブルシューティングする際に役立ちます。
PS C:> Get-EventLog -LogName System -EntryType Error
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
30280 4 07 10:57 Error Service Control M... 3221232472 Google Update サービス (gupdate) サービスを、次...
30279 4 07 10:57 Error Service Control M... 3221232481 Google Update サービス (gupdate) サービスの接続...
上記例では、よく使うシステムログの、エラーが出ているものを表示させています。
「-LogName System」でシステムログファイルを指定し、「-EntryType Error」エラーのみに絞り込んでいます。
新しいファイルやフォルダーの作成
New-Item (ni):
新しいファイルやフォルダーを作成します。スクリプト内で自動的にファイルやフォルダーを生成するのに便利です。
PS C:> New-Item -Path C:\Scripts\ -Name "newfile.txt" -ItemType "file"
上記例では、「-Path C:\Scripts\」で「C:\Scripts\」にフォルダー指定、「-Name “newfile.txt"」でファイル名指定、「-ItemType “file"」でファイルであることを指定します。
PS C:> New-Item -Path C:\Scripts\ -Name "logfiles" -ItemType "directory"
フォルダー(ディレクトリー)を作成したいときは、「-ItemType “directory"」にすれば可能です。
ファイルやフォルダーをコピー
Copy-Item (cp): ファイルやフォルダーをコピーします。バックアップを作成する際や、ファイルを別の場所に移動する際に使用します。
PS C:> Copy-Item -Path C:\Logs\log.txt -Destination D:\Backup\
上の例では、「-Path C:\Logs\log.txt」でコピー元ファイルを設定し、「-Destination D:\Backup\」でコピー先のフォルダーを設定しています。
PS C:> Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings\Logs" -Recurse
上の例では、フォルダーをコピーします。
PS C:> Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings\Logs" -Recurse
バックアップでは、アスタリスクをつけて、子フォルダー(サブディレクトリー)のファイルもコピーする方法の方が使うことが多いです。
ファイルやフォルダーの削除
Remove-Item (rm): ファイルやフォルダーを削除します。不要なファイルを削除する際に使用します。
PS C:> Remove-Item -Path C:\Temp\oldfile.txt
ウェブページから情報取得
Invoke-WebRequest (iwr): ウェブページからデータを取得します。自動化されたタスクやWebスクレイピングに役立ちます。
PS C:> Invoke-WebRequest -Uri "http://example.com" -OutFile "output.html"
プロセスを開始
Start-Process (start): 新しいプロセスを開始します。外部アプリケーションを起動する際に使用します。
PS C:> Start-Process -FilePath "notepad.exe"
上記の例の場合は、メモ帳を開始させることができます。
最後に
これらのPowerShellコマンドを使えば、よくある問題に対処することができます。是非、日常の作業に取り入れて効率化を図りましょう。それぞれのコマンドはオプションコマンドがありますので、近い機能のものはオプションで支持のことがあり、調べるきっかけになると思います。
オススメ記事
「Microsoft Edge」Windows向けのセキュリティアップデート v…
はじめに アメリカのMicrosoftは、2024年9月19…
Windows11 不具合 ミュートできない 音量ミキサーが1未満にならずノイズ…
問題点 Windows11を使用の一部のユーザーから2024…
【対処法】Windows11 標準アプリ「アラーム&クロック」が動かない バック…
Windows11の標準アプリの「アラーム&クロック」は使い…
ディスカッション
コメント一覧
まだ、コメントがありません