PowerShell

【PowerShell】基本的なコマンドレットの一覧について

2018年5月14日

こんにちは!

 

 

今回は、PowerShell のコマンドを書くにあたってまず覚えておいたほうが良いと思う内容を書きました。

基本的な内容ばかりですが、今後はよく使う内容になりますので、実際手で入力して覚えておくと良いかと思います。

 

 

 

コメントを書く場合

 

 

コマンドに補足説明(またはコメント)を書きたい場合があるかと思います。

例えば、このコマンドがどういう目的なのか、どういう処理なのかといった内容などです。

コメントを書きたい時は、先頭に #(シャープ)を入力します。

 

[code language="powershell"]
# ここにコメントを入力します。
Get-Service
[/code]

 

 

複数行でコメントを書きたい時は、以下のように書きます。

 

[code language="powershell"]
<# コメントここから コメントここまで #>
Get-Service
[/code]

 

 

 

ディレクトリの表示・移動

 

 

現在のディレクトリの場所を確認したい場合は、以下のコマンドを使います。

以降は、現在のディレクトリはカレントディレクトリという言葉に置き換えますね。

 

[code language="powershell"]
# カレントディレクトリを表示する
PS C:\Users\Administrator> Get-Location
Path
----
C:\Users\Administrator
[/code]

 

 

 

現在のディレクトリの場所から移動したい場合は、以下のコマンドを使います。

 

[code language="powershell"]
# カレントディレクトリを移動する
PS C:\Users\Administrator> Set-Location C:\temp\powershell
PS C:\temp\powershell>
[/code]

 

 

 

現在の時刻を表示したい場合、以下のコマンドを使います。

 

[code language="powershell"]
# 現在の時刻を表示する
PS C:\Users\Administrator> Get-Date
2018年5月14日 10:13:12
[/code]

 

 

 

カレントディレクトリにあるファイルやフォルダを表示する場合は、以下のコマンドを使います。

 

[code language="powershell"]
PS C:\temp\powershell> Get-ChildItem

ディレクトリ: C:\temp\powershell

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/05/14 10:19 テストフォルダー1
d----- 2018/05/14 10:19 テストフォルダー2
-a---- 2018/05/14 10:20 7 practice_command.ps1
[/code]

 

 

 

カレントディレクトリにあるファイルやフォルダと、フォルダ内にある全てのファイルやフォルダを表示する場合は、以下のコマンドを使います。

-Recurse は "再帰的" という意味になります。Google で検索すれば色々な説明が出てきますが、ここでは簡単に「木の幹から枝まで表示する」という表現にしておきます。

つまり、カレントディレクトリが木の幹とし、カレントディレクトリから下は枝として表示するという意味になります。

 

[code language="powershell"]
PS C:\temp\powershell> Get-ChildItem -Recurse

ディレクトリ: C:\temp\powershell

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/05/14 10:26 テストフォルダー1
d----- 2018/05/14 10:19 テストフォルダー2
-a---- 2018/05/14 10:20 7 practice_command.ps1

ディレクトリ: C:\temp\powershell\テストフォルダー1

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/05/14 10:27 サブフォルダー1
d----- 2018/05/14 10:26 サブフォルダー2

ディレクトリ: C:\temp\powershell\テストフォルダー1\サブフォルダー1

Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2018/05/14 10:26 0 サンプルファイル1.txt
-a---- 2018/05/14 10:26 0 サンプルファイル2.txt
[/code]

 

 

 

特定のフォルダのディレクトリを表示したい場合は、以下のコマンドを使います。

 

[code language="powershell"]
PS C:\temp\powershell> Get-ChildItem -Path ./テストフォルダー1

ディレクトリ: C:\temp\powershell\テストフォルダー1

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018/05/14 10:27 サブフォルダー1
d----- 2018/05/14 10:26 サブフォルダー2
[/code]

 

 

 

コンソールの表示

 

 

コンソールに表示したい場合は、以下のコマンドを使います。

例えば、単純に説明などを表示させたり、または何かの処理で選択肢 (1 , 2 , 3 ,4 ) を表示させて、選択したものを実行するといった場合などに使います。

 

[code language="powershell"]
PS C:\temp\powershell> Write-Output "コンソールに文字を表示する";
コンソールに文字を表示する
[/code]

 

 

 

または以下のコマンドでも同じ結果が表示されます。

ここでは、「とりあえず同じ結果が表示できる」くらいの理解で良いのではないかと思います。

 

[code language="powershell"]
PS C:\temp\powershell> Write-Host"コンソールに文字を表示する";
コンソールに文字を表示する
[/code]

 

 

コンソールに表示されている内容を消去したい場合は、以下のコマンドを使います。

 

[code language="powershell"]
PS C:\temp\powershell> Clear-Host
[/code]

 

 

 

ファイルの処理

 

 

ファイル・フォルダのコピー

 

 

ファイルやフォルダを別のディレクトリにコピーしたい場合は、以下のコマンドを使います。

ここでは、テストフォルダー1 のサブフォルダー1 内にある、サンプルファイル1.txt を

