Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как запустить файл от другого имени


Запуск программы от имени другого пользователя в Windows

Может возникнуть ситуация, когда необходимо запустить какую-нибудь программу от имени другой учетной записи существующей в компьютере. Причин этого может быть множество, например программа требует для работы прав администратора компьютера или любые другие, главное научиться запускать программы от имени другого пользователя компьютера.

Способов добиться этого существует множество, давайте рассмотрим некоторые штатные возможности операционной системы Windows. Проще всего, если требуется запустить программу от имени администратора, достаточно щелкнуть по запускаемому файлу или ярлыку правой кнопкой мыши и выбрать пункт «Запуск от имени администратора». Ввести пароль и нажать кнопку «OK», программа запуститься от имени администратора.

Чтобы запустить программу от имени другого пользователя системы, нужно с нажатой клавишей Shift на клавиатуре щелкнуть правой кнопкой мыши на нужном файле и выбрать в контекстном меню пункт «Запуск от имени другого пользователя», ввести его логин и пароль.

Есть правда пара особенностей, чтобы запустить программу от имени другой учетной записи, она должна иметь пароль. Учетная записи пользователя имеет имя и может быть указано еще полное имя, работать будет только при указании имени.

Бывает, программа запускается только от имени администратора, а вы пользуетесь обычной учетной записью, тогда можно сократить запуск программы на одно действие, достаточно зайти в свойства ярлыка и на вкладке «Совместимость» отметить галочку «Выполнять эту программу от имени администратора». Теперь двойной клик левой кнопкой мыши по этому ярлыку сразу будет требовать ввода пароля администратора.

Команда Runas для запуска программ от имени другого пользователя

Для часто запускаемых программ от имени другого пользователя, неудобно каждый раз нажимать Shift и щелкать правой кнопкой мыши, проще воспользоваться специальной встроенной командой Runas. Для этого создадим ярлык, который будет запускать нужную программу от имени другого пользователя компьютера. Как создать ярлык можно прочитать здесь. В поле «Объект» напишем следующую команду:

runas /user:пользователь программа

где,

пользователь — учетная запись, от имени которой требуется запустить программу, записывается в виде имя_учетной_записи@имя_компьютера или имя_компьютера\имя_учетной_записи, хотя просто имя_учетной_записи тоже работает.

программа — имя исполняемого файла, который мы хотим запустить. Если исполняемый файл находится не в системных переменных окружения, необходимо указывать полный путь до него.

runas /user:Андрей notepad.exe

В случае если имя пользователя или путь программы содержат пробелы, нужно взять их в двойные кавычки по отдельности.

runas /user:"Дмитрий Петров" "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"

Сохраняем ярлык, теперь при его запуске будет появляться черное окно с просьбой ввести пароль. Внимание, при вводе пароля ничего не происходит, просто вводите его и нажимаете клавишу Enter.

Все хорошо работает, но вводить постоянно пароль быстро надоедает. На этот случай, команда Runas имеет специальный ключ /savecred. В случае его использования, пароль вводится только один раз при первом запуске, он сохраняется в недрах Windows и при последующих запусках подставляется автоматически. Вся команда выглядит следующим образом:

runas /savecred /user:Андрей notepad.exe

Внимание! Ключ /savecred не работает в Домашних версиях Windows.

Кажется вот оно счастье, однако есть определенные неудобства. Например, какая-либо программа отказывается запускаться в простой учетной записи. Вы запускаете ее вышеописанным способом, все замечательно. Теперь та же ситуация чуть под другим углом. Вы администратор компьютера, а например у вашего ребенка простая учетная запись и игра отказывается запускать под ним. Давать ему пароль администратора вы не намерены, поэтому вы создаете ярлык, прописываете ключ /savecred, вводите пароль первый раз и довольный потираете руки.

Дальнейшие события зависят от степени продвинутости человека, которому вы сделали такой ярлык. Если пользователь чайник в компьютерах, то можете спать спокойно, в противном случае, в один прекрасный день, он может додуматься поменять в ярлыке путь к исполняемому файлу на другой и сможет запускать другие программы от имени администратора.

Так же он получит доступ ко всем файлам на жестком диске компьютера, даже если доступ к ним запрещен его учетной записи, включая папки «Мои документы» других пользователей компьютера. Согласитесь, довольно серьезная дыра в безопасности компьютера при использовании команды Runas с ключом /savecred.

