[英]Execute exe on remote machine
我正在嘗試在遠程計算機上執行notepad.exe,但現在無法正常工作。 我想念什么?
var ui = new ImpersonateUser();
//the process to restart
const string processName = "notepad.exe";
var serverName = "serverName";
try
{
//Use adbadmin for access
ui.Impersonate(_domain, _userName, _pass);
//Start the process
ProcessStartInfo info = new ProcessStartInfo("C:\\PsTools");
info.FileName = @"C:\PsTools\psexec.exe";
info.Arguments = @"""\\" + serverName + @"C:\WINDOWS\notepad.exe""";
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
Process p = Process.Start(info);
lblStatusResponse.Text = "Service " + processName + " was restarted correctly.";
}
catch (Exception ex)
{
lblStatusResponse.Text = ex.ToString();
}
finally
{
ui.Undo();
}
這也不例外,但是我肯定會丟失一些東西。
答案是來自您的答復的組合。 但是整個正確的解決方案是:
ProcessStartInfo info = new ProcessStartInfo("C:\\PsTools");
info.FileName = @"C:\PsTools\psexec.exe";
info.Arguments = @"\\" + serverName + @" -i C:\WINDOWS\notepad.exe";
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
Process p = Process.Start(info);
運行交互式程序(例如notepad.exe)並不總是在目標PC上打開可見的窗口。 嘗試在運行代碼的同時在目標PC上打開任務管理器,並查看notepad.exe是否出現在正在運行的進程列表中。
我建議先嘗試從命令行運行psexec,然后再嘗試通過代碼調用它。
psexec \\serverName "notepad.exe"
您可能還需要使用“交互式”標志,以便它可以與目標上的桌面進行交互。
psexec \\serverName "notepad.exe" -i
您的UNC路徑看起來不好。
字符串連接后,它看起來像
"\\serverNameC:\WINDOWS\notepad.exe"
嘗試將其打印出來。 請參閱MSDN上有關UNC的文檔以及此處的一些示例(或有關UNC Path的Google)
如果您只有默認共享,則應為
"\\serverName\C$\WINDOWS\notepad.exe"
或psexec允許您使用其他符號,但是您必須小心使用雙引號
psexec \\serverName"c:\WINDOWS\notepad.exe"
另外,請確保“服務器”服務正在目標計算機上運行。
PsExec在遠程系統上啟動一個可執行文件,並控制該可執行文件進程的輸入和輸出流,以便您可以從本地系統與該可執行文件進行交互。 PsExec通過從其可執行映像中提取名為Psexesvc的嵌入式Windows服務並將其復制到遠程系統的Admin $共享中來實現。 然后,PsExec使用具有遠程接口的Windows服務控制管理器API在遠程系統上啟動Psexesvc服務。
Admin $共享是由“服務器”服務創建和管理的,因此您需要運行ps $才能使psexec正常工作( http://windowsitpro.com/systems-management/psexec )。
只是為了擴展答案的當前版本。 由於操作系統策略,執行psexec
可能存在問題,要啟用遠程控制,您需要修改注冊表:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
您可以檢查以下內容: 遠程UAC LocalAccountTokenFilterPolicy
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.