スクリプトの移植性の理由から、PowerShellスクリプトでスナップインを動的に読み込む必要があります。これは、Load-Module
機能を持つPowerShell v2で簡単に実行できます。この特定のスクリプトは、さまざまな理由でPowerShell v2をインストールしたくないマシンで実行する必要がありますが、v1が必要です。PowerShell v1に相当するロードモジュール
PowerShell v1に相当するLoad-Module
はありますか?
スクリプトの移植性の理由から、PowerShellスクリプトでスナップインを動的に読み込む必要があります。これは、Load-Module
機能を持つPowerShell v2で簡単に実行できます。この特定のスクリプトは、さまざまな理由でPowerShell v2をインストールしたくないマシンで実行する必要がありますが、v1が必要です。PowerShell v1に相当するロードモジュール
PowerShell v1に相当するLoad-Module
はありますか?
Import-Module
を意味しますか?そうであれば、モジュールがどのように定義されているかによって異なります。スナップインDLLの場合は、スナップインをV1マシンにインストールしてからAdd-PSSnapin
を使用する必要があります。ファイルが.psm1
の場合は、ファイルの名前を.ps1
に変更する必要があります。 . .\mymodule.ps1
。ただし、Export-ModuleMemberのようなv2の機能を使用する場合は、コメントアウトする必要があります。そして、v1は.psd1
ファイルをどうすればいいのかわかりません。
私はv1マシンにスナップインをインストールしないことをお勧めします。 v1でスナップインを動的にロードする方法はありませんか? – friism
v1でセッションにスナップインをインポートする方法はありません(管理者としてGACにインストールする必要はありません)。アセンブリとライブラリを読み込むことはできますが、.netクラス以外のコマンドレットは表示されません。 – Jaykul
インストールの主な目的は、PowerShellがスナップインDLLを検出できるようにレジストリエントリのセットを作成することです。私はあなたがスクリプト(または.regファイル)でそれらのレジストリエントリを再作成できると思います。 –
Import-Module
モジュールをロードし、モジュールはV2のみの機能です。
PowerShell V1にはPowerShellスクリプトではなく.NET言語(C#、VB、...)で書かれた「スナップイン」があり、Add-PSSnapin
のセッションに読み込まれました(スナップインはV2でもサポートされていますが、モジュールにはスナップイン機能のスーパーセットがあり、V2にアップグレードすることが不可能な場合を除きモジュールに固執します)。
http://serverfault.com/ – Rune