Я пытаюсь реализовать функцию в powershell, которая может достоверно сказать мне, действительно ли каталоги, на которые ссылаются два допустимых пути, одинаковы. Он должен уметь обрабатывать каталоги, на которые ссылаются карты, пути UNC, соединения, возможно, соединение на файловом сервере и т.д. И т.д.
Учитывая множество способов обращения к каталогу, кажется, что наиболее надежный способ сделать это - записать пустой файл в каталог, используя одно имя каталога, а затем использовать второй путь, чтобы проверить, можно ли найти временный файл в второе имя пути. Однако оказывается, что это может быть ненадежно.
У нас есть файловый сервер с каталогом S:\
который распределяется как \\server\share
. На сервере у нас есть каталоги S:\rootDir1
, S:\rootDir1\subDir
, S:\rootDir2
и узел S:\rootDir2\subDir => S:\rootDir1\subDir
.
На сервере приложений я сопоставляю M:\ => \\server\share
, поэтому сервер приложений видит M:\rootDir1\subDir
и M:\rootDir2\subDir
В powershell на сервере приложений я создаю файл в M:\rootDir1\subDir
через
New-Item -ItemType File -Path `M:\rootDir1\subDir\testFile.txt`
Затем мы немедленно выполняем два теста
$l_ret1 = test-path `M:\rootDir1\subDir\testFile.txt`
$l_ret2 = test-path `M:\rootDir2\subDir\testFile.txt`
Возвращенный результат $l_ret1
постоянно равен $true
, в то время как результат $l_ret2
несовместим без значительной задержки между созданием тестового файла и его тестированием. Есть ли способ заставить Windows "обновить" или "обновить" информацию о файлах в M:\rootDir2\subDir
? Я понимаю, что это может быть ошибка файлового сервера (файлового сервера окна), но тогда вопрос просто меняется, есть ли способ заставить файловый сервер обновить свою информацию?