ホームユーザー向けのPowerShellの使用–初心者向けガイド

彼らが魔法使いになり、魔法のようなことを起こさせるためにいくつかの言葉を発することを望まないのは誰ですか?ええと(Well)、私たちはウィザードになる方法をあなたに示すことはできませんが、私たちはあなたに少しのコンピューターの魔法をする方法をあなたに示すことができます。

Windows 7を搭載したWindowsコンピューターをお持ちの場合は、 PowerShellをお持ちです。また、 Windows 7(Windows 7)を搭載したコンピューターをお持ちの場合は、セキュリティのために更新してください。

しかし、この記事はWindowsの人々だけのものではありません。PowerShellの最新バージョンは無料で、MacおよびLinuxコンピューターにインストールして使用できます。

PowerShellについて学んだことは、現在ほとんどすべてのコンピューターで使用できるため、これは重要です。知るか?このスキルを次のレベルに引き上げて、情報技術(Information Technology)のキャリアに挑戦することができます。

PowerShellとは何ですか?

マイクロソフト(Microsoft)からのハイテクな答えは、それがシステム管理者のために特別に設計された「コマンドラインシェル」であるということです。â€(” Sounds)威圧的に聞こえます。しかし、そうではありません。あなたはあなたのコンピュータの世話をしますか?はい、あなたはあなたの家のシステム管理者です。

クリックとキーストロークをどうするかをコンピューターに伝えますか?はい。コマンドラインシェルは、コンピュータに何をすべきかを指示するために入力する別のウィンドウと考えてください。あなたはこれを行うことができます。

PowerShellはプログラミング言語のようなものですが、ほとんどの場合ほど不可解ではありません。これは、通常の英語(English)とよく似ています。これは、プログラマー以外の人が理解できるようにMicrosoftが努力したものです。

これは、スクリプトと呼ばれる数行のコマンドを記述して、Windowsオペレーティングシステムに必要な処理を実行させる方法です。次に、それらの行をファイルに保存してクリックで実行するか、定期的に実行するようにスケジュールします。

PowerShellで何ができますか?

PowerShellの高レベルのポイントは、タスクを自動化できることです。そのため、日常的なことを繰り返し行うのに時間を無駄にする必要はありません。プロのシステム管理者(Systems Administrator)の場合、これは、新しいユーザーを作成し、そのユーザーのパスワードを生成し、詳細を記載した電子メールを新しいスーパーバイザーに送信するようなものです。

クリックと入力を使用して手動で行うと、そのプロセスには5分から1時間以上かかる場合があります。適切なスクリプトがあれば、システム管理者(Systems Administrator)はその一部を実行する必要がない場合があります。

しかし、自宅でPowerShellを使用して何ができるかを知りたいと考えています。何度も何度もやりたくないことはほとんど何でも。不要な一時ファイルとログファイルを削除して、ハードドライブのスペースを解放するために使用します。

子供のコンピューターに門限を設定します。一連のファイルの名前を変更(Rename)または整理します。それがPowerShell(PowerShell)の美しさです。コンピューターで実行できるほとんど(Almost)すべてのことを実行できます。PowerShellスクリプトを作成して、クリックまたはスケジュールに従って自動化して実行できます。

PowerShellを使用するにはどうすればよいですか?

PowerShellを操作する最も簡単な方法は、PowerShell統合スクリプト環境(ISE)(PowerShell Integrated Scripting Environment (ISE))を使用することです。[スタート(Start)]をクリックし、 Windows10の検索バーにpowershelliseと入力すると、検索できます。以下のように表示されます。

初めて使用する場合は、管理者(Administrator)として実行します。これを行うには、最初にコンピューターの管理者権限が必要です。[スタート]メニュー(Start Menu)で、 [ PowerShell ISE ]を右クリックし、[管理者として実行(Run as Administrator)]をクリックします。

