Я пытаюсь реализовать функцию в 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? Я понимаю, что это может быть ошибка файлового сервера (файлового сервера окна), но тогда вопрос просто меняется, есть ли способ заставить файловый сервер обновить свою информацию?