各位前輩您們好,最近學習wmi遇到一些問題無法解決,希望各位前輩能指點~~
點兩下執行bat四行都可執行,
在cmd.exe下也可執行,
唯透過wmi遠端只能執行
第一行與第三行的新增資料夾與第四行的重開機指令
第二行卻無法執行,希望前輩能指點,謝謝。
cmd(@"""c:\update.bat""");
副程式:
public void cmd(string path)
    {
        ConnectionOptions options = new ConnectionOptions();
        options.Username = username.Text;   // 使用者名稱
        options.Password = passwd.Text;   // 使用者密碼
        options.Authentication = AuthenticationLevel.Default;    // 認證模式設定 (採用預設)
        options.Impersonation = ImpersonationLevel.Impersonate;  // 設定 COM 模擬等級
        options.EnablePrivileges = true;  
        ManagementScope MS_Conn = new ManagementScope("\\\\" + "192.168.11.1" + "\\root\\cimv2", options);
        //ManagementScope MS_Conn = new ManagementScope("\\\\" + ip.Text + "\\root\\DEFAULT", options);
        MS_Conn.Connect();
        ManagementPath MP = new ManagementPath("Win32_Process");//要先知道命令的大類
        ManagementClass processClass = new ManagementClass(MS_Conn,MP, null);
        processClass.Scope.Options.EnablePrivileges = true; 
        ManagementBaseObject mbo = processClass.GetMethodParameters("Create");//方法
        mbo["CommandLine"] = string.Format("cmd.exe /c {0}",path);//指令
        ManagementBaseObject result = processClass.InvokeMethod("Create", mbo,null);//處發
        
        if ((uint)result.Properties["ReturnValue"].Value == 0)
        {  // 如果返回0代表成功
            Response.Write("遠端操作成功!!");
        }
        else
        {
            Response.Write("遠端操作失敗!!");
        }
    }
update.bat的內容:
md c:\AAA
copy "\\192.168.11.2\data\1.txt" "c:\data\2.txt" 
md c:\BBB
shutdown -s
 ....這個批次檔裡頭的指令,都可以直接以WMI物件去執行...
....這個批次檔裡頭的指令,都可以直接以WMI物件去執行...WMI功能雖強,但若remote執行,則許多怪問題會出現,例如某些需local或Domain Admin的操作,因此若能改成本地執行,例如:在遠端電腦執行EXE,再由EXE操作本地WMI,則多OK。