Update Program.cs
Signed-off-by: Lev Rusanov <30170278+JDM170@users.noreply.github.com>
This commit is contained in:
145
Program.cs
145
Program.cs
@@ -30,6 +30,18 @@ namespace domain_utility
|
||||
{ "^[rR]\\d*[-]\\d+[a-zA-Z]+\\d+$", "" } // R54-630300THE01
|
||||
};
|
||||
|
||||
private static string InputRemoteComputer(string str, Action callback)
|
||||
{
|
||||
Console.Clear();
|
||||
Console.WriteLine(str);
|
||||
Console.Write("> ");
|
||||
string remote = Console.ReadLine().Trim();
|
||||
if (remote == string.Empty || remote.Length == 0)
|
||||
InputRemoteComputer(str, callback);
|
||||
Console.WriteLine();
|
||||
return remote;
|
||||
}
|
||||
|
||||
private static void BackToMenu(Action callback, bool noMessage = false)
|
||||
{
|
||||
if (noMessage == false)
|
||||
@@ -46,6 +58,19 @@ namespace domain_utility
|
||||
}
|
||||
}
|
||||
|
||||
private static string СheckComputerName(string pcName)
|
||||
{
|
||||
for (int i = 0; i < computerNameRegex.GetLength(0); i++)
|
||||
if (Regex.Match(pcName, computerNameRegex[i, 0]).Success)
|
||||
return $"{computerNameRegex[i, 1]}{pcName}".ToUpper();
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
private static bool IsStringContainIp(string ip)
|
||||
{
|
||||
return Regex.Match(ip, @"^(\d+[.]\d+[.]\d+[.]\d+)$").Success;
|
||||
}
|
||||
|
||||
private static string PingHost(string host)
|
||||
{
|
||||
string returnMessage = string.Empty;
|
||||
@@ -94,19 +119,6 @@ namespace domain_utility
|
||||
return returnMessage;
|
||||
}
|
||||
|
||||
private static string СheckComputerName(string pcName)
|
||||
{
|
||||
for (int i = 0; i < computerNameRegex.GetLength(0); i++)
|
||||
if (Regex.Match(pcName, computerNameRegex[i, 0]).Success)
|
||||
return $"{computerNameRegex[i, 1]}{pcName}";
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
private static bool IsStringContainIp(string ip)
|
||||
{
|
||||
return Regex.Match(ip, @"^(\d+[.]\d+[.]\d+[.]\d+)$").Success;
|
||||
}
|
||||
|
||||
public static void ResetAdminPassword()
|
||||
{
|
||||
string machineNameAndUser = WindowsIdentity.GetCurrent().Name.ToString();
|
||||
@@ -124,16 +136,8 @@ namespace domain_utility
|
||||
|
||||
private static void ShowDomainUserInfo()
|
||||
{
|
||||
Console.Clear();
|
||||
Console.Write("\nВведите имя пользователя (пр. 'lev.rusanov'): ");
|
||||
string username = Console.ReadLine().Trim();
|
||||
if (username == string.Empty || username.Length == 0)
|
||||
{
|
||||
ShowDomainUserInfo();
|
||||
return;
|
||||
}
|
||||
Console.WriteLine();
|
||||
|
||||
string username = InputRemoteComputer("\nВведите имя пользователя (пр. 'lev.rusanov'): ", ShowDomainUserInfo);
|
||||
|
||||
username = $"user {username} /domain";
|
||||
|
||||
ProcessStartInfo procStartInfo = new ProcessStartInfo("net", username)
|
||||
@@ -184,15 +188,8 @@ namespace domain_utility
|
||||
|
||||
private static void ShowComputerBootupTime()
|
||||
{
|
||||
Console.Clear();
|
||||
Console.WriteLine("\nВведите IP адрес или имя компьютера (пр. 10.234.16.129, 'IT04', '630300IT04', 'R54-630300IT04'): ");
|
||||
string remote = Console.ReadLine().Trim();
|
||||
if (remote == string.Empty || remote.Length == 0)
|
||||
{
|
||||
ShowComputerBootupTime();
|
||||
return;
|
||||
}
|
||||
Console.WriteLine();
|
||||
string remote = InputRemoteComputer("\nВведите IP адрес или имя компьютера (пр. 10.234.16.129, 'IT04', '630300IT04', 'R54-630300IT04'): ",
|
||||
ShowComputerBootupTime);
|
||||
|
||||
if (!IsStringContainIp(remote))
|
||||
{
|
||||
@@ -227,19 +224,13 @@ namespace domain_utility
|
||||
|
||||
private static void StartPing()
|
||||
{
|
||||
Console.Clear();
|
||||
Console.WriteLine("\nВведите IP адрес или имя компьютера (пр. 10.234.16.129, 'IT04', '630300IT04', 'R54-630300IT04'): ");
|
||||
string host = Console.ReadLine().Trim();
|
||||
if (host == string.Empty || host.Length == 0)
|
||||
{
|
||||
StartPing();
|
||||
return;
|
||||
}
|
||||
string remote = InputRemoteComputer("\nВведите IP адрес или имя компьютера (пр. 10.234.16.129, 'IT04', '630300IT04', 'R54-630300IT04'): ",
|
||||
StartPing);
|
||||
|
||||
if (!IsStringContainIp(host))
|
||||
if (!IsStringContainIp(remote))
|
||||
{
|
||||
host = СheckComputerName(host);
|
||||
if (host == string.Empty)
|
||||
remote = СheckComputerName(remote);
|
||||
if (remote == string.Empty)
|
||||
{
|
||||
Console.WriteLine("Имя компьютера или IP-адрес не распознаны! Попробуйте еще раз.");
|
||||
BackToMenu(StartPing);
|
||||
@@ -247,13 +238,12 @@ namespace domain_utility
|
||||
}
|
||||
}
|
||||
|
||||
Console.WriteLine();
|
||||
if (Regex.Match(host, @"^([rR]\d*[-]\d+[a-zA-Z]+\d+)$").Success)
|
||||
if (Regex.Match(remote, @"^([rR]\d*[-]\d+[a-zA-Z]+\d+)$").Success)
|
||||
{
|
||||
try
|
||||
{
|
||||
IPAddress ip = Dns.GetHostEntry(host).AddressList.First(addr => addr.AddressFamily == AddressFamily.InterNetwork);
|
||||
Console.WriteLine("Обмен пакетами с {0} [{1}] по с 32 байтами данных:", host, ip);
|
||||
IPAddress ip = Dns.GetHostEntry(remote).AddressList.First(addr => addr.AddressFamily == AddressFamily.InterNetwork);
|
||||
Console.WriteLine("Обмен пакетами с {0} [{1}] по с 32 байтами данных:", remote, ip);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
@@ -263,11 +253,11 @@ namespace domain_utility
|
||||
}
|
||||
}
|
||||
else
|
||||
Console.WriteLine("Обмен пакетами с {0} по с 32 байтами данных:", host);
|
||||
Console.WriteLine("Обмен пакетами с {0} по с 32 байтами данных:", remote);
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
Console.WriteLine(PingHost(host));
|
||||
Console.WriteLine(PingHost(remote));
|
||||
Thread.Sleep(1000);
|
||||
}
|
||||
|
||||
@@ -276,14 +266,8 @@ namespace domain_utility
|
||||
|
||||
private static void OpenComputerCups()
|
||||
{
|
||||
Console.Clear();
|
||||
Console.WriteLine("\nВведите IP адрес или имя компьютера (пр. 10.234.16.129, 'IT04', '630300IT04', 'R54-630300IT04'): ");
|
||||
string remote = Console.ReadLine().Trim();
|
||||
if (remote == string.Empty || remote.Length == 0)
|
||||
{
|
||||
OpenComputerCups();
|
||||
return;
|
||||
}
|
||||
string remote = InputRemoteComputer("\nВведите IP адрес или имя компьютера (пр. 10.234.16.129, 'IT04', '630300IT04', 'R54-630300IT04'): ",
|
||||
OpenComputerCups);
|
||||
|
||||
if (!IsStringContainIp(remote))
|
||||
{
|
||||
@@ -296,20 +280,50 @@ namespace domain_utility
|
||||
}
|
||||
}
|
||||
|
||||
Process.Start($"http://{remote.ToUpper()}:631/printers");
|
||||
Process.Start($"http://{remote}:631/printers");
|
||||
|
||||
BackToMenu(OpenComputerCups);
|
||||
}
|
||||
|
||||
private static void StartRDPConnection()
|
||||
{
|
||||
string remote = InputRemoteComputer("\nВведите IP адрес или имя компьютера (пр. 10.234.16.129, 'IT04', '630300IT04', 'R54-630300IT04'): ",
|
||||
StartRDPConnection);
|
||||
|
||||
if (!IsStringContainIp(remote))
|
||||
{
|
||||
remote = СheckComputerName(remote);
|
||||
if (remote == string.Empty)
|
||||
{
|
||||
Console.WriteLine("Имя компьютера или IP-адрес не распознаны! Попробуйте еще раз.");
|
||||
BackToMenu(StartRDPConnection);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
remote = $"/v:{remote} /f";
|
||||
Process proc = new Process {
|
||||
StartInfo = new ProcessStartInfo("mstsc", remote)
|
||||
};
|
||||
proc.Start();
|
||||
|
||||
BackToMenu(StartRDPConnection);
|
||||
}
|
||||
|
||||
private static void Menu()
|
||||
{
|
||||
Console.Clear();
|
||||
Console.WriteLine("Выберите действие:\n" +
|
||||
"1 - посмотреть информацию о пользователе\n" +
|
||||
"2 - посмотреть дату последней загрузки компьютера (только Windows)\n" +
|
||||
"3 - ping компьютера\n" +
|
||||
//"4 - сброс пароля локального администратора (только Windows)\n" +
|
||||
"4 - открыть CUPS выбранного компьютера");
|
||||
string[] menuList = {
|
||||
"Выберите действие:",
|
||||
"1 - посмотреть информацию о пользователе (только Windows)",
|
||||
"2 - посмотреть дату последней загрузки компьютера (только Windows)",
|
||||
"3 - ping компьютера",
|
||||
//"4 - сброс пароля локального администратора (только Windows)",
|
||||
"4 - открыть CUPS выбранного компьютера (только Linux)",
|
||||
"5 - удаленно подключиться к компьютеру (только Windows -> Windows, Windows -> Linux)"
|
||||
};
|
||||
for (int i = 0; i < menuList.Length; i++)
|
||||
Console.WriteLine(menuList[i]);
|
||||
int choice;
|
||||
while (!int.TryParse(Console.ReadLine(), out choice))
|
||||
Console.WriteLine("Введите цифру!");
|
||||
@@ -319,7 +333,8 @@ namespace domain_utility
|
||||
case 2: ShowComputerBootupTime(); break;
|
||||
case 3: StartPing(); break;
|
||||
case 4: OpenComputerCups(); break;
|
||||
case 564: ResetAdminPassword(); break;
|
||||
case 5: StartRDPConnection(); break;
|
||||
case 51422415: ResetAdminPassword(); break;
|
||||
default:
|
||||
{
|
||||
Console.WriteLine("Неправильный выбор!");
|
||||
|
||||
Reference in New Issue
Block a user