У команды Runas есть ограничения на запуск некоторых системных программ от имени администратора компьютера, в том числе проводника. В Windows XP это обходится использованием ключа /separate: runas /savecred /user:Андрей "explorer.exe /separate"
В более поздних версия операционной системы Windows он не работает, но можно воспользоваться любым другим файловым менеджером и получить доступ к файлам от имени админа.

Выходом в данном случае будет сделать такие настройки безопасности, чтобы нужная программа запускалась от имени простого пользователя или использовать сторонние программы для запуска от имени администратора.

В случае если эти способы не устраивают, можно попытаться максимально затруднить возможность несанкционированного запуска пользователем других программ от имени другого пользователя компьютера. Для этого требуется выполнить несколько дополнительных действий.

Во-первых, и самое главное, не говорить ему, что программа запускается от имени другого пользователя. Правда он может сам узнать об этом в диспетчере задач.

Во-вторых, сделать запуск с помощью пакетного (batch) файла. Открываете текстовый редактор, например блокнот и пишете там строчку, которую писали в поле «Объект» ярлыка. Сохраняете его с расширение .bat. Теперь при запуске этого пакетного файла, точно так же выполнится команда, написанная в нем. Однако этого не достаточно, так как его содержимое можно посмотреть и изменить в простом текстовом редакторе.

Если в имени пользователя или пути к файлу есть русские буквы, то его нужно сохранить в кодировке DOS 866 или в начало bat файла на отдельной строке необходимо вставить chcp 1251.

В-третьих, сделать bat файл не читаемым, чтобы затруднить пользователю анализ, каким образом запускается программа. Для этого сконвертируем наш bat файл в привычный exe. Можно воспользоваться одной из программ конвертеров, например бесплатной программой «Bat To Exe Converter» или любой другой на ваш вкус. Запускаете программу и в поле «Batch file» указываете ваш bat файл. В поле «Save as» куда и под каким именем сохранить результат. Дополнительно для большей конспирации можно на вкладке «Versioninformations» в поле «Icon file» указать значок для нашего будущего exe-шника в формате ico. Остальные параметры можно не трогать. Когда все будет готово, нажимаете кнопку «Compile» и получаете свой exe файл.

Теперь открывать его в текстовом редакторе бесполезно. Копируете его в папку с запускаемой программой, называете как-нибудь похоже на название программы и делаете на него обычный ярлык на рабочем столе.

В-четвертых, последний штрих, выдающий в нем командный файл, это на секунду появляющееся черное окно на рабочем столе. Избавиться от него совсем простым способом не получится, но можно достаточно просто свести его заметность к минимуму. Достаточно в свойствах ярлыка на вкладке «Ярлык» выбрать пункт «Свернутое в значок», теперь только на панели задач будет появляться на мгновение окно командной строки.

Все, теперь если человек от которого вы хотите скрыть админский пароль является чайником или обычным среднестатистическим пользователем можете спать спокойно. Конечно, грамотный человек сможет узнать содержимое созданного нами exe-шника, но по большому счету это не требуется. Достаточно догадаться, что используется команда runas и просто создать свой ярлык для запуска нужной программы так что, несмотря на все ухищрения это поможет только от начинающего пользователя.

Как удалить сохраненный пароль в команде Runas

Сохранив единожды пароль от учетной записи в команде runas, вы можете в дальнейшем запускать программы, не вводя его снова. Однако вам может потребоваться заблокировать возможность запускать программы от имени другой учетной записи пользователя компьютера с использованием сохраненного пароля в runas.

Чтобы удалить сохраненный пароль, выполните «Пуск» ⇒ «Панель управления» ⇒ «Учетные записи пользователей и семейная безопасность» ⇒ «Диспетчер учетных данных».

В разделе «Учетные данные Windows» (интерактивный вход в систему) удаляете не нужные больше записи из хранилища.

java - Как скопировать файл с другим именем в том же каталоге в Windows

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

Python - загрузить файл с ftp-сервера на другое локальное имя

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант
.

jenkins - Как разрешить обычному пользователю PBS запускать задания под другим именем

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

Именование файлов, путей и пространств имен - приложения Win32

  • 14 минут на чтение

В этой статье

Все файловые системы, поддерживаемые Windows, используют концепцию файлов и каталогов для доступа к данным, хранящимся на диске или устройстве. Разработчики Windows, работающие с API Windows для ввода-вывода файлов и устройств, должны понимать различные правила, соглашения и ограничения имен файлов и каталогов.

