3

Win2008ボックスでバッチファイルを呼び出すコマンドを実行しようとしています。(Win 2008にログインしてクリックすると、コマンドは正常に実行されます)。

しかし、同じユーザー資格情報を使用してWMI経由でこのバッチファイルを呼び出すと、バッチは実行されません。

接続する私のコードは次のとおりです。

ConnectionOptions connOptions = new ConnectionOptions();
connOptions.Impersonation = ImpersonationLevel.Impersonate;
connOptions.EnablePrivileges = true;
connOptions.Username = UserName;
connOptions.Password = Password;

ManagementScope manScope = new ManagementScope(
    String.Format(@"\\{0}\ROOT\CIMV2", ComputerName), connOptions);
manScope.Connect();

ObjectGetOptions objectGetOptions = new ObjectGetOptions();
ManagementPath managementPath = new ManagementPath("Win32_Process");
ManagementClass processClass = new ManagementClass(
    manScope, managementPath, objectGetOptions);

ManagementBaseObject inParams = processClass.GetMethodParameters("Create");

inParams["CommandLine"] = command;
ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null);
Object returnValue = outParams["ReturnValue"];

どんな助けでもありがたいです...

4

2 に答える 2

0

WMI を介してリモート コンピューターでコマンドをインスタンス化するときは、明示的な資格情報を指定する必要があります。WMI はセキュリティを強化しますが、明示的な資格情報はトークンとは異なり、平文で渡すため、実際にはセキュリティが低下します。

于 2012-11-04T03:26:52.120 に答える
0

ROOT\CIMV2 がサーバー上でスクリプトを実行するためのデフォルトの名前空間として設定されている場合は、次のものが必要になります。

ManagementScope manScope = new ManagementScope(
    String.Format(@"\\{0}", ComputerName), connOptions);
manScope.Connect();
于 2013-06-18T13:52:34.900 に答える