28

Webアプリケーションの展開に関連する特定のタスクでWindows管理者を支援するために、Windows管理者向けのPowerShellスクリプトを作成しようとしています。

PowerShellスクリプト(.ps1)を実行する代わりに、 PowerShellモジュール(.psm1)の開発を支持または除外する必要がある理由はありますか?

スクリプトを開発するための引数

  • 単純さ:スクリプトの使用は、モジュールをインストールする必要がないため、Windows管理者にとっては少し簡単で簡単だと思います(ただし、私はWindows管理者ではないため、間違っている可能性があります)。
  • より迅速な開発:モジュールの開発には、内部メソッドへのエクスポージャーをより注意深くプログラミングする必要があります。これはAPIを設計するようなものであるため、より厳密にする必要があります。

モジュールを開発するための議論

  • 再利用性:これが最初に頭に浮かぶことです。管理者がスクリプトを自分のスクリプトに統合したい場合、スクリプトを呼び出すよりも、1つ(または複数)のコマンドレットを公開するモジュールを再利用する方が簡単かもしれません。
  • ..。

PSスクリプトとPSモジュールの一般的な使用例、またはそれぞれの選択肢の技術的な制限を知っている場合は、役立つ可能性があります。

4

2 に答える 2

25

モジュールで何ができるかを理解するには、https ://docs.microsoft.com/en-us/powershell/scripting/developer/module/writing-a-windows-powershell-module?view =powershell-7.1をお読みください。

一言で言えば、

Windows PowerShellモジュールを使用すると、Windows PowerShellコードを分割、整理、および抽象化して、自己完結型の再利用可能なユニットにすることができます。これらの再利用可能なユニットを使用すると、管理者、スクリプト開発者、およびコマンドレット開発者は、モジュールを他の人と直接簡単に共有できます。スクリプト開発者は、サードパーティのモジュールを再パッケージ化して、カスタムのスクリプトベースのアプリケーションを作成することもできます。モジュールは、PerlやPythonなどの他のスクリプト言語のモジュールと同様に、再利用可能で再配布可能なコンポーネントを使用する本番環境対応のスクリプトソリューションを可能にし、複数のコンポーネントを再パッケージ化して抽象化してカスタムソリューションを作成できるという追加の利点もあります。

スクリプトにすでに関数があり、単一のタスクを実行するように記述されているだけではない場合は、名前を.PSM1に変更して、モジュールに変換できます。もちろん、関数を使用していない場合は、.ps1を選択するしかありません。このような場合、各.ps1は単一のタスクを実行するために使用されます。自分が書いたスクリプトを他の人と共有するときは、常にモジュールを好みます。

于 2011-02-24T11:07:19.907 に答える
15

関数/変数を「非表示」にして、必要なものだけをエクスポートする機能のモジュールが好きです。

于 2011-02-24T23:19:18.337 に答える