Доступ к данным можно получить с дисков, устройств и сетевых ресурсов с помощью API файлового ввода-вывода. Файлы и каталоги, наряду с пространствами имен, являются частью концепции пути, который представляет собой строковое представление того, где получить данные, независимо от того, с диска ли они, устройства или сетевого подключения для конкретной операции.

Некоторые файловые системы, такие как NTFS, поддерживают связанные файлы и каталоги, которые также следуют соглашениям и правилам именования файлов, как и обычный файл или каталог.Дополнительные сведения см. В разделах Жесткие ссылки и переходы, Точки повторной обработки и операции с файлами.

Для получения дополнительной информации см. Следующие подразделы:

Чтобы узнать о настройке Windows 10 для поддержки длинных путей к файлам, см. Ограничение максимальной длины пути.

Имена файлов и каталогов

Все файловые системы следуют одним и тем же общим соглашениям об именах для отдельных файлов: базовое имя файла и дополнительное расширение, разделенные точкой. Однако каждая файловая система, такая как NTFS, CDFS, exFAT, UDFS, FAT и FAT32, может иметь особые и разные правила формирования отдельных компонентов на пути к каталогу или файлу.Обратите внимание, что каталог - это просто файл со специальным атрибутом, обозначающим его как каталог, но в остальном он должен следовать всем тем же правилам именования, что и обычный файл. Поскольку термин каталог просто относится к особому типу файла в том, что касается файловой системы, в некоторых справочных материалах будет использоваться общий термин файл , чтобы охватить как концепции каталогов, так и файлов данных как таковых. По этой причине, если не указано иное, любые правила именования или использования или примеры для файла также должны применяться к каталогу.Термин путь означает один или несколько каталогов, обратную косую черту и, возможно, имя тома. Для получения дополнительной информации см. Раздел «Пути».

Ограничения на количество символов также могут быть разными и могут различаться в зависимости от файловой системы и используемого формата префикса имени пути. Это дополнительно осложняется поддержкой механизмов обратной совместимости. Например, более старая файловая система MS-DOS FAT поддерживает максимум 8 символов для основного имени файла и 3 символа для расширения, всего 12 символов, включая разделитель точек.Обычно это имя файла 8.3 . Файловые системы Windows FAT и NTFS не ограничиваются именами файлов 8.3, потому что они имеют длинных имен файлов, поддерживают , но они по-прежнему поддерживают версию 8.3 длинных имен файлов.

Условные обозначения

Следующие фундаментальные правила позволяют приложениям создавать и обрабатывать допустимые имена для файлов и каталогов независимо от файловой системы:

  • Используйте точку, чтобы отделить базовое имя файла от расширения в имени каталога или файла.

  • Используйте обратную косую черту (\) для разделения компонентов пути . Обратная косая черта отделяет имя файла от пути к нему и одно имя каталога от имени другого каталога в пути. Вы не можете использовать обратную косую черту в имени фактического файла или каталога, потому что это зарезервированный символ, разделяющий имена на компоненты.

  • Используйте обратную косую черту как часть имен томов, например, «C: \» в «C: \ path \ file» или «\\ server \ share» в «\\ server \ share \ path \ file "для имен UNC.Дополнительные сведения об именах UNC см. В разделе «Ограничение максимальной длины пути».

  • Не учитывайте регистр. Например, считайте имена OSCAR, Oscar и oscar одинаковыми, даже если некоторые файловые системы (например, файловая система, совместимая с POSIX) могут рассматривать их как разные. Обратите внимание, что NTFS поддерживает семантику POSIX для чувствительности к регистру, но это не поведение по умолчанию. Для получения дополнительной информации см. CreateFile .

  • Обозначения томов (буквы дисков) также нечувствительны к регистру.Например, «D: \» и «d: \» относятся к одному и тому же тому.

  • Используйте любой символ текущей кодовой страницы для имени, включая символы Юникода и символы из расширенного набора символов (128–255), за исключением следующего:

    • Следующие зарезервированные символы:

      • <(менее)
      • > (больше)
      • : (двоеточие)
      • "(двойная кавычка)
      • / (косая черта)
      • \ (обратная косая черта)
      • | (вертикальный стержень или труба)
      • ? (вопросительный знак)
      • * (звездочка)
    • Целочисленное значение 0, иногда называемое символом ASCII NUL .

    • Символы, целочисленные представления которых находятся в диапазоне от 1 до 31, за исключением альтернативных потоков данных, где эти символы разрешены. Для получения дополнительной информации о файловых потоках см. Файловые потоки.

    • Любой другой символ, запрещенный целевой файловой системой.

  • Используйте точку в качестве каталога , компонент в пути для представления текущего каталога, например «. \ Temp.txt». Для получения дополнительной информации см. Пути.

  • Используйте две последовательные точки (..) в качестве каталога , компонент в пути, представляющем родительский элемент текущего каталога, например «.. \ temp.txt». Для получения дополнительной информации см. Пути.

  • Не используйте следующие зарезервированные имена для имени файла:

    CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 и LPT9. Также избегайте этих имен, за которыми сразу следует расширение; например, NUL.txt не рекомендуется. Для получения дополнительной информации см. Пространства имен.

  • Не заканчивайте имя файла или каталога пробелом или точкой. Хотя базовая файловая система может поддерживать такие имена, оболочка Windows и пользовательский интерфейс - нет. Однако допустимо указывать точку в качестве первого символа имени. Например, «.temp».

