0

Sharepoint サイトで (.wsp) テンプレート機能を有効にするために、PowerShell スクリプトを C# コードに埋め込んで実行しようとしています。私のコードは次のとおりです

Command installCommand = new Command("Install-SPUserSolution");
installCommand.Parameters.Add("identity", "Template.wsp");
installCommand .Parameters .Add ("site", "siteURL");
// create Powershell runspace 
Runspace runspace = RunspaceFactory.CreateRunspace();

// open it 
runspace.Open()

// create a pipeline and feed it the script text 
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(" Add-PsSnapin Microsoft.SharePoint.PowerShell");

pipeline.Commands.Add(installCommand);
//added just for reference since command dosen’t return anything
pipeline.Commands.Add("Out-String");

// execute the script 
Collection<PSObject> results = pipeline.Invoke();
//(This part of the code throws error saying Install-SPUserSolution is not a recognized cmdlet,function,script,…)

  // close the runspace 
 runspace.Close();

ノート:

  1. コマンド全体をスクリプトとして追加しようとしましたが、同じエラーが発生します。
  2. SharePoint 管理シェルのコマンド プロンプトでスクリプトを試してみましたが、完全に動作します。
  3. 上記のコードを WCF のライブラリ クラスで使用しています。
  4. Visual Studio のすべてのサブプロジェクトのすべてのプラットフォームは「ANY CPU」に設定されており、.net Framework 3.5 を使用しています。
  5. また、管理シェルで使用できるヘルプ オプションも確認しました。コマンド「Install-SPUserSolution」は、Microsoft.Sharepoint.Powershell のコマンドレットとして実際に存在します。
  6. クライアント オブジェクト モデル (COM) を使用してタスクを完了しています。COM がサポートしていないため、C# コードを使用して機能を有効にすることはできません。

私は自分が間違っているかもしれないことについて完全に無知です。どんな助けでも大歓迎です。

4

1 に答える 1

0

私はついに私の問題の解決策を見つけました.WCFでこのコードを実行しようとしていたので、wcfがホストされているアプリケーションプールにspadminアカウントを追加するだけでした.sp.elevatepriviledgesデリゲートを使用してなりすまし

于 2012-08-02T09:44:23.540 に答える