3

プログラムで C# コードから SharePoint 管理シェルを起動しようとしていますが、[スタート] メニューから選択したときとは異なる動作をしています。私は同じ結果でこれを2つの異なる方法で実行しようとしました:

試み #1:

var startInfo = new ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.Verb = "runas";
startInfo.FileName = "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\PowerShell.exe";
startInfo.Arguments = "-NoExit \"  & 'C:\\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\14\\CONFIG\\POWERSHELL\\Registration\\sharepoint.ps1' \"";
Process.Start(startInfo);

試み #2:

var startInfo = new ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.Verb = "runas";
startInfo.FileName = "C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Microsoft SharePoint 2010 Products\\SharePoint 2010 Management Shell.lnk";
Process.Start(startInfo);

これらの方法はどちらも PowerShell ウィンドウを起動し、次のエラー メッセージを表示します。

このシステムではスクリプトの実行が無効になっているため、ファイル C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\CO NFIG\POWERSHELL\Registration\SharePoint.ps1 を読み込めません。詳細については、「get-help about_signing」を参照してください。At line:1 文字:3 + & <<<< ' C:\Program Files\Common Files\Microsoft Shared\Web Server Extensio ns\14\CONFIG\POWERSHELL\Registration\sharepoint.ps1 ' + CategoryInfo : NotSpecified: (: ) []、PSSecurityException + FullyQualifiedErrorId : RuntimeException

スタートメニューから起動すると、問題なく動作します。なぜこれが異なる動作をするのかについてのアイデアはありますか? 試行 #1 では、リンクと同じ実行可能ファイルと引数を実行しています。試行 #2 では、リンク自体を実行しようとしています。

ありがとう!

4

1 に答える 1

2

Restricted通常、この問題は x86 および x64 PowerShell が原因で発生し、スクリプトを実行するため以外に ExecutionPolicy を設定する必要があります。おそらく、PowerShell コンソールが x64 で、C# プログラムが x86 として実行されているか、またはその逆です。いずれにせよ、追加のパラメーターを PowerShell に渡して、-ExecutionPolicy ByPassこの特定の問題をスキップします。

于 2012-12-13T22:37:53.423 に答える