リモート サーバーに接続してバッチ ファイルを開始する、非常に単純な WMI メソッドがあります。
この実行からの戻りコードは 0 で、成功したことを示しています。バッチ ファイルへのパスを変更すると、9 が返されるので、コマンド ファイルを見つけていることがわかります。
問題は、サーバーを見ると、何も起こっていないことがわかります。このバッチ ファイルが最初に行うことは、ドライブから GIT リポジトリを削除することです。
私のコードは次のとおりです。
public object[] ProcessToRun;
public void StartBuild()
{
ProcessToRun = BuildServerInfo.SelectedBranch == BuildServerBranch.Branch.Development ? new object[] { "c:\\src\\Build\\Batch1_Development.cmd" } : new object[] { "c:\\src\\Build\\Batch2_Release_Candidate.cmd" };
var connection = new ConnectionOptions();
connection.Impersonation = ImpersonationLevel.Impersonate;
connection.Authentication = AuthenticationLevel.Packet;
connection.EnablePrivileges = true;
connection.Timeout = new TimeSpan(0,0,15);
var mp = new ManagementPath("\\\\" + BuildServerInfo.BuildServer + "\\root" + "\\cimv2:Win32_LogicalDisk.DeviceID=\"C:\"");
var ms = new ManagementScope(mp, connection);
var mprocess = new ManagementClass(ms, new ManagementPath("Win32_Process"), new ObjectGetOptions());
var results = mprocess.InvokeMethod("Create", ProcessToRun);
}
これはコードの問題ですか、それともサーバーで何かする必要がありますか? サーバーは Windows 2008 R2 です。
ありがとう。
編集: 私のアカウントには完全な管理者権限があり、CIMV2\Security の下の WMI ユーザーには完全なアクセス権があります。