Удаление удаленных блокировок из общих путей UNC - PullRequest
0 голосов
/ 30 июля 2011

У меня сейчас проблемы с поиском решения для разблокировки файлов пути UNC для нашего сценария развертывания. Вот текущая ситуация:

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

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

В нашем текущем состоянии мы пытались использовать openfiles.exe для чтения и разблокировки файлов (через / query / s // server / v), анализируя идентификаторы, а затем используя идентификатор для снятия блокировки. Проблема, с которой мы сталкиваемся, заключается в том, что openfiles.exe возвращает пути локальных файлов против путей файлов UNC.

Есть ли способ удаленного удаления блокировки файла с сервера, только зная UNC-путь этого файла (и не зная его локальный путь)? Нам не обязательно иметь разрешение на добавление приложений на целевые серверы (так как их много), поэтому такие решения, как PsExec -> Handle.exe, скорее всего, не будут работать для нас.

Заранее спасибо за любую помощь! -Corey

1 Ответ

0 голосов
/ 30 июля 2011

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

С учетом сильной интеграции WMI вPowerShell - и учитывая, что PowerShell * намного проще в использовании, чем необработанный WMI, - не должно быть слишком сложно написать функцию powershell, которая преобразует UNC-путь в локальный путь для хост-машины.

В качестве отправной точки посмотрите Сценарии PowerShell - WmiObject Win32_Share :

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

Если у вас все получится, поделитесь результатом!

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