Краткие и длинные имена

Длинным именем файла считается любое имя файла, которое превышает короткое имя MS-DOS (также называемое 8.3 ) соглашение об именах стилей. Когда вы создаете длинное имя файла, Windows может также создать короткую форму имени 8.3, названную псевдонимом 8.3, или коротким именем, и также сохранить ее на диске. Этот псевдоним 8.3 может быть отключен по соображениям производительности либо для всей системы, либо для определенного тома, в зависимости от конкретной файловой системы.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: псевдоним 8.3 нельзя отключить для указанных томов до Windows 7 и Windows Server 2008 R2.

Во многих файловых системах имя файла будет содержать тильду (~) внутри каждого компонента имени, которое является слишком длинным для соответствия правилам именования 8.3.

Примечание

Не все файловые системы следуют соглашению о замене тильды, и системы можно настроить так, чтобы отключить создание псевдонимов 8.3, даже если они обычно это поддерживают. Поэтому не предполагайте, что псевдоним 8.3 уже существует на диске.

Чтобы запросить у системы имена файлов 8.3, длинные имена или полный путь к файлу, рассмотрите следующие варианты:

В более новых файловых системах, таких как NTFS, exFAT, UDFS и FAT32, Windows хранит длинные имена файлов на диске в Unicode, что означает, что исходное длинное имя файла всегда сохраняется.Это верно, даже если длинное имя файла содержит расширенные символы, независимо от кодовой страницы, которая активна во время операции чтения или записи на диск.

Файлы с длинными именами файлов можно копировать между разделами файловой системы NTFS и разделами файловой системы Windows FAT без потери информации об имени файла. Это может быть неверно для старых файловых систем MS-DOS FAT и некоторых типов файловых систем CDFS (CD-ROM), в зависимости от фактического имени файла. В этом случае, если возможно, подставляется короткое имя файла.

Пути

Путь к указанному файлу состоит из одного или нескольких компонентов , разделенных специальным символом (обратной косой чертой), при этом каждый компонент обычно является именем каталога или именем файла, но с некоторыми заметными исключениями, обсуждаемыми ниже. Для интерпретации системой пути часто критично то, как выглядит начало пути, или префикс , . Этот префикс определяет пространство имен , которое использует путь, а также, какие специальные символы используются в какой позиции в пути, включая последний символ.

Если компонент пути является именем файла, он должен быть последним компонентом.

Каждый компонент пути также будет ограничен максимальной длиной, указанной для конкретной файловой системы. В общем, эти правила делятся на две категории: коротких и длинных . Обратите внимание, что имена каталогов хранятся в файловой системе как файлы особого типа, но правила именования файлов также применяются к именам каталогов. Подводя итог, путь - это просто строковое представление иерархии между всеми каталогами, которые существуют для определенного имени файла или каталога.

Полностью квалифицированные и относительные пути

Для функций Windows API, управляющих файлами, имена файлов часто могут относиться к текущему каталогу, в то время как для некоторых API требуется полный путь. Имя файла указывается относительно текущего каталога, если оно не начинается с одного из следующих символов:

  • Имя UNC любого формата, которое всегда начинается с двух символов обратной косой черты ("\\"). Для получения дополнительной информации см. Следующий раздел.
  • Обозначение диска с обратной косой чертой, например «C: \» или «d: \».
  • Одинарная обратная косая черта, например, «\ каталог» или «\ file.txt». Это также называется абсолютным путем .

