簡體   English   中英

C#WMI遠程進程執行

[英]C# WMI remote process execution

我正在嘗試運行一個命令,在Win 2008框中調用批處理文件。 (登錄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"];

任何幫助表示贊賞......

在通過WMI在遠程計算機上實例化命令時,需要指定顯式憑據。 WMI增強了安全性,但這樣做實際上降低了安全性,因為顯式憑證以明文形式傳遞它們,而不像令牌。

如果將ROOT \\ CIMV2設置為服務器上腳本的默認命名空間,那么您應該只需要以下內容:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM