Может ли программа обнаружить, что диск, на котором она работает, является локально установленным, но хранящимся в сети VHD/VHDX?
Это все в контексте Windows 10, как клиента, так и сервера.
Справочная информация: некоторые программы блокируют установку / запуск в общих сетевых папках. Я не имею в виду ошибки из-за общего доступа / прав доступа к файлу или необходимости включения политик в GPO/ реестре; Я имею в виду, что они прямо говорят вам, что сетевые установки "не будут работать", а затем блокируют их, даже если используется подключенный сетевой диск (то есть "\SERVER\DriveP", сопоставленный с "Z:\" на локальном компьютере).
Обходной путь, который я нашел, - это создание VHD/VHDX на общем сетевом ресурсе, а затем использование управления дисками на локальном компьютере для подключения этого VHD в качестве локального диска. Например, я создаю VHD-файл "VirtualDrive.vhd" в "\SERVER\DriveP", затем присоединяю этот VHD к "D:\" на локальном ПК. Это кажется на 100% прозрачным и функционально идентичным жесткому диску, физически подключенному к ПК; программы, которые обычно блокируют (или не работают с) сопоставленные сетевые установки, работают с этим методом.
Вкратце: у меня есть программы, установленные на сетевом диске с помощью локально установленного виртуального жесткого диска, который физически хранится на сетевом диске.
Вопрос: Есть ли способ для программы обнаружить, что диск, на котором она работает (в данном примере "D:\"), на самом деле является виртуальным жестким диском, хранящимся на удаленном компьютере, но смонтированным локально, а не физически подключенным к ПК?
Я подумал, что это может быть лучшее сообщество, чтобы спросить, чем serverfault.
1 ответ
В течение достаточно длительного периода времени это может быть определено косвенно. Это не на 100% надежно и занимает много времени, но эта информация может просочиться из реального мира.
Поставьте программу, которая работает непрерывно, делает много дисковых запросов и знает загрузку в системе, где она работает. Поскольку он учитывает время обслуживания для запросов, в конечном итоге он должен сделать вывод, что некоторые ответы занимают столько времени (из-за сетевого трафика, перегрузки и т. Д.), Когда система не загружена, что диск не может быть реальным жестким диском, подключенным к материнской плате.