Если имя файла начинается только с указателя диска, но не с обратной косой черты после двоеточия, оно интерпретируется как относительный путь к текущему каталогу на диске с указанной буквой. Обратите внимание, что текущий каталог может быть или не быть корневым, в зависимости от того, что он был установлен во время последней операции «изменения каталога» на этом диске.Примеры этого формата:

  • «C: tmp.txt» относится к файлу с именем «tmp.txt» в текущем каталоге на диске C.
  • «C: tempdir \ tmp.txt» относится к файлу в подкаталоге текущего каталога на диске C.

Путь также называется относительным, если он содержит «двойные точки»; то есть два периода вместе в одном компоненте пути. Этот специальный спецификатор используется для обозначения каталога над текущим каталогом, также известного как «родительский каталог».Примеры этого формата:

  • ".. \ tmp.txt" определяет файл с именем tmp.txt, расположенный в родительском каталоге текущего каталога.
  • ".. \ .. \ tmp.txt" указывает файл, который находится на два каталога выше текущего каталога.
  • ".. \ tempdir \ tmp.txt" указывает файл с именем tmp.txt, расположенный в каталоге с именем tempdir, который является одноранговым каталогом для текущего каталога.

Относительные пути могут сочетать оба типа примеров, например «C: .. \ tmp.txt».Это полезно, потому что, хотя система отслеживает текущий диск вместе с текущим каталогом этого диска, она также отслеживает текущие каталоги в каждой из разных букв дисков (если в вашей системе их больше одной), независимо от какое обозначение привода установлено в качестве текущего привода.

Ограничение максимальной длины пути

В выпусках Windows до Windows 10 версии 1607 максимальная длина пути составляет MAX_PATH , что определяется как 260 символов.В более поздних версиях Windows для снятия ограничения требуется изменение раздела реестра или использование инструмента групповой политики. См. Полную информацию в разделе «Ограничение максимальной длины пути».

Пространства имен

Существует две основные категории соглашений о пространствах имен, используемых в API Windows, обычно называемых пространствами имен NT и пространствами имен Win32 . Пространство имен NT было разработано как пространство имен самого нижнего уровня, в котором могли существовать другие подсистемы и пространства имен, включая подсистему Win32 и, как следствие, пространства имен Win32.POSIX - еще один пример подсистемы в Windows, которая построена на основе пространства имен NT. Ранние версии Windows также определяли несколько предопределенных или зарезервированных имен для определенных специальных устройств, таких как коммуникационные (последовательные и параллельные) порты и консоль дисплея по умолчанию как часть того, что теперь называется пространством имен устройств NT, и все еще поддерживаются в текущих версиях. Windows для обратной совместимости.

Пространства имен файлов Win32

Префикс и соглашения пространства имен Win32 суммированы в этом и следующем разделах с описанием их использования.Обратите внимание, что эти примеры предназначены для использования с функциями Windows API и не обязательно работают с приложениями оболочки Windows, такими как Windows Explorer. По этой причине существует более широкий диапазон возможных путей, чем обычно доступен из приложений оболочки Windows, и приложения Windows, которые используют это преимущество, могут быть разработаны с использованием этих соглашений о пространстве имен.

Для файлового ввода-вывода префикс «\\? \» В строке пути указывает API-интерфейсам Windows отключить весь синтаксический анализ строк и отправить строку, которая следует за ним, прямо в файловую систему.Например, если файловая система поддерживает большие пути и имена файлов, вы можете превысить ограничения MAX_PATH , которые в противном случае применяются API Windows. Дополнительные сведения о обычном ограничении максимального пути см. В предыдущем разделе «Ограничение максимальной длины пути».

Поскольку он отключает автоматическое расширение строки пути, префикс «\\? \» Также позволяет использовать «..» и «.» в именах путей, что может быть полезно, если вы пытаетесь выполнить операции с файлом с этими зарезервированными спецификаторами относительного пути как часть полного пути.

Многие, но не все API файлового ввода-вывода поддерживают "\\? \"; вы должны просмотреть справочную тему для каждого API, чтобы быть уверенным.

Обратите внимание, что API Unicode следует использовать, чтобы убедиться, что префикс «\\? \» Позволяет вам превышать MAX_PATH

Пространства имен устройств Win32

