Сегодня опишем очень интересный вариант доступа к файлам компьютера в сети, а также как это использовать для управления компьютером через CMD с включенным обнаружением по сети. Итак, приступим:
В Windows, в моем видении, есть огромная дырка доступа к ресурсам ПК, а именно такое понятие как «Управление административными шарами (Admin$, IPC$, C$, D$) в Windows XP/7/8/10/11». Заполучив логин и пароль администратора ПК, даже удаленно и не подключаясь к нему, например по RDP, мы можем получить доступ к данным с любого ПК в сети через CMD или PowerShell.
Есть правда одно ограничение — получить доступ к административным шарам могут только члены локальной группы администраторов компьютера (и группы Backup Operators) при условии, что у вас включен SMB протокол, общий доступ (Turn on file and printer sharing) и доступ по 445 порту TCP не блокируется Windows Defender Firewall. К слову пользователь с правами админа по умолчанию все это имеет.
Приступим к нашей основной задаче — перезагрузка/выключение ПК
- Нам на локальной машине необходимо запустить CMD от прав администратора и авторизоваться на удаленном ПК в сети под администратором. Для этого будем использовать следующую команду:
net use \\SERVERNAME\admin$ password /USER:username
Расшифровка команды:
net use — эта команда используется для подключение и отключение общих ресурсов и вывод сведений о подключениях. Для своей работы она использует интерфейс NetBios. Для обращения нужно использовать имена NetBios. Более подробно изучить возможности данной команды можно набрав в CMD net use help.
\\SERVERNAME\admin$ — здесь SERVERNAME это IP адрес удаленного компьютера, например, \\192.168.1.10 , а admin$ это наша административная шара, можно вместо нее использовать C$
password — здесь указываем пароль администратора удаленного ПК под которым будем авторизовываться
/USER:username — здесь меняем только username на имя администратора удаленного ПК для которого ранее указывали пароль.
- Если на этом этапе команду удалось выполнить корректно и получить положительное уведомление ее исполнения, можем приступить к самой перезагрузке/выключению удаленного ПК. Для этого можно использовать ранее описанную команду перезагрузки/выключения ПК через CMD.
Перезагрузка ПК с IP адресом \\192.168.1.10 по сети будет выглядеть так:
shutdown -r -f -t 0 -m \\192.168.1.10
Что означают ключи, указанные в команде:
-r — компьютер будет перезагружен
-f — принудительное завершение открытых программ.
-t 0 — время ожидания в секундах, 0 — немедленно (либо указываете необходимое значение).
-m — удалённый компьютер по сети.
\\192.168.1.10 — IP адрес удаленного ПК, который будем перезагружать.
Выключение ПК с IP адресом \\192.168.1.10 по сети будет выглядеть так:
shutdown -s -f -t 0 -m \\192.168.1.10
В данной команде только одно изменение — использование ключа -s — который передаст удаленному ПК команду выключения.
Ну и, конечно, все это можно было использовать одной строчкой:
Перезагрузка ПК:
net use \\192.168.1.10\admin$ password /USER:username & shutdown -r -f -t 0 -m \\192.168.1.10
Выключение ПК:
net use \\192.168.1.10\admin$ password /USER:username & shutdown -s -f -t 0 -m \\192.168.1.10
Отличная статья, мне очень помогла! Спасибо автору!
пароли нужно брать в одинарные кавычки
Спасибо! Верное замечание! Если в пароле есть пробел, его нужно взять в кавычки.
А если пароля нет совсем?
Эти фишки описаны для системных администраторов, которые работают в закрытых сетях. Теоретически, если комп расшаривает общие папки по сети без пароля от имени администратора ПК, то опустив момент ввода пароля, остальные команды должны отрабатывать также. Проверить пока не на чем, появится возможность — дополню.