これを実行するかどうかを尋ねるユーザーアクセス制御(User Access Control)UAC)警告ポップアップが表示される場合があります。[はい](Yes)をクリックします。

これで、PowerShellIDEを確認できます。ウィンドウの上部ペイン(1)は、スクリプトペインです。ここでスクリプトを作成します。ウィンドウ(2)の下部ペインは、コンソール領域です。スクリプトをテストすると、このペインに出力が表示されます。

これは、スクリプトを修正して改善するのに役立つエラーメッセージなどが表示される場所でもあります。ウィンドウの右側のペイン(3)は、コマンドアドオンです。これは、使用可能なすべてのPowerShell(PowerShell)コマンドの辞書と考えてください。

PowerShellは、既に(PowerShell)Windowsの一部であるスクリプト以外のスクリプトを実行しないように設定されています。独自のスクリプトを実行できるように変更する必要があります。

スクリプトウィンドウで、以下をコピーして貼り付けます。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

そのSet-ExecutionPolicy部分は、コマンドレット(コマンドレットと発音)と呼ばれます。コマンドレットは強力なものです。それらをWindows(Windows)に与えることができる短いコマンドと考えてください。そうすれば、 (Think)Windowsは、コマンドを満たすために、より複雑な処理を実行します。

例えはあなたの子供に彼らの部屋をきれいにするように言うでしょう。短く(Short)て要点。あなたの子供が部屋の掃除に精通しているなら、彼らは行って彼らのベッドを作り、彼らの洗濯物をバスケットに入れ、彼らのおもちゃと本を棚に置き、そして多分床を掃除機で掃除するでしょう。彼らは、コマンドレットClean-YourRoomがそれをすべて意味していることを理解しています。

ウィンドウの上部に、緑色の矢印が表示されます。 それをクリック(Click)してコマンドを実行します。

-ExecutionPolicy部分は、Set -ExecutionPolicy(Set-ExecutionPolicy)に設定するポリシーを指示しています。It’saパラメータ。それは、「私はあなたにこれらのガイドラインの範囲内で働き、具体的にこれをしてほしい」と言っています。RemoteSignedの特定のポリシーを使用するように指示します。

RemoteSignedポリシーでは、PowerShellは、信頼できる発行元によって署名されていない限り、インターネット(Internet)からダウンロードされたスクリプトを実行または実行できないと規定されています。(RemoteSigned )

回りくどい方法で、PowerShellに、ローカルで作成されたスクリプトを実行しても問題がないことを通知します。これは、スクリプトがリモートの信頼できる発行元によって署名される必要がないためです。これで、PowerShellスクリプトは、コンピューターで作成した任意のスクリプトを実行できるようになります。

一時ファイルを削除するスクリプトを見てみましょう。CCleanerほど強力でも徹底的でもありませんが、CCleanerには独自の問題があります。

PowerShell(Use PowerShell)を使用してハードドライブに(Your Hard Drive)スペースを作成(Create Space)する

このスクリプトを1行ずつ分解して、どのように機能するかを確認します。最後に、スクリプトが完全に表示されるので、必要に応じてスクリプトをコピーして貼り付けることができます。

$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"

ドル記号が前に付いているものはすべて変数名です。貴重なものを入れる財布のように考えてください。財布(Wallet)はドル記号を思い出させます。貴重品は可変のように聞こえるので、それも覚えておきます。$TempFileLocationという名前のウォレットまたは変数を作成しています。等号は、PowerShellにその変数に何を入れるかを指示します。

この場合、Windowsの一時ファイルの場所C:\Users\username\AppData\Local\Temp\*を配置します。これを行っている理由は2つあります。これは、ファイルを削除するのに常に安全な場所であり、 PowerShell(PowerShell)にファイルを削除する場所を指示するために使用します。

その場所にユーザー名と表示されている場合は、ユーザー名と交換します。これは、コンピューターへのログインに使用するユーザー名です。末尾のアスタリスク(*)はワイルドカードです。Tempフォルダー内のすべてが一時的なものであり、削除したいので、 Tempフォルダー内のすべてを表します。