テストフォルダー2 のサブフォルダー1 内にコピーします。

 

[code language="powershell"]
Copy-Item -Path .\テストフォルダー1\サブフォルダー1\サンプルファイル1.txt -Destination .\テストフォルダー2\サブフォルダー1
[/code]

 

 

実行前

 

 

実行後

 

 

 

 

特定のフォルダ内にあるファイルやフォルダを全てコピーしたい場合は、以下のコマンドを使います。

ここでは、テストフォルダー1 のサブフォルダー2 内にある、全てのファイルを

テストフォルダー2 のサブフォルダー2 内にコピーします。-Recurse は先ほど出てきた内容と同じ意味です。「木の枝までコピーする」という意味になります。

 

[code language="powershell"]
Copy-Item -Path .\テストフォルダー1\サブフォルダー2\* -Destination .\テストフォルダー2\サブフォルダー2\ -Recurse
[/code]

 

 

 

実行前

 

 

実行後

 

 

 

 

ファイル・フォルダの移動

 

 

ファイルやフォルダを別のディレクトリに移動したい場合は、以下のコマンドを使います。

ここでは、テストフォルダー1 のサブフォルダー1 内にある、サンプルファイル1.txt を

テストフォルダー2 のサブフォルダー1 内に移動します。

 

[code language="powershell"]
Move-Item -Path .\テストフォルダー1\サブフォルダー1\サンプルファイル1.txt -Destination .\テストフォルダー2\サブフォルダー1
[/code]

 

 

 

実行前

 

 

実行後

 

 

 

 

ファイルやフォルダを別のディレクトリに移動して別名にしたい場合は、以下のコマンドを使います。

ここでは、テストフォルダー1 のサブフォルダー1 内にある、サンプルファイル2.txt を

テストフォルダー2 のサブフォルダー1 内に移動し、別のファイル名に変更します。

 

[code language="powershell"]
Move-Item -Path .\テストフォルダー1\サブフォルダー1\サンプルファイル2.txt -Destination .\テストフォルダー2\サブフォルダー1\新サンプルファイル1.txt
[/code]

 

 

 

実行前

 

 

 

実行後

 

 

 

ファイル・フォルダの名前変更

 

 

ファイルやフォルダを別のファイル名・フォルダ名に変更したい場合は、以下のコマンドを使います。

ここでは、テストフォルダー1 のサブフォルダー2 を別のフォルダ名に変更します。

 

[code language="powershell"]
Rename-Item -Path .\テストフォルダー1\サブフォルダー2\ -NewName 新サブフォルダー1
[/code]

 

 

 

実行前

 

 

 

実行後

 

 

 

ファイル・フォルダの削除

 

ファイルやフォルダを削除する場合は、以下のコマンドを使います。

ここではテストフォルダー2 のサブフォルダー1 内にある、サンプルファイル1 を削除します。

[code language="powershell"]
Remove-Item -Path .\テストフォルダー2\サブフォルダー1\サンプルファイル1.txt
[/code]

 

実行前

 

実行後

 

 

 

フォルダとその中にあるファイルを全てを削除する場合は、以下のコマンドを使います。

 

[code language="powershell"]
Remove-Item -Path .\テストフォルダー2\サブフォルダー2 -Recurse
[/code]

 

 

 

実行前

 

 

 

実行後

 

 

 

 

その他のコマンド

 

 

コマンドの詳細を見たい場合は、以下のコマンドで確認できます。

 

[code language="powershell"]
Get-Help Remove-Item -Detailed

名前
Remove-Item

構文
Remove-Item [-Path] <string[]> [<CommonParameters>]
Remove-Item [<CommonParameters>]

パラメーター
-Confirm
-Credential <pscredential>
-Exclude <string[]>
-Filter <string>
-Force
-Include <string[]>
-LiteralPath <string[]>
-Path <string[]>
-Recurse
-Stream <string[]>
-UseTransaction
-WhatIf

