リモート マシンでバッチ ファイルを実行する wmi アプリケーションを作成しました。
このバッチ ファイルは、引数として渡されたディレクトリ文字列に出力を書き込みます。
アプリケーションを起動し、ドライブ C を出力ディレクトリとして選択すると、すべてが機能します。しかし、ネットワーク ドライブを選択すると、何らかの理由で機能しません。
(このネットワーク ドライブは会社のユーザー ドライブであり、ネットワーク上の各ユーザーにマップされます)。
リモートマシン内から手動で(ネットワークドライブを使用して)まったく同じコマンドを実行すると、それも機能します...
ConnectionOptions connOptions = new ConnectionOptions();
connOptions.Impersonation = ImpersonationLevel.Impersonate;
connOptions.Username = sUsername;
connOptions.Password = sPassword;
connOptions.Authority = "NTLMDomain:" + sDomain;
connOptions.EnablePrivileges = true;
ManagementScope manScope = new ManagementScope(String.Format(@"\\{0}\ROOT\CIMV2", sHost), connOptions);
manScope.Connect();
ManagementPath managementPath = new ManagementPath("Win32_Process");
ManagementClass processClass = new ManagementClass(manScope, managementPath, objectGetOptions);
ManagementBaseObject inParams = processClass.GetMethodParameters("Create");
for (int i = 0; i < listOfJobs.Items.Count; i++)
{
listOfJobs.SetSelected(i, true);
inParams["CommandLine"] = listOfJobs.SelectedItem.ToString();
ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null);
}
ジョブ文字列の例:
作業スクリプト: C:\Scripts\BatchScript -p C:\Test C:\OutputDir
失敗したスクリプト: C:\Scripts\BatchScript -p C:\Test U:\OutputDir
何か案は?