場所を二重引用符で囲むことも重要です。これは、PowerShellに文字列が含まれていることを通知します。文字列は、文字と文字の文字列と考えてください。(Think)通常の数字の場合、引用符は使用しません。

$TempFile = Get-ChildItem $TempFileLocation -Recurse

別の変数を作成しています。今回は、コマンドを使用して、 $TempFile変数に入れるものを考え出します。

Get-ChildItem 

Get-ChildItemの( Get-ChildItem)ようなコマンドレットについて気付くもう1つの点は、完全に読み取り可能であるということです。最初の単語が動詞であることがわかりますか?コマンドレット(Cmdlets)はすべてアクションワードで始まるため、コマンドレットが何をしているのかすぐにわかります。ChildItemは2つの名詞です。

コマンドレットの2番目の部分は、 PowerShell(PowerShell)がアクションを適用する内容を常に示しています。ChildItemは、親ロケーションのすべての子を意味します。これは、フォルダ内のすべてのファイルを取得すると言っているようなものです。ファイルは子で、フォルダは親です。

子アイテムを取得するコマンドレットは何ですか?変数$TempFileLocationのすべて。PowerShellは、前に$ TempFileLocationに配置した場所に移動し、そこにあるすべての子アイテムを取得します。次に、それらを変数$TempFileに入れます。

では、-Recurseの部分(-Recurse )はどうなっているのでしょうか。それは、 Get-ChildItem(Get-ChildItem)にその場所のすべてを通過するように指示しています。親フォルダ内のファイルをすぐに取得するだけではいけません。そのフォルダにフォルダがある場合は、すべての子も取得し、子も取得します。私たちはそれらすべてを手に入れるつもりです。

$TempFileCount = ($TempFile).count

はい、$TempFileCountという3番目の変数を作成し、その変数に数値を入れます。番号はどこですか?ええと、($TempFile).countは私たちにその数を取得しようとしています。おそらく、.count部分が、$ (.count)TempFileに保存したすべてのファイルのカウントを実行することを理解していると思います。

なぜこれをしたのですか?主な理由は、スクリプトの残りの部分でクリーンアップしている役に立たないファイルの数を知っておくと、それがどれほど効果的であったかを知ることができるからです。

if($TempFileCount -eq 0)

次に、条件付きステートメントを設定します。あなたはそれが「もし」を求めているのを見ることができます。もし何か?括弧内のものが真または偽の場合。角かっこは重要です。そうでない場合、Ifは何を比較するかわかりません。ここでは、$TempFileCountに格納した数値がゼロに等しいかどうかを尋ねています。

-eqはequalsの省略形です。It’saタイプの比較演算子。それはあなたの子供に言うようなものです、「あなたの部屋がきれいで、素晴らしいなら、私たちは何かをするつもりです」このステートメントは、$ TempFileCountに保存された数がゼロに等しいかどうかを言っています次のこと。

{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}

$TempFileCountがゼロの場合に発生することです。中括弧は重要です。それらは、$ TempFileCountがゼロに等しい場合に、 (TempFileCount)PowerShellに内部にあるものだけを実行するように指示します。

ホストまたは画面に「C:\ Users \ username \ Appdata \ Local \ Temp\*フォルダにファイルがありません」と書き込みます。最後のパラメーター– ForegroundColorは、 PowerShellにテキストを緑色にするように指示します。これにより、通常は赤であるエラーメッセージとの区別が容易になります。

Else

あなたは他に何を意味するか知っています。これは、「あなたの部屋はきれいであるか、そうでなければ」あなたの子供が彼らの部屋を掃除したかどうかをチェックすることの一部です。$TempFileCountがゼロでない場合に何が起こるかです。

{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}