Префикс «\\. \» Будет обращаться к пространству имен устройства Win32 вместо пространства имен файлов Win32. Таким образом, доступ к физическим дискам и томам осуществляется напрямую, без прохождения через файловую систему, если API поддерживает этот тип доступа.Таким образом можно получить доступ ко многим устройствам, отличным от дисков (например, с помощью функций CreateFile и DefineDosDevice ).

Например, если вы хотите открыть системный последовательный коммуникационный порт 1, вы можете использовать «COM1» в вызове функции CreateFile . Это работает, потому что COM1 – COM9 являются частью зарезервированных имен в пространстве имен NT, хотя использование префикса «\\. \» Также будет работать с этими именами устройств. Для сравнения: если у вас установлена ​​плата расширения последовательного порта на 100 портов и вы хотите открыть COM56, вы не сможете открыть ее с помощью «COM56», поскольку для COM56 не существует предварительно определенного пространства имен NT.Вам нужно будет открыть его, используя «\\. \ COM56», потому что «\\. \» Переходит непосредственно в пространство имен устройства, не пытаясь найти предопределенный псевдоним.

Другой пример использования пространства имен устройства Win32 - использование функции CreateFile с «\\. \ PhysicalDisk X » (где X - допустимое целочисленное значение) или «\\. \ CdRom X ». Это позволяет получить доступ к этим устройствам напрямую, минуя файловую систему. Это работает, потому что эти имена устройств создаются системой при перечислении этих устройств, а некоторые драйверы также создают другие псевдонимы в системе.Например, драйвер устройства, реализующий имя «C: \», имеет собственное пространство имен, которое также является файловой системой.

API-интерфейсы

, которые проходят через функцию CreateFile , обычно работают с префиксом «\\. \», Потому что CreateFile - это функция, используемая для открытия файлов и устройств, в зависимости от используемых вами параметров.

Если вы работаете с функциями Windows API, вы должны использовать префикс «\\. \» Для доступа только к устройствам, а не к файлам.

Большинство API-интерфейсов не поддерживают "\\.\ "; его распознают только те, которые предназначены для работы с пространством имен устройства. Всегда проверяйте справочную тему для каждого API, чтобы быть уверенным.

Пространства имен NT

Существуют также API, которые позволяют использовать соглашение о пространстве имен NT, но диспетчер объектов Windows делает это ненужным в большинстве случаев. Для иллюстрации полезно просматривать пространства имен Windows в обозревателе системных объектов с помощью инструмента Windows Sysinternals WinObj. Когда вы запускаете этот инструмент, вы видите пространство имен NT, начинающееся с корня, или "\".Подпапка под названием «Global ??» это место, где находится пространство имен Win32. Именованные объекты устройств находятся в пространстве имен NT в подкаталоге «Device». Здесь вы также можете найти Serial0 и Serial1, объекты устройства, представляющие первые два COM-порта, если они есть в вашей системе. Объект устройства, представляющий том, будет чем-то вроде HarddiskVolume1, хотя числовой суффикс может отличаться. Имя «DR0» в подкаталоге «Harddisk0» является примером объекта устройства, представляющего диск, и так далее.

Чтобы сделать эти объекты устройств доступными для приложений Windows, драйверы устройств создают символическую ссылку (символическую ссылку) в пространстве имен Win32, «Global ??», на соответствующие объекты устройств. Например, COM0 и COM1 под заголовком "Global ??" подкаталог - это просто символические ссылки на Serial0 и Serial1, «C:» - это символическая ссылка на HarddiskVolume1, «Physicaldrive0» - это символическая ссылка на DR0 и так далее. Без символической ссылки указанное устройство «Xxx» не будет доступно для любого приложения Windows, использующего соглашения о пространстве имен Win32, как описано ранее.Однако дескриптор этого устройства может быть открыт с помощью любых API-интерфейсов, которые поддерживают абсолютный путь пространства имен NT в формате «\ Device \ Xxx».

С добавлением поддержки многопользовательского режима через службы терминалов и виртуальные машины возникла необходимость виртуализировать общесистемное корневое устройство в пространстве имен Win32. Это было достигнуто путем добавления символической ссылки «GLOBALROOT» в пространство имен Win32, которое вы можете увидеть в «Global ??» подкаталог инструмента браузера WinObj, о котором говорилось ранее, и доступ к нему можно получить по пути "\\? \ GLOBALROOT".Этот префикс гарантирует, что следующий за ним путь будет выглядеть как истинный корневой путь диспетчера системных объектов, а не путь, зависящий от сеанса.

Сравнение функций файловой системы

.

Смотрите также