一部のパラメーターを入力として受け入れるカスタム PowerShell スクリプトがあります。
ただし、パラメーターの 1 つは、外部アセンブリで定義されている型です。つまり、PowerShell.exe を使用してコマンド ラインからスクリプトを実行すると、アセンブリが読み込まれず、スクリプトが失敗します。
スクリプトの関連部分は次のとおりです。
[CmdLetBinding()]
param(
[Parameter(Mandatory=$true, Position=0)]
[Microsoft.SharePoint.PowerShell.SPWebPipeBind]$Web
)
# The SharePoint snapin will load 'Microsoft.SharePoint.PowerShell'
Add-PSSnapin Microsoft.SharePoint.PowerShell -EA 0
Write-Host "Let's dance"
そして、ここでスクリプトを起動する方法を示します (実際には、SharePoint プロジェクトの展開後のイベントから):
"%WINDIR%\SysNative\WindowsPowerShell\v1.0\powershell.exe" -file "c:\pathto\fixeditablefields.ps1" "http://myapp"
スクリプトを実行する前に PowerShell.exe にアセンブリをロードするように指示する方法はありますか?
[編集] SharePoint で作業しているので、PowerShell V2 にこだわっています