<CommonParameters>
このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
OutBuffer, PipelineVariable、および OutVariable。詳細については、
about_CommonParameters (https://go.microsoft.com/fwlink/?LinkID=113216)
を参照してください。

エイリアス
ri
rm
rmdir
del
erase
rd

注釈
Get-Help を実行しましたが、このコンピューターにこのコマンドレットのヘルプ ファイルは見つかりませんでした。ヘルプの一部だけが表示されています。
-- このコマンドレットを含むモジュールのヘルプ ファイルをダウンロードしてインストールするには、Update-Help を使用してください。
-- このコマンドレットのヘルプ トピックをオンラインで確認するには、「Get-Help Remove-Item -Online」と入力するか、
https://go.microsoft.com/fwlink/?LinkID=113373 を参照してください。
[/code]

 

 

 

今まで実行したコマンドの履歴を見たい場合は、以下のコマンドで確認できます。

 

[code language="powershell"]
PS C:\temp\powershell> Get-History
Id CommandLine
-- -----------
1 Get-ChildItem
2 Set-Location C:\temp\powershell
3 Get-ChildItem
4 Get-ChildItem -Recurse
5 Get-ChildItem -Path ./テストフォルダー1
...
28 Rename-Item -Path .\テストフォルダー1\サブフォルダー2\ -NewName 新サブフォルダー1
29 Remove-Item -Path .\テストフォルダー2\サブフォルダー1\サンプルファイル1.txt
30 Remove-Item -Path .\テストフォルダー2\サブフォルダー2 -Recurse
31 Get-Help Remove-Item
32 Get-Help Remove-Item -Detailed
[/code]

 

 

 

今まで実行したコマンドの履歴を消去したい場合は、以下のコマンドを実行します。

 

[code language="powershell"]
PS C:\temp\powershell> Clear-History

Id CommandLine
-- -----------
34 Clear-History
[/code]

 

 

 

以上、結構な量になりましたので、早見表のような形で、以下に纏めておきました。

 

コマンドレット 説明
Get-Location 現在のディレクトリの場所を確認する
Set-Location 現在のディレクトリの場所から移動する
Get-Date 現在の時刻を表示する
Get-ChildItem カレントディレクトリにあるファイルやフォルダを表示する
Get-ChildItem -Recurse カレントディレクトリにあるファイルやフォルダと、フォルダ内にある全てのファイルやフォルダを表示する
Get-ChildItem -Path 特定のフォルダのディレクトリを表示する
Write-Output "コンソールに文字を表示する内容" コンソールに文字を表示する
Write-Host "コンソールに文字を表示する" コンソールに文字を表示する
Clear-Host コンソールに表示されている内容を消去する
Copy-Item -Path コピー元のパス -Destination コピー先のパス ファイルやフォルダを別のディレクトリにコピーする
Copy-Item -Path コピー元のパス -Destination コピー先のパス -Recurce フォルダとその下のファイルやフォルダ含めた全てを別のディレクトリにコピーする
Move-Item -Path 移動元のパス -Destination 移動先のパス ファイルやフォルダを別のディレクトリに移動する
Move-Item -Path 移動元のパス\ファイル名 -Destination 移動先のパス\変更したいファイル名 ファイルを別のディレクトリに移動してファイル名を変更する
Rename-Item フォルダまたはファイル名 -NewName 変更先のフォルダ名またはファイル名 ファイルやフォルダを別のファイル名・フォルダ名に変更する
Remove-Item -Path フォルダまたはファイル名 ファイルやフォルダを削除する
Remove-Item -Path フォルダ -Recurce フォルダとその中にあるファイルを全てを削除する
Get-Help Remove-Item -Detailed  コマンドの詳細を見る
Get-History  コマンドの履歴を見る
Clear-History  コマンドの履歴を削除する

 

 

 

いかがでしょうか。主にディレクトリ操作とファイルの処理の内容になりましたが、お役に立てれば幸いです。

 

では最後までお読みいただきありがとうございました!

 

 

おすすめの本はこちら ↓↓↓

 

  • この記事を書いた人

そーまん

セキュリティエンジニアやってます。
ブログ歴3年。PVは月15万PV程度。
趣味はボクシング、筋トレ、登山です。
穏やかで人見知りな性格です。

人気記事

1

こんにちは!そーまんです。 今回は、PC に適用されている GPO を確認する方法について書きました。 本題に入る前に、一応参考までにGPOの適用タイミングについての記事をここに貼りましたので、必要に ...

2

こんにちは!そーまんです。 今回は sysprep について、全体的に PC をセットアップする観点から書いてみました。長々と書いてあります。まずは前置きからです。 まずはじめに 組織では PC のラ ...

3

こんにちは!そーまんです。 今回は、グループポリシー (GPO) を使って、特定のコンピューターに対して、ドメインユーザーに ローカル管理者権限 (以下は特権と記載) を付与する方法について書きました ...

4

こんにちは!そーまんです。 今回は、Windows サインイン後に一時ユーザープロファイルが読み込まれてしまった場合の解決方法について書きました。 Windows 10 の検証環境をいじってたらサイン ...

5

こんにちは!そーまんです。 今回は、ユーザープロファイルを削除する方法について書いてみました。 企業の場合よくあることですが、1 台の PC を共有 PC として複数人で使ったり、また余り無いかもしれ ...

6

こんにちは!SE ブログの相馬です。       今回は、繰り返し文について書いてみました。PowerShell では他のプログラミング言語同様、繰り返し処理を行うことが ...

7

コマンドを使って CPU とメモリの使用率をデータで取得してみましたので、例えば PC のトラブルシューティングで問題を再現させる際にデータを取得しておくと、原因の特定に役立つ場合があるかと思います。

8

既存の PC と同じ構成で別のメーカーの PC でマスターイメージを作る際、インストールされているアプリを同一にする為に必要になるかと思います。

9

企業で多くの GPO が適用されている環境では、PC に GPO が適用されなかったりする問題が発生する場合があるかと思います。その中でも、コンピューターの構成またはユーザーの構成のどちらかで、...

10

こんにちは!そーまんです。 今回は、Windows Server 2019 で NTP サーバーと同期する方法について書きました。 NTP サーバーの必要性や時刻同期の重要性を理解することは社内のシス ...

-PowerShell
-,