“Грабли” Microsoft или “засада” с командой SUBST в новейших Windows 10 и 2016
Всегда нравилось использовать команду SUBST. Удобно это. И для старых программ, и для, например, “укорачивания” пути к сетевым папкам. Частенько пользователи создают пути такой длины, что только диву даешься.
И никак не ожидал, что тут рассыпаны “грабли” Microsoft.
В чем же это выражается. А в том, что теперь есть два типа сессий с которыми можно работать: standard и, так называемая, elevated (когда программа запускается от имени Администратора)
И вот что происходит. В standard сессии создаем (замещаем) папку буквой диска
Из стандартной командной строки – «новый» диск виден
И в Windows Explorer тоже виден
А теперь запустем elevated command promt и Oops! А нет диска Т, как будто ничего не делали
Может сделать наоборот? Выполнить SUBST в elevated сессии?
Запускаем Windows Explorer и … нет такой буквы
Запускаем стандартную командную строку … снова нет
Ничего не напоминает? А мне напомнило. Точно также «не видны» сетевые шары подключенные командой NET USE как было описано в статье https://winitpro.ru/index.php/2015/03/11/nework-disk-access-from-elevated-programs/
И там было решение. Здесь, по идее, тоже должно быть, подумалось мне. Далее была пара часов и экспериментов и вот что получается. Выхода стандартного нет. Рекомендаций нет. Но «костыли» забить можно.
Метод 1: «Метод» Microsoft
«Метод» Microsoft – это я так это решение назвал. Оно заключается в предложении … Отключите UAC!
Ну совсем костыль, на безопасность наплевали, но зато работает 🙂
- Отключите UAC через Control Panel
Измените значение ключа с «1» на «0»
Метод 2: Подсмотрено в сети
Один из вариантов, до которых додумались в сети. Запустить SUBST два раза. В простой и elevated сессиях
Метод 3: «Голь на выдумки хитра»
Этот метод мой собственный Напоминает старый анекдот «А у нас гланды удаляют. Автогеном. Через задний проход»
В чем суть. Используется не SUBST, а NET USE
- Расшариваем на этом же компьютере нужную папку
- Подключаем ее как сетевой диск командой NET USE
- Не забываем добавить в реестр ключик из статьи https://winitpro.ru/index.php/2015/03/11/nework-disk-access-from-elevated-programs/
- Наслаждаемся жизнь.
Метод 4: Подсмотрено в сети (itpro)
Вбиваем «костыль» в реестр
reg add «HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices» /v Z: /t REG_SZ /d «\??\C:\DirectoryName» /f
- Z: – нужная вам буква диска
- C:\DirectoryName –необходимая вам пака, соответсвенно
- Данная команда проходит только из elevated (запущенной от имени Администратора) сессии
- Не забываем перегрузиться.
Проверено — работает. Диск появляется в системе, как после команды SUBST, с той лишь разницей, что его видно из всех сессий
И из Windows Explorer
На каком из методов остановиться – решать вам.
Создание виртуального диска из папки с помощью команды Subst
Создание виртуального диска из локальной папки
Чтобы добраться до какой-либо папки, нам приходится немало накликать в Проводнике, если, конечно, Вы не вынесли ярлык папки на Рабочий стол. Ярлык на рабочий стол это, конечно, хорошо. Но и забивать рабочий стол ярлыками тоже не красиво, тем более что более пустой рабочий стол неплохо ускоряет работу компьютера. А кто-то может вообще не любит ярлыки. В таком случае, чтобы облегчить доступ к локальной папке, можно папку превратить в виртуальный логический диск. Другими словами, Ваша искомая папка будет находится в окне Мой компьютер вместе с другими локальными дисками. И тогда Вам придется сделать всего лишь два клика, чтобы добраться до нужной папки. Наша статья полностью посвящена тому, как можно создать виртуальный диск из любой папки на Вашем компьютере.
Создаем виртуальный диск
Перед тем как создать новый виртуальный диск(не нужно путать с виртуальными жесткими дисками) нам необходимо получить свободную букву, которая не используется другими дисками. Для этого откройте окно Мой компьютер и используя свои знания английского алфавита выберите букву, которая не используется на данный момент. Допустим, это буква Y. После этого необходимо открыть окно командной строки Windows и запустить на выполнение команду следующего типа:
[code]subst Y: c:\dir\seconddir\[/code]Единственное, что необходимо подстроить под свои нужды — путь папки, которую мы превращаем в виртуальный логический диск. После выполнения данной команды можете проверить количество логических дисков в окне Мой компьютер. Уверен, их там прибавилось. Вот таким простым образом можно создать виртуальный диск из папки.
Оборотная сторона медали виртуального диска
Оборотная сторона медали состоит в том, что созданный виртуальный логический диск просуществует ровно столько, сколько Вы не будете выключать свой компьютер. После перезагрузки данный логический диск исчезнет. Поэтому, выполнение приведенной команды должно происходит при каждой загрузке. Чтобы осуществить это, Вы можете создать .bat-файл на основе приведенного выше кода. Создание такого bat-файла подробно рассматривалось в статье Как создать вирус, предлагаю ознакомиться. После этого, созданный .bat-файл нужно скопировать в папку Автозагрузка, которая находится по адресу
Если всё сделать правильно, то при каждой новой загрузке операционная система будет выполнять данную команду, результат которой мы уже рассмотрели.
Кроме приведенного способа, который будет работать всегда, могу предложить еще один способ, который может не работать в случае с сетевыми папками. В данной случае, чтобы созданный виртуальный диск из папки появлялся на своем месте при каждой загрузке компьютера, необходимо открыть Редактор реестра(используйте команды быстрого запуска) и перейти в раздел
[code]HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices[/code]В данном узле необходимо создать строковый(String Value) параметр и задать ему имя в виде буквы виртуального диска. Для нашего примера необходимо будет указать название Y:
для созданного параметр. Значение этого параметра должно быть следующего вида:
Вот такими несложными действиями можно создать виртуальный диск из папки на компьютере.
Список команд Windows ( Windows CMD ) с описанием и примерами.
Командная строка Windows является стандартным средством диагностики, настройки и управления компонентами операционной системы и прикладным программным обеспечением. В отличие от графической среды пользователя, командная строка является более гибким и универсальным инструментом, позволяющим решать многие задачи администрирования системы стандартными средствами Windows без установки дополнительного программного обеспечения.
Способы запуска командной строки
Командная строка Windows может быть запущена как и любое другое стандартное приложение — через Главное меню Windows, с использованием диалога Выполнить (комбинации клавиш Win+R, Win+X), а также с использованием открытия Проводником ( по двойному щелчку ) ярлыка или исполняемого файла C:\WINDOWS\System32\cmd.exe . В результате запуска откроется окно командной строки с приглашением к вводу команд . Приложение cmd.exe часто называют командным процессором или интерпретатором команд, а его основное окно – консолью Windows. Команды консоли представляют собой строку символов, которая может содержать встроенные команды командного процессора (HELP, ECHO и т.п.), имена и пути исполняемых или командных файлов (C:\Windows\System32\ping.exe), а также дополнительные параметры, если они требуются для выполнения конкретной команды (ping.exe yandex.ru). Результаты выполнения команд отображаются в окне консоли Windows и нередко зависят от наличия достаточных прав у текущего пользователя. Для выполнения команд в контексте учетной записи Администратора в операционных системах Windows Vista — Windows 10 необходимо использовать режим Запуск от имени Администратора .
Ссылки на материалы по настройке командной строки и приемах работы с ней размещены в конце страницы.
Справочник по командам CMD Windows
Данная страница представляет собой самый полный документ в русскоязычном сегменте Интернет, содержащий список команд командной строки всех версий Windows. Наименования подавляющего большинства команд являются ссылками и ведут на страницы с подробным их описанием и примерами использования. В разных версиях ОС семейства Windows набор поддерживаемых команд, их параметры командной строки, синтаксис и отображение результатов выполнения могут различаться. Одна и та же утилита командной строки может присутствовать в стандартной поставке одной версии Windows, но отсутствовать в другой, или входить в состав дополнительных средств, как например, Resource Kit или Software Development Kit.
На данной странице представлено описание не только внутренних команд CMD, но и стандартных утилит командной строки, входящих в состав конкретных версии операционной системы (ОС) семейства Windows. Некоторые из приведенных команд устарели, и больше не поддерживаются разработчиком или не имеют смысла в современных операционных системах, что отмечается в описании команды.
Список команд постоянно обновляется и включает в себя все новейшие команды, добавляемые в стандартную поставку при выходе новых версий или обновлений ОС Windows 10.
APPEND — позволяет программам открывать файлы данных из указанных папок так, как будто они находятся в текущей папке.
ARP — просмотр и изменение таблиц ARP (Address Resolution Protocol)
ASSOC — просмотр или изменение сопоставлений расширений файлов приложениям
AT — управление планировщиком задач
ATTRIB — изменение атрибутов файлов
Auditpol — управление политиками аудита.
BASH — командная оболочка BASH в подсистеме Windows для Linux (WSL).
BCDBOOT — копирование в системный раздел файлов загрузки и создание нового хранилища конфигурации загрузки (BCD)
BCDEDIT — редактирование хранилища данных конфигурации загрузки (BCD)
BOOTCFG — управление параметрами меню загрузки и восстановления Windows 10
BOOTIM — редактирование параметров загрузки в файле boot.ini
BOOTREC — восстановление загрузочных записей и конфигурации загрузки Windows
BOOTSECT — редактирование загрузочных секторов для обеспечения загрузки NTLDR или BOOTMGR
BREAK — включить или выключить обработку комбинации клавиш CTRL+C в DOS
CACLS — редактирование списков управления доступом к файлам (ACL — Access Control List)
CALL — вызов из командного файла подпрограмм или других командных файлов
CD — смена каталога (Change Directory)
CHANGE — изменение настроек сервера терминалов. Контексты — LOGON, PORT, USER
CHGLOGON — изменение настроек сервера терминалов, аналогично CHANGE LOGON
CHGPORT — изменение настроек сервера терминалов, аналогично CHANGE PORT
CHGUSR — изменение настроек сервера терминалов, аналогично CHANGE USER
CHCP — просмотр или изменение текущей кодовой страницы
CHKDSK — проверка диска (Check Disk)
CheckNetIsolatin — управление доступом приложений к интерфейсу замыкания на себя (localhost)
CHKNTFS — проверка признака ошибки файловой системы и управление проверкой диска при загрузке Windows
CHOICE — реализация пользовательского ввода в командном файле
CIPHER — отображение или изменение шифрования файлов на томах NTFS
CLEARMGR — управление очисткой дисков Windows
CLIP — перенаправление вывода утилит командной строки в буфер обмена Windows
CLS — очистка экрана в командной строке
CMD — запуск новой копии интерпретатора командной строки
CMDKEY — создание, отображение, удаление и сохранение имен пользователей и паролей
COLOR — изменение цвета текста и фона в окне CMD
COMMAND — запуск новой копии интерпретатора командной строки MS-DOS
COMP — сравнение содержимого файлов
COMPACT — управление сжатием и распаковкой файлов в разделах NTFS
CONVERT — преобразование файловой системы из FAT в NTFS
COPY — копирование файлов и каталогов
Cscript — сервер сценариев Windows с консольным интерфейсом
DATE — отображение или изменение даты
DEBUG — запуск отладчика DOS-Windows XP
DEL — удаление одного или нескольких файлов
DevCon — управление устройствами в командной строке
DIANTZ — тоже что и MAKECAB, создание архивов .cab.
DIR — отображение списка файлов и каталогов
DISKCOMP — сравнение содержимого двух гибких дисков
DISKCOPY — копирование содержимого одного гибкого диска на другой
DISKPART — управление разделами и дисками из командной строки
DISM — управление компонентами образрв WIM.
DISPDIAG — вывод дампов с диагностической информацией о графической подсистеме.
DJOIN — автономное присоединение компьютера к домену.
DOSKEY — редактирование и повторный вызов команд Windows, создание макросов DOSKey
DRIVERQUERY — отобразить информацию об установленных драйверах.
DxDiag — средство диагностики DirectX.
ECHO — вывод текста на экран консоли
EDIT — запуск текстового редактора
ENDLOCAL — конец локальных изменений переменных окружения в командном файле
ERASE — аналогично команде DEL — удаление файлов
ESENTUTL — обслуживание баз данных Extensible Storage Engine для Windows
EVENTCREATE — запись сообщения в журнал событий Windows
EXIT — выход из процедуры или командного файла
EXPAND — распаковка сжатых файлов CAB-файлов.
EXTRACT — извлечение содержимого, распаковка CAB-файлов в Windows (EXTRAC32)
FC — сравнение содержимого файлов
FIND — поиск строки символов в файле
FINDSTR — поиск строк в файлах с использованием регулярных выражений
FOR — организация циклической обработки результатов выполнения других команд, списков, и строк в текстовых файлах
FORFILES — выполнение указанной команды для каждого файла из заданной группы
FSUTIL — управление файловой системой
FTYPE — просмотр и изменение расширений файлов и сопоставленных им приложений
GETMAC — отображение физического адреса сетевого адаптера (MAC-адреса)
GOTO — команда безусловного перехода в командном файле
GPRESULT — отображение результирующей политики (RSoP)
GPUPDATE — обновление групповых политик.
HELP — вызов справки командной строки Windows
HOSTNAME — отображение имени компьютера
iCACLS — управление списками доступа (ACL)
IF — оператор условного выполнения команд в пакетном файле
IPCONFIG просмотр и управление конфигурацией протокола IP
LABEL — редактирование меток тома дисков
LOGMAN — управление монитором оценки производительности системы
LOGOFF — завершение сеанса пользователя
MAKECAB — создание сжатых файлов формата CAB
MBR2GPT — преобразование дисков MBR в GPT
MEM — вывод справки об использовании памяти в MS-DOS
MD — создание нового каталога
MKLINK — создание символической ссылки на файл или каталог
MODE — конфигурирование системных устройств в среде CMD
MORE — постраничный вывод в консоли
MOUNTVOL — управление точками монтирования томов
MOVE — перемещение файлов и каталогов
MOVEFILE — перемещение или удаление занятых файлов при следующей перезагрузке
MSG — отправка сообщений пользователям.
MSTSC — подключение к удаленному рабочему столу.
NBTSTAT — просмотр статистических данных NETBIOS через TCP/IP (NetBT)
NET — управление ресурсами локальной сети
NETCFG — отображение и изменение конфигурации компонентов сети
NETSH — командная сетевая оболочка (Network Shell)
NETSTAT — отображение статистики сетевых соединений
NSLOOKUP — просмотр данных DNS в командной строке
OPENFILES — управление открытыми по сети или локально файлами
PATH — отображение или изменение путей поиска исполняемых файлов
PATHPING — трассировка маршрута с возможностью оценки качества участков трассы
PAUSE — пауза при выполнении командного файла
PING утилита проверки доступности узла
PKGMGR — управление программными пакетами Windows
PNPUTIL — конфигурирование драйверов устройств PnP
POPD — возврат в каталог, ранее запомненный с помощью команды PUSHD
POWERCFG — настройка параметров системы электропитания Windows
PRINT — печать текстового файла
PROMPT — изменение строки приглашения в консоли
PUSHD — сохранить текущий путь каталога и перейти в указанный
PSR — записать действия пользователя ( P roblem S teps R ecorder)
QPROCESS — отобразить состояние процессов
QUERY — опросить состояние процессов и сеансов пользователей
QUSER — отобразить информацию о сеансах пользователей
RASDIAL — управление сеансами удаленного доступа
RASPHONE — управление сеансами удаленного доступа
REAGENTC — адимнистрирование стреды восстановления Windows
RECOVER — восстановление файлов на поврежденном диске
REG — утилита командной строки для работы с реестром Windows
REGEDIT — импорт и экспорт данных реестра Windows
REGSVR32 — регистрация или отмена регистрации DLL
REGINI — управление доступом к разделам реестра
REM — комментарии в командных файлах
REPLACE — замена или добавление файлов в катологах
RESET — сброс сеанса удаленного рабочего стола (RDP сессии)
ROBOCOPY — утилита резервного копирования и синхронизации каталогов (Robust File and Folder Copy)
ROUTE — управление таблицей маршрутизации
RUNAS — запуск приложения от имени другого пользователя
RUNDLL32 — запуск DLL в качестве приложения
SC — управление службами Windows (Service Control)
SCHTASKS — управление планировщиком задач
SCLIST — отображение списка системных служб
SET — отображение и изменение переменных среды окружения Windows
SETLOCAL — установка локальных переменных в командном файле
SETX — утилита для создания системных переменных
SFC — проверка и восстановление системных файлов Windows
SHARE — просмотр, создание и удаление разделяемых в локальной сети ресурсов
SHIFT сдвиг входных параметров для командного файла
SHUTDOWN — выключение или перезагрузка компьютера
SLEEP — задержка по времени в пакетном файле
SLMGR — управление лицензированием программного обеспечения Windows
SORT — сортировка строк в текстовом файле
START — запуск приложения или командного файла
STORDIAG — диагностика системы хранения данных в Windows 10
SUBST — назначение (отмена назначения) каталогу буквы диска
SxSTrace — диагностическое средство трассировки компонент системы
SYSTEMINFO — отображение информации о системе
TAKEOWN — изменение владельца файла или каталога
TAR — архивирование данных архиватором tar в Windows 10
TASKKILL — завершение процессов на локальной или удаленной системе.
TASKLIST — отображение списка выполняющихся приложений и служб Windows
TIME — отображение и установка системного времени
TIMEOUT — задержка в пакетных файлах
TITLE — изменение заголовка окна CMD.EXE
TRACERT — трассировка маршрута к удаленному узлу
TREE — отображение структуры каталога в графическом виде
TSCON — подключение к сессии удаленного рабочего стола (RDP).
TSDISCON — отключение сессии удаленного рабочего стола (RDP).
TSKILL — завершение процессов, адаптированное для среды сервера терминалов (RDP).
TYPE — вывод на экран содержимого текстового файла
TypePerf — вывод сведений о производительности на экран или в журнал
TZUTIL — управление часовыми поясами в среде Windows
VER — отображение версии операционной системы
VERIFY — управление режимом проверки записываемых файлов
VOL — вывод данных метки тома
VSSADMIN — администрирование службы теневого копирования томов.
W32TM — управление службой времени Windows
WAITFOR — организация обмена сигналами между компьютерами
WBADMIN — управление резервным копированием и восстановлением в Windows
WEVTUTIL — управление событиями в Windows
WHERE — определение места расположения файлов
WHOAMI — вывод имени текущего пользователя
WINDIFF — сравнение содержимого файлов
WinMgmt — обслуживание инструментария управления Windows (WMI)
WINRM — удаленное управление Windows из командной строки
WINRS — удаленная командная строка (Remote Shell)
WINSAT — средство проверки производительности Windows
WMIC — выполнение команды WMI в командной строке
WSCollect — получить CAB-файл с копиями журналов Windows 10 на рабочем столе
Wscript — сервер сценариев Windows с графическим интерфейсом
WSL — выполнение команд Linux и конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10
WSLconfig — конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10
XCOPY — копирование файлов и папок
Прочие материалы по работе с командной строкой Windows:
Настройка командной строки Windows. — Как изменить цвет фона, цвет символов, размер и расположение окна командной строки. Копирование и вставка текста в окне консоли. Как настроить дополнение имен файлов и каталогов при наборе в командной строке. Использование функциональных клавиш.
Работа с командной строкой Windows — Основные приемы, используемые при работе в командной строке Windows.
Командные файлы Windows — Общие принципы применения переменных среды в командных файлах. Обработка параметров командной строки. Использование меток, переходов и циклическая обработка данных. Практические примеры решения задач администрирования системы.
Запуск приложений от имени администратора без запроса UAC — Как запустить из командного файла приложение или командный файл без запроса системы контроля учетных записей UAC
Работа с сетью в командной строке. — подробное описание команд CMD Windows для работы с сетью и примеры их использования.
Подсистема Linux в Windows 10 — Использование командной строки Linux в Windows 10.
Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой «Поделиться»