各位前輩您們好,最近學習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功能雖強,但若remote執行,則許多怪問題會出現,例如某些需local或Domain Admin的操作,因此若能改成本地執行,例如:在遠端電腦執行EXE,再由EXE操作本地WMI,則多OK。