Завжди подобалося використовувати команду SUBST. Зручно це. І для старих програм, і для, наприклад, "укорочення" шляху до мережевих папок. Частенько користувачі створюють шляху такої довжини, що тільки диву даєшся.
І ніяк не очікував, що тут розсипані "граблі" Microsoft.
У чому ж це виражається. А в тому, що тепер є два типи сесій з якими можна працювати: standard і, так звана, elevated (коли програма запускається від імені Адміністратора)
І ось що відбувається. У standard сесії створюємо (заміняємо) папку буквою диска
наприклад так
SUBST T: C: \ TEMP
що виходить?
З стандартної командного рядка - "новий" диск видно
І в 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!
Ну зовсім милицю, на безпеку наплювали, але зате працює 🙂
Можна почитати про це в TechNet - https://social.technet.microsoft.com/wiki/contents/articles/13953.windows-server-2012-deactivating-uac.aspx
Або просто:
- Вимкніть UAC через Control Panel
- Змініть значення ключа з «1» на «0»
"HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ policies \ system"
REGEDIT4
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System] "EnableLUA" = dword: 00000000 - увійдіть або ОС
Перевірено - працює.
Метод 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
На якому з методів зупинитися - вирішувати вам.