Мы запускаем некоторые процессы в распределенной вычислительной среде. Процессы на одной машине должны передавать информацию с процессами на других машинах. Одной из этих сведений является расположение определенных файлов. Таким образом, процесс на одной машине может помещать информацию в конкретный файл в конкретный сетевой ресурс, и ему необходимо сообщить местоположение процессу на другой машине.Как получить информацию о накопителе UNC на «Отключенном сетевом диске»
У нас нет проблем с коммуникационной частью. Проблема заключается в определении информации о местоположении, которую машина должна распространять. Пути файлов с привязками дисков явно бесполезны: разные машины будут отличаться друг от друга. Таким образом, нам нужно сообщить ему полное имя пути UNC.
По большей части мы можем легко получить эту информацию. Одно место, где возникают проблемы, - это сценарий powershell, который должен получить эту информацию. В настоящее время мы используем следующий код:
$l_logicalDisk = Gwmi Win32_LogicalDisk -filter "DeviceID = '$l_currentDrive'"
if ($l_logicalDisk.DriveType -eq 4)
{
$l_base = $l_logicalDisk.ProviderName
}
и $l_base
обеспечивает \\computername\share
информацию. Однако в определенных обстоятельствах это терпит неудачу. Иногда по какой-то неизвестной причине подключенный диск будет отображаться как «отключенный сетевой диск» в Explorer.exe, даже несмотря на то, что диск и все его файлы доступны. (Фактически, скрипт, который работает, даже расположен на предполагаемом «отключенном сетевом диске».) В этой ситуации поле информации о логическом диске ProviderName
пусто. Кажется, что ничего не изменило статус из «Disconnected Network Drive», и я не нашел способа обновить информацию ProviderName
.
Итак, знает ли кто-нибудь (1) как «повторно подключить» отключенный сетевой диск изнутри powershell или (2) как в Powershell получить информацию о пути UNC для каталога в более надежном методе, описанном выше? Благодарю.
Я считаю, лучшая практика, чтобы избежать использования букв дисков карты в целом. –