1

Я управляю несколькими компьютерами с цифровой доской, для правильной работы которых требуется калибровка ручек. К сожалению, калибровка выполняется пользователем и не сохраняется для всего компьютера. Кроме того, жесткие диски этих компьютеров защищены от изменений, так как они используются в средней школе, где ученики любят возиться с нашими ПК.

Сочетание этих факторов является проблемой, поскольку калибровка пера со временем ухудшается, и все повторные калибровки стираются перезагрузками. Поэтому я придумал эту схему для сохранения изменений калибровки:

a) Система копирует файл калибровки пера в общий сетевой ресурс, когда пользователь выходит из системы. Это делается с помощью файла bat, который вызывается через локальную групповую политику:

logoff.bat:
attrib -h "%AppData%\path_to_settings.xml"
xcopy "%AppData%\path_to_settings.xml" "\\10.86.1.3\whiteboard_settings\%ComputerName%\" /H /Y /Q /R > nul
attrib -h "\\10.86.1.3\whiteboard_settings\%ComputerName%\settings.xml"

b) Система копирует файл калибровки из общего сетевого ресурса, когда пользователь входит в систему. Это просто файл bat, вызываемый публичным автозапуском.

logon.bat:
xcopy "\\10.86.1.3\whiteboard_settings\%ComputerName%\settings.xml" "%AppData%\path_to_settings.xml" /H /Y /Q /R > nul
attrib -h "%AppData%\path_to_settings.xml"

Вызов attrib -H происходит потому, что там программа калибровки не сохраняет калибровку в локальном файле, если она скрыта. (Однако, как ни странно, вызов attrib -H не влияет на общий ресурс сети.)

Эта установка работает нормально, пока я только вхожу в систему или выходу из системы пользователей. Однако, когда я перезагружаю компьютер, файл на сетевом ресурсе блокируется, и копирование или изменение не работает: я получаю «Ложное нарушение обмена» из xcopy. Похоже, что сценарий выхода из системы не выполнен полностью, и некоторые блокировки остаются. Это можно ожидать с помощью сценариев выхода из системы и перезагрузки? Или это другая проблема, может быть с вызовом attrib?

0