Windowsでコマンドを実行することになると、PowerShellは穴の中のやや優勢になりました。長年愛好家はWindowsコマンドラインの範囲に限定されていましたが、2006年にはPowerShellが強力な代替手段として登場しました.
PowerShellとは?
PowerShellはインタラクティブです コマンドラインインターフェース (CLI)およびシステム構成の設計と管理タスクの自動化を支援するためにマイクロソフトが設計した自動化エンジン。このツールには、Perlに似た独自のプログラミング言語を備えた独自のコマンドラインがあります。当初、PowerShellはユーザーのコンピューター上のオブジェクトを管理するために設計されました.
現在、PowerShellは、システム管理タスクを実行および自動化できる広範な環境をユーザーに提供しています。ユーザーは、1つのプログラムを通じてActive DirectoryからExchange Serverのリソースにアクセスできます。 PowerShellの中核では、ユーザーは以下にアクセスできます。
- コマンド・プロンプト
- PowerShellコマンド
- .NET Framework API
- Windows Management Instrumentation
- Windowsコンポーネントオブジェクトモデル
PowerShellがオープンソースアプリケーションになったため、LinuxおよびUnixベースのユーザーは、この汎用プラットフォームにアクセスできるようになりました。 PowerShellの主な用途は、ユーザーが管理ジョブを自動化できるようにすることです。面倒で繰り返しの多いタスクを実行するのではなく、ユーザーはスクリプトを作成してコマンドを発行するだけで、PowerShellがそれらを自動的に完了します。ユーザーは、何百ものコマンドをカスタマイズできます。 コマンドレット.
PowerShellコマンド
25の基本的なPowerShellコマンドを次に示します。
セット場所 | cd、chdir、sl | 現在の作業場所を指定した場所に設定します. |
Get-Content | 猫、GC、タイプ | 指定された場所にあるアイテムのコンテンツを取得します. |
追加コンテンツ | 交流 | ファイルに単語を追加するなど、指定されたアイテムにコンテンツを追加します. |
セットコンテンツ | sc | アイテムのコンテンツを書き込みまたは新しいコンテンツに置き換えます. |
コピーアイテム | コピー、cp、cpi | ある場所から別の場所にアイテムをコピーします. |
削除アイテム | del、erase、rd、ri、rm、rmdir | 指定されたアイテムを削除します. |
移動アイテム | mi、move、mv | ある場所から別の場所にアイテムを移動します. |
セットアイテム | si | アイテムの値をコマンドで指定された値に変更します. |
新商品 | に | 新しいアイテムを作成します. |
スタートジョブ | サジブ | Windows PowerShellバックグラウンドジョブを開始します. |
比較オブジェクト | 比較、dif | 2セットのオブジェクトを比較します. |
グループオブジェクト | グループ | 指定されたプロパティに同じ値を含むオブジェクトをグループ化します. |
Invoke-WebRequest | curl、iwr、wget | インターネット上のWebページからコンテンツを取得します. |
メジャーオブジェクト | 測る | オブジェクトの数値プロパティ、およびファイルなどの文字列オブジェクトの文字、単語、行を計算します… |
解決パス | rvpa | パス内のワイルドカード文字を解決し、パスの内容を表示します. |
履歴書 | ルイジ | 中断されたジョブを再開します |
セット変数 | セット、sv | 変数の値を設定します。要求された名前の変数が存在しない場合、変数を作成します. |
ショーコマンド | shcm | グラフィカルコマンドウィンドウにWindows PowerShellコマンドを作成します. |
ソートオブジェクト | ソート | プロパティ値でオブジェクトをソートします. |
開始サービス | sasv | 停止した1つ以上のサービスを開始します. |
開始プロセス | 樹液、開始 | ローカルコンピューターで1つ以上のプロセスを開始します. |
サスペンドジョブ | sujb | ワークフロージョブを一時的に停止します. |
待機ジョブ | wjb | セッションで実行されているWindows PowerShellバックグラウンドジョブの1つまたはすべてが…になるまで、コマンドプロンプトを抑制します… |
Where-Object | ?, どこ | プロパティ値に基づいてコレクションからオブジェクトを選択します. |
書き込み出力 | エコー、書き込み | 指定されたオブジェクトをパイプラインの次のコマンドに送信します。コマンドがパイプラインの最後のコマンドである場合、… |
PowerShellチートシートのPDFバージョンを次に示します。下の画像をクリックして、PDFを別のブラウザタブで開き、保存してクイックリファレンスとして使用できます.
PowerShellチートシート(PDF)
PowerShellの使用方法
PowerShellは、大規模な企業ネットワーク上で複雑な管理操作を実行する企業管理者に最適です。何百もの異なるサーバーとサービスに関する情報を手動で照合するのではなく(長い時間がかかります)、PowerShellでスクリプトを実行するだけで自動的に情報をフィードバックできます.
一般的に、PowerShellは、コマンドラインの経験があるユーザーにとって最も有益です。 PowerShellを使用するには、さまざまなコマンドレット、スクリプト、実行可能ファイル、および.NETクラスを実行できます。この記事の目的上、基本を理解するために役立つコマンドレットとスクリプトに主に焦点を当てます。.
Udemyには、役立つと思われるPowerShellのトップクラスのコースが多数あります.
PowerShell vsコマンドプロンプト
多くのユーザーにとって、PowerShellはコマンドプロンプトに代わる優れた手段です。その理由は、単により多くの馬力を持っているからです。最も大きな違いの1つは、PowerShellがコマンドではなくコマンドレットを使用することです。コマンドレットは、ユーザーの管理範囲内にレジストリ管理とWindows Management Instrumentationを配置します。対照的に、コマンドプロンプトははるかに単純なコマンドに限定されています.
PowerShellはipconfigtocdのようなコマンドプロンプトコマンドを受け入れるため、2つのプラットフォーム間で構文にクロスオーバーがあります。ただし、これらはコマンドレットではなくエイリアスとして知られています。もう1つの重要な違いは、PowerShellがオブジェクトに集中していることです。コマンドレットから出力されるすべてのデータは、テキストではなくオブジェクトです。これにより、ユーザーは複雑なデータを簡単にナビゲートできます。 .NETフレームワークを含めることにより、PowerShellスクリプトで.NETインターフェイスを使用することもできます。要するに、PowerShellはステロイドのコマンドプロンプトです.
PowerShellをロードする
PowerShellの使用の基本を掘り下げる前に、最初にメインインターフェイスにアクセスする必要があります。 Windows 10ユーザーの場合、既にPowerShell 5にアクセスできます。Windows8-8.1ユーザーはPowerShell 4にアクセスできますが、Windows 7を使用している場合は、.NET内にインストールする必要があります。フレームワーク。すべてのオペレーティングシステムで、PowerShellは2つの異なるインターフェイスを提供します.
より高度なのは、経験豊富なユーザー向けの包括的なGUIとして機能する統合スクリプト環境です。基本的な代替手段は、ユーザーがコマンドを入力するためのコマンドラインを提供するPowerShellコンソールです。初心者は、PowerShellの基礎を学ぶまで後者に固執することをお勧めします.
Windows 10でPowerShellを起動するには、管理者である必要があります。管理者としてログインし、クリックします 開始, そして、あなたが見つけるまであなたのアプリをスクロールします Windows PowerShell. 右クリックして選択 管理者として実行. Windows 8.1では、単にPowerShellを検索します システム フォルダ。同様に、Windows 7では、PowerShellのデフォルトディレクトリは アクセサリー プログラムをインストールした後のフォルダー.
コマンドレットを実行する方法
簡単に言えば、コマンドレットは単一機能のコマンドです。従来のコマンドまたはユーティリティを使用するのと同じように、コマンドラインにコマンドレットを入力します。コマンドレットは、CLIと対話する主な方法です。 PowerShellでは、ほとんどのコマンドレットはC#で記述され、.NETオブジェクトを返す関数を実行するように設計された命令で構成されています.
PowerShellでは200を超えるコマンドレットを使用できます。 Windows PowerShellコマンドプロンプトでは大文字と小文字が区別されないため、これらのコマンドは大文字でも小文字でも入力できます。主なコマンドレットは次のとおりです。
- Get-Location –現在のディレクトリを取得する
- セット場所 –現在のディレクトリを取得する
- 移動アイテム –ファイルを新しい場所に移動する
- コピーアイテム –ファイルを新しい場所にコピーする
- リネーム – item既存のファイルの名前を変更します
- 新商品 –新しいファイルを作成する
使用可能なコマンドの完全なリストについては、Get-Commandコマンドレットを使用してください。コマンドラインで次を入力します。
PS C:\> Get-Command
Microsoftは、ユーザーがデフォルト設定でカスタムPowerShellコマンドレットを使用することを制限していることに注意することが重要です。 PowerShellコマンドレットを使用するには、変更する必要があります ExecutionPolicy から 制限あり に RemoteSigned. リモート署名 独自のスクリプトを実行できますが、他のユーザーからの署名されていないスクリプトを停止します.
実行ポリシーを変更するには、次のPowerShellコマンドを入力します。
PS C:\> Set-ExecutionPolicy
に変更するには RemoteSigned, 次のコマンドを入力します。
PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
新しい実行ポリシーを設定する権限があるように、管理者アカウントを使用していることを確認してください.
スクリプトを実行する方法
スクリプトベースのプロセスとコマンドは、PowerShellの汎用性の基盤の一部です。 PowerShellでは、スクリプトは基本的に、ファイル名にps1拡張子が付いたテキストファイルです。新しいスクリプトを作成するには、Windowsのメモ帳を開いてコマンドを入力し、名前の最後に「.ps1」で保存します。.
スクリプトを実行するには、PowerShellウィンドウにフォルダーとファイル名を入力します。
PS c:\ powershell \ mynewscript.ps1
これを行うと、選択したスクリプトが実行されます.
独自のPowerShellスクリプトを作成する? PowerShellを使用した高度なスクリプト作成に関するこのUdemyコースは、約5,000人の学生が受講しています。.
Windowsコマンドとの重複
PowerShellを初めて使用する場合、まったく新しいコマンドライブラリを試して学習するのは圧倒的です。ただし、ほとんどの新しいユーザーが気付いていないのは、Windowsコマンドラインで使用される構文がPowerShellと重複していることです。 PowerShellは大文字と小文字を区別しないため、これは簡単です。.
コマンドプロンプトと同様に、PowerShellでは、cdコマンドはディレクトリを変更し、dirは選択したフォルダー内のファイルのリストを提供します。そのため、必ずしも最初から始める必要はないことを覚えておくことが重要です。これをオンボードにすることで、PowerShellを使用するときに直面する学習曲線を減らし、学習する必要がある新しいコマンドの数を減らすことができます。.
ただし、これらはエイリアスであるため、完全なPowerShellコマンドとは見なされないことに注意することが重要です(WindowsコマンドプロンプトコマンドのPowershellの名前)。そのため、PowerShellでコマンドプロンプトのコマンドをいくつか試すことはできますが、新しいコマンドについてできる限り多くのことを学ぶ必要があります。それでも、コマンドプロンプトの経験は、新しいユーザーがPowerShellを使いこなし、着実に実行するのに役立つでしょう。.
SQLデータベースのバックアップ
多くの人がPowerShellを使用してSQLデータベースをバックアップしています。コマンドラインインターフェイスは、データベースの完全バックアップ、ファイルバックアップ、およびトランザクションログバックアップを実行できます。 PowerShellでデータベースをバックアップするには多くの方法がありますが、最も簡単な方法の1つはBackup-SqlDatabaseコマンドを使用することです。例えば:
PS C:\> Backup-SqlDatabase -ServerINstance “コンピューター\インスタンス”-データベース “Databasecentral”
これにより、「Databasecentral」(または選択したデータベースの名前)という名前のデータベースのデータベースバックアップが作成されます.
トランザクションログをバックアップするには、次のように入力します。
PS C:\> Backup-SqlDatabase -ServerInstance “Computer \ Instance” -Database “Databasecentral” -BackupAction Log
これにより、選択したデータベースのトランザクションログが作成されます.
必須のPowerShellコマンド
エイリアスを使用しても、PowerShellについてはこれまでのところしか理解できないため、PowerShellのネイティブコマンドについてできる限りの知識を習得することが重要です。上記のいくつかに触れましたが、以下で主要なものをより詳細に分類します。.
助けを得ます
PowerShellに関しては、このコマンドは新規ユーザーのリストの一番上にあるべきです。 Get-Helpコマンドを使用すると、他のPowerShellコマンドで文字通りヘルプを取得できます。たとえば、コマンドの名前は知っているが、コマンドの機能や使用方法がわからない場合、Get-Helpコマンドは完全なコマンド構文を提供します.
たとえば、Get-Processの動作を確認するには、次のように入力します。
PS C:\> Get-Help -Name Get-ProcessPS C:\> Set-ExecutionPolicy
このガイドの前半で触れたように、Microsoftには、変更しない限りPowerShellでのスクリプト作成を禁止する制限された実行ポリシーがあります。実行ポリシーを設定する場合、次の4つのオプションから選択できます。
- 制限あり –スクリプトの実行を停止するデフォルトの実行ポリシー.
- すべて署名済み –信頼できる発行元によって署名されている場合、スクリプトを実行します
- リモート署名 –ローカルで作成されたスクリプトの実行を許可します
- 無制限 –スクリプトの実行に制限のないポリシー
PS C:\> Get-ExecutionPolicy
PowerShellを使用している場合、使い慣れたサーバーで常に作業するとは限りません。コマンドを実行する Get-Executionポリシー 新しいスクリプトを実行する前に、サーバー上でアクティブなポリシーを確認できます。制限されたポリシーの下で問題のサーバーが動作している場合は、次に実装できます Set-ExecutionPolicy 変更するコマンド.
Get-Service
最も重要なコマンドの1つはGet-Serviceです。これは、システムにインストールされているすべてのサービス(実行中および停止中)のリストをユーザーに提供します。このコマンドレットは、特定のサービス名またはオブジェクトを使用して送信できます.
たとえば、PS C:\と入力した場合> Get-Serviceを使用すると、コンピューター上のすべてのサービス、そのステータス、および表示名のリストが表示されます.
このコマンドを使用して特定のサービスを取得するには、type PS C:\ Get-Service“ WMI *”と入力して、WMIで始まるすべてのサービスを取得します。.
出力をコンピューター上のアクティブなサービスに制限する場合は、次のコマンドを入力します。
PS C:\ Get-Service | Where-Object {$ _。Status -eq“ Running”}
ConvertTo-HTML
PowerShellを使用する場合、見た情報に関するレポートを生成することができます。これを行う最良の方法の1つは、 ConvertTo-HTML コマンド。このコマンドレットを使用すると、テーブルと色を使用してレポートを作成でき、複雑なデータの視覚化に役立ちます。オブジェクトを選択して、コマンドに追加するだけです。たとえば、次のように入力できます。
Get-PSDrive | ConvertTo-Html
これにより大量の情報が返されるため、Out-Fileコマンドを使用してファイルに制限することをお勧めします。より良い代替コマンドは次のとおりです。
Get-PSDドライブ| ConvertTo-Html | Out-File -FilePath PSDrives.html
これにより、表形式のHTMLファイルが生成されます。例えば:
その後、独自の色と境界線を追加して、プレゼンテーションを洗練させることができます.
Export-CSV(およびGet-Service)
可視性を高めるために重要なのは、Export-CSVコマンドです。 PowerShellデータをCSVファイルにエクスポートできます。基本的に、このコマンドは、PowerShellで選択したすべてのオブジェクトをコンパイルしたCSVファイルを作成します。すべてのオブジェクトには、CSVファイル内に独自の行または行があります。このコマンドは、主にスプレッドシートを作成し、外部プログラムとデータを共有するために使用されます.
このコマンドを使用するには、次のように入力します。
PS C:\> Get-Service | Export-CSV c:\ service.csv
Export-CSVコマンドを実行する前に、オブジェクトをフォーマットしないでください。これは、オブジェクトをフォーマットすると、元のオブジェクト自体ではなく、フォーマットされたプロパティのみがCSVファイルに配置されるためです。オブジェクトの特定のプロパティをCSVファイルに送信する場合は、 Select-Object コマンドレット.
を使用するには Select-Object コマンドレット、入力:
PS C:\> Get-Service |オブジェクト名、ステータスの選択| Export-CSV c:\ Service.csv
取得プロセス
システムで現在実行中のすべてのプロセスを表示する場合は、 取得プロセス コマンドは非常に重要です。コンピューター上のすべてのアクティブなプロセスのリストを取得するには、次を入力します。
PS C:\ Get-Process
パラメーターを指定しない場合、コンピューター上のすべてのアクティブなプロセスの内訳が表示されることに注意してください。特定のプロセスを選択するには、プロセス名またはプロセスIDで結果を絞り込み、それを フォーマットリスト 使用可能なすべてのプロパティを表示するコマンドレット。例えば:
PS C:\ Get-Process windowrd、エクスプローラー|形式リスト*
これにより、すべてのアクティブなプロセスを包括的に監視できます。.
Get-EventLog
PowerShellの使用中にコンピューターのイベントログ(またはリモートコンピューターのログ)にアクセスしたい場合は、次のものが必要になります。 Get-EventLog コマンド。このコマンドレットは従来のイベントログでのみ機能するため、次のものが必要です。 Get-WinEvent Windows Vista以降のログのコマンド.
イベントログコマンドを実行するには、次のように入力します。
PS C:\> Get-EventLog -List
これにより、コンピューター上のすべてのイベントログが表示されます.
ユーザーがイベントログを見る最も一般的な理由の1つは、エラーを確認することです。ログにエラーイベントを表示するには、次のように入力します。
PS C:\> Get-EventLog -LogName System -EntryTypeエラー
複数のコンピューターからイベントログを取得する場合は、表示するデバイスを指定します(以下に「Server1」および「Server2」としてリストされています)。例えば:
PS C:\> Get-EventLog-LogName“ Windows PowerShell” -ComputerName“ local computer”、“ Server1”、“ Server2”.
イベントログの検索に使用できるパラメーターは次のとおりです。
- 後 –ユーザーが日付と時刻を指定すると、コマンドレットはその後に発生したイベントを検索します
- AsBaseObject –各イベントにSystem.Diagnostics.EventLogEntryを提供します
- AsString –出力を文字列として返します
- 前 –ユーザーが日付と時刻を指定すると、コマンドレットは以前に発生したイベントを検索します
- コンピュータネーム –リモートコンピューターを参照するために使用
- EntryType –イベントのエントリタイプを指定します(エラー、失敗の監査、成功の監査、情報、警告)
- 索引 –コマンドレットがイベントを検出するインデックス値を指定します
- リスト –イベントログのリストを提供します
- ユーザー名 –特定のイベントに関連付けられたユーザー名を指定します
停止プロセス
PowerShellを使用する場合、プロセスがフリーズすることは珍しくありません。これが発生するたびに、使用できます 取得プロセス 問題が発生しているプロセスの名前を取得してから、 停止プロセス コマンド。通常、名前でプロセスを終了します。例えば:
PS C:\> Stop-Process -Name“ notepad”
この例では、ユーザーはStop-Processコマンドを使用してメモ帳を終了しました.
PowerShell:強力なコマンドラインインターフェイス
PowerShellへの移行は非常に複雑に思えるかもしれませんが、コマンドラインインターフェイスは他のインターフェイスとほとんど同じように動作します。独自のコマンドレットが用意されている場合もありますが、豊富なオンラインリソースがあれば、考えられる管理タスクを支援できます。 PowerShellを最大限に活用するには、使用可能な多数のコマンドに慣れるだけです.
新規ユーザーとして、PowerShellの200以上のコマンドレットに簡単に悩まされます。本格的なGUIに移行する前に、必ずコマンドラインインターフェイスから始めてください。 PowerShellを初めて使用する場合でも、コマンドラインインターフェースを使用する場合でも、この強力なツールを最大限に活用するために十分な情報をオンラインで入手できます。.
この記事は、Windowsでコマンドを実行する際にPowerShellが優勢であることについて説明しています。PowerShellは、マイクロソフトが設計した自動化エンジンであり、Perlに似た独自のプログラミング言語を備えた独自のコマンドラインがあります。PowerShellは、システム管理タスクを実行および自動化できる広範な環境をユーザーに提供しています。PowerShellは、コマンドプロンプトに代わる優れた手段であり、単により多くの馬力を持っているからです。PowerShellは、コマンドレットを使用することで、ユーザーの管理範囲内にレジストリ管理とWindows Management Instrumentationを配置します。PowerShellは、ステロイドのコマンドプロンプトです。