問題タブ [powershell-module]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - PowerShellモジュールを本番環境に出荷する方法は?
すべてのPowerShell関数をps1ファイルに記述しました。
別のps1ファイルでは、ドットソースで関数が呼び出されています。
より良い方法を探すと、すべての関数をモジュール(.psm1)として配置する方が良いオプションであることがわかりました。
しかし、.ps1ファイルの場合は、フォルダーに入れて出荷するだけです。
.psm1ファイルを使用すると、インポートできるように特定の場所に追加する必要があると表示されます。
次に、.psm1ファイルを顧客に提供する方法は?使用する前に、上記の場所にコピーするように指示する必要がありますか?(msi経由で出荷しない場合)
powershell - モジュール内のPowerShell.ps1ファイルコマンドレット
.ps1
現在、相互に関連するPowerShellスクリプトコマンドレット(パラメーターを受け取ることができます)のコレクションがありますが、それぞれがかなり関与しています。できれば別々のファイルに保存しながら、モジュールに整理したいと思います。
それを行うための最良の方法は何ですか?それらを別々の.ps1ファイルに保持し、モジュールマニフェストを使用してそれらがモジュールの一部であることを示すことはできますか?.psm1
ファイルを分離しておくために、ファイルをファイルにドットソースする必要がありますか?それとも、それらを別々のファイルに分割するのは賢明ではありませんか?
powershell-3.0 - 1 つのモジュール マニフェスト内でアセンブリと psm1 のコマンドレットを混在させる
いくつかのカスタム コマンドレットと、アセンブリを RootModule として指定してロードするモジュール マニフェストを含む C# プロジェクトがあります (私は PowerShell 3.0 を使用しています)。
psm1 ファイルに記述されたコマンドレットをいくつか追加する必要があり、それらを同じ ModuleManifest 内にエクスポートしたいと考えています。
たとえば、モジュールの名前が MyModule の場合、MyModule.psd1 で次のようなことを試しました。
すべてのファイル (MyModule.psd1、MyModule.dll、および MyModule.psm1) は、PSModulePath 文字列によって参照されるパスの MyModule ディレクトリに含まれています。
モジュールはアセンブリのすべてのコマンドレットと共に読み込まれますが、.psm1 ファイルからエクスポートされた関数 (Export-ModuleMember -Function "*") が表示されません。私がやろうとしていることは可能ですか?はいの場合、どのように?
ありがとう
c# - C# から特定のバージョンの PowerShell を呼び出す
Get-VM
Hyper-V ホストで C# から呼び出されたコマンドレットを使用しようとしています。
明らかに、対応する PowerShell モジュールHyper-V
を最初にインポートする必要があります。ただし、インポートは失敗します。これは、モジュールが PowerShell 3.0 でのみサポートされているためと思われます (少なくとも、この記事からわかることです)。ただし、System.Management.Automation で使用される PowerShell はバージョン 2.0 のようです。
戻り値
'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Hyper-V\Hyper-V.psd1' モジュールは、そのマニフェストに無効なメンバーが 1 つ以上含まれているため、インポートできません。有効なマニフェスト メンバーは ('ModuleToProcess', ...) です。無効なメンバー ('HelpInfoUri') を削除してから、モジュールのインポートを再試行してください。
C# で特定のバージョンの PowerShell を使用する方法はありますか?
powershell - Powershell Import-Module が DllNotFoundException で失敗する
Powershell 2.0 を搭載した別のコンピューターでhttp://powershellgac.codeplex.comを使用しようとすると、メイン PC の PowerShell 3.0 で正常に使用されますが、他の PC では次のように表示されます。
メインの PC でかっこがすべて埋まっていますが、これが機能しないのはなぜですか? ExeuctionPolicy を「無制限」に設定しました。それでも同じエラーです。$env:PSModulePath を両方の PC で正しく設定しました。(Gacマニフェストを見つける方法は他にあります)
編集: 最も重要な情報を追加するのを忘れていました: Powershell ISE 内で .ps1 スクリプトを開始すると、他の PC でも動作します。スクリプト自体に問題がないことは明らかなので、私にはわかりません。
powershell - PowerShell v3モジュールで外部.NETアセンブリを確実に参照する方法は?
私は、いくつかの外部 .NET アセンブリに含まれる型を操作する必要がある PowerShell v3 モジュールに取り組んでいます。
展開を容易にするために、このモジュールを合理的に自己完結型にしたいと考えており、これらのアセンブリが GAC に読み込まれることに依存したくありません。理想的には、必要なアセンブリ dll をモジュール フォルダーに配置し、PowerShell に依存して、モジュールが読み込まれるときにこれらのアセンブリを自動的に読み込むようにしたいと考えています。
Add-Type コマンドを使用して、次のようにアセンブリをブルート フォース ロードできることはわかっています。
しかし、私はモジュール マニフェストで必要なアセンブリ プロパティについても読んだことがあり、このアプローチが一見壊れやすい Add-Type コードを排除できることを期待しています。
モジュール内の外部アセンブリを参照する最も信頼できる方法は何ですか? マニフェストで依存関係を宣言すると、モジュールが読み込まれるときにアセンブリが暗黙的に読み込まれますか? モジュール マニフェストを利用して必要なアセンブリを一覧表示した場合、アセンブリを読み込むコードを記述する必要がありますか?
Add-Typeアプローチを使用してすでにこれを機能させているため、単純な「機能させる」ソリューションを実際に探しているわけではありません...これを行う最も信頼できる方法のガイダンスと推奨事項を探しています。