これは、$TempFileに保存されている現在の場所に移動することを意味します。それ以降の縦線はパイプと呼ばれます。まるで水が洗濯機にパイプで送られているかのように、$ TempFileの内容をコマンドレットに漏斗するように(TempFile)PowerShellに指示するため、実際のパイプのように機能します。次に、コマンドレットRemove-Itemがその内容を実行します。その場所にあるものはすべて削除されます。

-WhatIfパラメーターは、この段階で非常に重要です。PowerShellにコマンドを実行するように指示しますが、試してみるだけで、何も削除しないでください。(Just)たちが本当にこれをしたとしたらどうなるかを見せてください。

これにより、コンピューター上で何も変更せずにコマンドをテストできます。スクリプトが実行したいことだけを実行することに満足するまで、-WhatIfをそのままにしておきます。次に、それを削除するだけで、スクリプトがその役割を果たします。

パラメータ-Confirm:$falseは、ファイルを本当に削除するかどうかをスクリプトが尋ねないようにします。あなたは-Recurseが何をするか知っています。-強制( -Force)とは、何があってもそのことを削除することを意味します。-WarningActionは(-WarningAction )SilentlyContinueに設定されています。

これにより、スクリプトが削除しようとしているものについて警告を表示するのを防ぎます。-ErrorActionは(-ErrorAction)SilentlyContinueに設定されているため、プロセスで何らかのエラーが発生した場合でも、エラーが発生し続けます。

今、私たちは最後の行にいます。

Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}

Write-Hostが最初に行ったように、次の文が出力されるので、何が起こったのかがわかります。処理したばかりのフォルダから削除されたファイルの数が表示され、簡単に見つけられるように緑色で表示されます。

スクリプト全体を見てみましょう。

$TempFileLocation = "C:\Users\guymcd\Appdata\Local\Temp\*"
$TempFile = Get-ChildItem $TempFileLocation -Recurse
$TempFileCount = ($TempFile).count

if($TempFileCount -eq "0") {
Write-Host "There are no files in the folder $TempFileLocation" - ForegroundColor Green
}
Else {
$TempFile | Remove-Item -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green
}

これをコピーしてPowerShellISEに貼り付け、 (PowerShell ISE)delete-TemporaryFiles.ps1の(delete-TemporaryFiles.ps1)ようなものとして保存できます。コマンドレットを理解したので、コマンドレットの命名規則に固執することもできます。

何らかの理由でコードが機能しない場合は、作成したPowerShellスクリプトをダウンロードして実行することもできます。最初に解凍(Just)して、スクリプトファイルを表示します。

このスクリプトを実行するときはいつでも、スクリプトを右クリックして[ PowerShellで実行(Run with PowerShell)]を選択します。スクリプトが実行している間、 PowerShellコンソールが1〜2秒間ポップアップし、エラーがない場合は表示されなくなります。

PowerShellの詳細はどこで確認できますか?

それはたくさんのようです!最初のPowerShellスクリプトの場合、これはかなりの量です。ここまで進んだら、拍手喝采してください。今日はたくさんのことを学びましたが、今はもっと学びたいと思っています。それは素晴らしいです!

PowerShellの詳細については、インターネット上(Internet)に多くのリソースがあります。開始するのに適した場所は、「コマンドラインまたはPowerShellを介してスタートアッププログラムのリストを生成する(Generate a List of Startup Programs via Command Line or PowerShell)」という記事です。次に、これらの他のリソースを確認してください。



About the author

私は 10 年以上の経験を持つソフトウェア開発者です。私は Mac プログラミングを専門としており、TextEdit、GarageBand、iMovie、Inkscape など、さまざまな Mac アプリケーション用に数千行のコードを書いてきました。また、Linux および Windows 開発の経験もあります。開発者としての私のスキルにより、macOS から Linux まで、さまざまなソフトウェア開発プラットフォーム向けの高品質で包括的なチュートリアルを作成することができます。このチュートリアルは、使用しているツールについて詳しく知りたい人にとって最適な選択肢です。



Related posts