魔法のようなことが起こるように、彼らが魔法使いになり、いくつかの言葉を発することを望んでいませんか?まあ、私たちはウィザードになる方法をお見せすることはできませんが、小さなコンピューターの魔法を行う方法をお見せすることはできます。
Windows 7を搭載したWindowsコンピューターを使用している場合、PowerShellを使用できます。また、Windows 7を搭載したコンピューターがある場合は、セキュリティのために更新してください。
しかし、この記事はWindowsの人だけのものではありません。 PowerShellの最新バージョンは無料で、MacおよびLinuxコンピューターにインストールして使用できます。
PowerShellについて学んだことは、ほとんどすべてのコンピューターで使用できるため、これは重要です。知るか?このスキルを次のレベルに引き上げて、情報技術のキャリアに挑戦することができます。
PowerShellとは?
Microsoftのハイテクな答えは、「 …特にシステム管理者向けに設計されたコマンドラインシェル。しかし、そうではありません。コンピューターの面倒をみていますか?はい、あなたはあなたの家のシステム管理者です。
クリックとキーストロークの処理をコンピューターに指示しますか?はい。コマンドラインシェルは、コンピューターに何をすべきかを伝えるために入力する別のウィンドウと考えてください。これを行うことができます。
<!-In_content_1 all:[300x250] / dfp:[640x360]->
PowerShellはプログラミング言語のようなものですが、ほとんどの場合は暗号化されていません。これは、通常の英語によく似ていますが、これはマイクロソフトがプログラマー以外の人にも取り上げられるように努力したものです。
これは、スクリプトと呼ばれる数行のコマンドを記述する方法で、Windowsオペレーティングシステムに実行したいことをさせます。次に、これらの行をファイルに保存して、クリックして実行するか、定期的に実行するようにスケジュールします。
PowerShellでできること
PowerShellはタスクを自動化できるため、日常的なことを繰り返して時間を浪費する必要はありません。プロのシステム管理者にとっては、新しいユーザーの作成、パスワードの生成、新しいスーパーバイザーへの詳細を記載した電子メールの送信などです。
クリックと入力を手動で行うと、そのプロセスには5分から1時間以上かかることがあります。適切なスクリプトがあれば、システム管理者はその一部を行う必要すらありません。
しかし、PowerShellで自宅でできることを知りたいと思うでしょう。何度もやりたくないことはほとんど何でも。不要な一時ファイルとログファイルを削除して、ハードドライブの空き容量を増やします。
子供のコンピューターに夜間外出禁止令を置きます。一連のファイルの名前を変更または整理します。それがPowerShellの美しさです。コンピューターでできることはほぼすべて、PowerShellスクリプトを作成して、クリックまたはスケジュールに従って自動化および実行できます。
PowerShellの使用方法
PowerShellを使用する最も簡単な方法は、PowerShell統合スクリプト環境(ISE)です。 [スタート]をクリックして、Windows 10の検索バーにpowershell iseと入力すると、検索できます。下図のように表示されます。
初めて使用する場合は、管理者として実行します。これを行うには、まずコンピューターの管理者権限が必要です。 [スタートメニュー]で[PowerShell ISE]を右クリックし、[管理者として実行]をクリックします。
UserAccess Control(UAC)の警告ポップアップで、これを実行するかどうかを確認します。 はいをクリックします。
これで、PowerShell IDEが表示されます。ウィンドウの上部ペイン(1)はスクリプトペインです。ここでスクリプトを記述します。ウィンドウの下部ペイン(2)はコンソール領域です。スクリプトをテストすると、このペインに出力が表示されます。
エラーメッセージが表示される場所でもあり、スクリプトの修正と改善に役立ちます。ウィンドウの右側のペイン(3)は、コマンドアドオンです。使用可能なすべてのPowerShellコマンドの辞書と考えてください。
PowerShellは、すでにWindowsの一部であるもの以外のスクリプトを実行しないように設定されています。独自のスクリプトを実行できるように変更する必要があります。
スクリプティングウィンドウで、以下をコピーして貼り付けます。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Set-ExecutionPolicyその一部はコマンドレット(コマンドレットと発音)と呼ばれます。コマンドレットは強力なものです。それらをWindowsに提供できる短いコマンドと考えてください。Windowsはコマンドを満たすために、より複雑なものをたくさん実行します。
類推は、子供に部屋を掃除するように言うことです。短く、要点まで。あなたの子供が部屋の掃除に精通している場合、彼らは行ってベッドを作り、洗濯物をバスケットに入れ、おもちゃや本を棚に置き、床を掃除機で掃除することさえあります。コマンドレットClean-YourRoomがそのすべてを意味することを理解しています。
ウィンドウの上部に緑色の矢印が表示されます。それをクリックしてコマンドを実行します。
- ExecutionPolicy部分は、設定するポリシーをSet-ExecutionPolicyに伝えています。パラメータです。 「これらのガイドラインに従って作業し、具体的にこれを行うことを望んでいます。 RemoteSignedの特定のポリシーを使用するように指示します。
RemoteSignedポリシーは、信頼できる発行元によって署名されていない限り、インターネットからダウンロードされたスクリプトをPowerShellが実行または実行できないことを示しています。
ラウンドアバウト方式では、ローカルで作成されたスクリプトはリモートの信頼できる発行元によって署名する必要がないため、ローカルで作成したスクリプトを実行しても問題ないことをPowerShellに通知します。これで、PowerShellスクリプトはコンピューターで作成したスクリプトを実行できるようになります。
一時ファイルを削除するスクリプトを見てみましょう。 CCleanerのように強力でも完全でもありませんが、CCleanerには独自の問題があります。
PowerShellを使用してハードドライブにスペースを作成
このスクリプトを分解します。行ごとに表示されるため、どのように機能するかを確認できます。最後に、スクリプトは完全に表示されるため、必要に応じてコピーして貼り付けることができます。
$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"
前にドル記号が付いているものはすべて変数名です。貴重品を入れる財布のようなものだと考えてください。財布はドル記号を思い出させ、貴重品は変数のように聞こえるので、それも覚えています。 $ TempFileLocationという名前のウォレットまたは変数を作成しています。等号は、PowerShellにその変数に何を入れるかを指示します。
この場合、Windowsの一時ファイルの場所(C:\ Users \ username \ AppData \)に入れています。 Local \ Temp \ *。これには2つの理由があります。ファイルをいつでも安全に削除できる場所であり、ファイルを削除する場所をPowerShellに指示するために使用します。
その場所のユーザー名が表示されている場合は、ユーザーと交換します名前。これは、コンピューターへのログインに使用するユーザー名です。末尾のアスタリスク(*)はワイルドカードです。 Tempフォルダー内のすべては一時的なものであり、削除したいので、Tempフォルダー内のすべてです。
場所を囲む二重引用符も重要です。それは、そこにあるものが文字列であることをPowerShellに伝えます。文字列は、文字と文字の文字列と考えてください。通常の数値であれば、引用符は使用しません。
$TempFile = Get-ChildItem $TempFileLocation -Recurse
別の変数を作成しています。今回は、コマンドを使用して$ TempFile変数に入力するものを作成します。
Get-ChildItem
もう1つGet-ChildItemなどのコマンドレットに関する注意点は、完全に読み取り可能なことです。最初の単語が動詞である方法を参照してください?コマンドレットはすべてアクションワードで始まるため、実行内容がすぐにわかります。 ChildItemは2つの名詞です。
コマンドレットの2番目の部分では、アクションを適用するPowerShellについて常に説明します。 ChildItemは、親ロケーションのすべての子を意味します。これは、フォルダー内のすべてのファイルを取得するということと似ています。ファイルは子で、フォルダーは親です。
子アイテムを取得するコマンドレットは何ですか?変数$ TempFileLocationのすべて。 PowerShellは、先ほど$ TempFileLocationに配置した場所に移動し、そこにあるすべての子アイテムを取得します。次に、それらを変数$ TempFileに入れます。
では、-Recurseパートの内容は何ですか?これは、Get-ChildItemに、その場所のすべてを処理するように指示しています。親フォルダ内にすぐにファイルを取得するだけではいけません。そのフォルダーにフォルダーがある場合は、すべての子も取得し、子なども取得します。それらすべてを取得します。
$TempFileCount = ($TempFile).count
はい、$ TempFileCountという3番目の変数を作成し、その変数に数値を入力します。番号はどこですか?さて、($ TempFile).countがその番号を取得します。おそらく、.count部分が$ TempFileに保存したばかりのすべてのファイルのカウントを行うことを理解しているでしょう。
なぜこれを行ったのですか?ほとんどの場合、スクリプトの残りの部分でクリーンアップしている無駄なファイルの数を知って、それがどれほど効果的であったかを知ることができるからです。
if($TempFileCount -eq 0)
今、設定しています条件文を作成します。 「if」を尋ねていることがわかります。もし何か?括弧内のものがtrueまたはfalseの場合。括弧は重要です。そうでない場合、Ifは比較対象を認識しません。ここでは、$ TempFileCountに保存した数値がゼロに等しいかどうかを尋ねています。
-eqは、equalsの省略形です。これは比較演算子の一種です。 「部屋がきれいで、すばらしいなら、私たちは何かをするつもりです」と子供に言うようなものです。このステートメントは、$ TempFileCountに格納されている数値がゼロに等しい場合、次のことを行うことを言っています。
{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}
これは、$ 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。パイプと呼ばれる後の垂直線。 PowerShellに$ TempFileの内容をコマンドレットに流し込むように、実際のパイプのように機能します。まるで水が洗濯機にパイプで送られているかのようです。次に、コマンドレットRemove-Itemがそれを実行します。その場所にあるものはすべて削除されます。
-WhatIfパラメータは、この段階では非常に重要です。 PowerShellにコマンドを実行するように指示しますが、試してみてください。何も削除しないでください。本当にこれをやったらどうなるかを見せてください。
これにより、コンピューター上の何も変更せずにコマンドをテストできます。 -WhatIfは、スクリプトが実行したいことを実行することに慣れるまで、そこに-WhatIfを残します。次に、それを削除するだけで、スクリプトがジョブを実行します。
パラメータ-Confirm:$ falseは、ファイルを本当に削除するかどうかを確認するスクリプトを停止します。 -Recurseの機能はご存知でしょう。-Forceは、何でも削除することを意味します。 -WarningActionはSilentlyContinueに設定されています。
これにより、スクリプトが削除対象に関する警告を表示しないようにします。 -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
}
これをコピーしてPowerShell ISEに貼り付け、delete-TemporaryFiles.ps1などの名前で保存できます。コマンドレットの命名規則を理解したら、コマンドレットの命名規則を守ることもできます。
何らかの理由でコードが機能しない場合は、PowerShellスクリプトをダウンロードする を作成して、実行するだけです。最初に解凍して、スクリプトファイルを表示します。
このスクリプトを実行する場合は、スクリプトを右クリックして[PowerShellで実行]を選択します。 PowerShellコンソールは、スクリプトが処理する間1〜2秒間ポップアップし、エラーがなければ消えます。
PowerShellの詳細情報
それは非常に多いようです。初めてのPowerShellスクリプトの場合、かなりの量です。ここまで来たら、拍手してください。今日は多くのことを学びましたが、今はもっと学びたいと思っています。それは素晴らしいことです!
PowerShellの詳細については、インターネット上に多くのリソースがあります。始めるのに適した場所は、記事「コマンドラインまたはPowerShell経由でスタートアッププログラムのリストを生成する 」です。次に、これらの他のリソースを確認してください。