PowerShell
を使用してビルドをスクリプト化するプロジェクトに参加します。ビルドはWebAdministration
モジュールを使用してローカルIISインスタンスを管理します。ビルドスクリプトを実行すると、WebAdministration
をインポートしようとすると次のエラーがスローされます。
エラー:06/29/2016 17:28:35:C:\ dev\src\nib-ravendb\build\ConfigureIis.ps1:10 char:1 + Import-Module WebAdministration + ~~~~~~~~~ ~~~~~~~~~~~~~~~ ~~~~~~~ [<< == >>]例外:有効なモジュールファイルが見つからなかったため、指定されたモジュール 'WebAdministration'はロードされませんでした任意のモジュールディレクトリ。エラー:1
どのように実行するとImport-Module WebAdministration
PowerShell
コマンドラインでモジュールがインポートされ、そこから機能を使用できます。その後のビルドスクリプトの実行はまだ失敗します。
私が持っています IIS 7.5
およびPowerShell 4
このインポートがコマンドラインではなくスクリプトで失敗する理由と、それを修正する方法を知っている人はいますか?
結局チョコレートのような問題が発生し、$env:PSModulePath
が最初のエントリに切り捨てられました。これが、スクリプトではなく入力した場合にスクリプトが機能していた理由です。
実行しているスクリプトのさまざまなポイントで$env:PSModulePath
をログに記録して見つけました。
$env:PSModulePath
のエントリを並べ替えることで回避しました。
他のいくつかの良い提案については@Richardの答えを見てください。
サーバーの場合、WebAdministration
モジュールを使用するには、Web Server (IIS)
の下にロールManagement Tools
をインストールする必要があります。使用可能なモジュールがあるかどうかを確認するには、Get-Module -ListAvailable
を使用します。
Windows 7
から10
の場合、IIS Management Scripts and tools
>> Internet Information Services
の下にWeb Management Tools
機能をインストールする必要があります。
WebAdministration
.psd1ファイルを手動で検索してインポートすることもできます。 $env:psmodulepath
を使用して、モジュールが格納されている場所を特定し、実行します。
Import-Module -Name 'C:\Windows\System32\WindowsPowerShell\v1.0\Modules\WebAdministration\WebAdministration.psd1'
Server 2008
の場合、以下を試すことができますが、これは2012以降では機能しない可能性があります。
Add-PSSnapin WebAdministration
注Import-Module
またはAdd-PSSnapin
を使用してWebAdministration
モジュールをロードできるようにするには、管理者権限でスクリプトを実行する必要があります。
また、PowerShell
の実行ポリシーがUnrestricted
に設定されていることを確認します。
Set-ExecutionPolicy unrestricted
あなたはこれを見たいかもしれません 質問 。