次のコードで簡単なコンソール プロジェクトを作成しました。
using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var farm = SPFarm.Local;
Console.WriteLine(SPFarm.Local);
Console.ReadLine();
}
}
}
SP2013 サーバーはCloudshareから仮想サーバーにインストールされます。SQL Server 2012 用の別の vm と、Active Directory 2012 用の別の vm があります (ドメインは AD2012.loc)。
AD2012.loc/Administrator
アカウントを使用してプロジェクトを開くと、完璧に機能します。しかし、自分のアカウント (AD2012.loc
および管理者グループにある)SPFarm.local
を使用して開くと、 null
.
私は許可の問題を知っていSPFarm.Local
ますが、別のプロジェクトで使用するにはこのオブジェクトに依存する必要があるため、アクセス権のない複数のサーバーで実行され、それらが管理者として実行されるかどうか確信が持てません。コードを偽装して SPFarm 管理者などとして実行するためにできることはありますか? SPSecurity.RunWithElevatedPrivileges
運が悪かったので実行してみました。
アップデート
SPAdmin ユーザーになりすまして上記のコードを実行しようとしましたが、それでも null になります。
これはクライアント マシンで実行されるため、ユーザーにアクセス権を与えることはできません。また、SPConfig データベースへのアクセス権を与えるように指示することもできません。したがって、コードでそれを行う方法、なりすましなどの方法が必要です。