#batch-file #system32
#пакетный файл #system32
Вопрос:
Это мой первый вопрос, который я задаю здесь. Я искал ответ / справку повсюду, но не могу найти ничего, что работает.
Была поставлена задача создать пакетный скрипт, который запускается, когда наши пользователи заходят на свои ПК, который устанавливает там скринсейвер на корпоративный. Я знаю, что некоторые люди скажут использовать Active Directory для принудительного выполнения этого, но мы им не пользуемся.
Сам скрипт таков:
IF EXIST "C:WindowsSystem32MDXScreenSaver.scr" goto :found
IF NOT EXIST "C:WindowsSystem32MDXScreenSaver.scr" goto :notfound
:notfound
copy "\VSMGVOL1APPSScreensaverNewMDXScreenSaver.scr" "%UserProfile%Desktop"
copy "%UserProfile%DesktopMDXScreenSaver.scr" "C:WindowsSystem32"
REG add "HKEY_CURRENT_USERControl PanelDesktop" /v ScreenSaveActive /t REG_SZ /d 1 /f
REG add "HKEY_CURRENT_USERControl PanelDesktop" /v ScreenSaveTimeOut /t REG_SZ /d 30 /f
REG add "HKEY_CURRENT_USERControl PanelDesktop" /v ScreenSaverIsSecure /t REG_SZ /d 0 /f
REG add "HKEY_CURRENT_USERControl PanelDesktop" /v SCRNSAVE.EXE /t REG_SZ /d C:WindowsSystem32MDXScreenSaver.scr /f
:found
exit
При тестировании я разбил его на отдельные этапы, чтобы знать, что сработало, а что нет. Он переместит файл с сервера на рабочий стол и применит ключи REG.
При выполнении копирования / перемещения в System32 (с помощью команды pause) в CMD указывается, что он скопировал / переместил его, но при проверке файла там нет.
Пожалуйста, кто-нибудь может мне помочь перенести этот файл в System32.
Комментарии:
1. Используете ли вы этот файл с правами администратора? system32, вероятно, будет закрытой областью для ваших обычных пользователей. Если нет, попробуйте
runas /user:Administrator
.2. Вы упомянули, что файла там нет, что означает, что его нет в каталоге System32, но как насчет каталога Desktop? Он там?
3. Что касается Compo, вот что я пытаюсь заставить его делать, но будет ли эта команда runas работать только для одной строки, с которой мне нужно работать (System32), или мне нужно будет объявить с самого начала? и что касается Dominique, файл успешно копируется с сервера на рабочий стол, но при перемещении с рабочего стола на system 32 он там не появляется, но когда вы вводите код, он указывает, что он есть? если это имеет смысл
4. Я провел тестирование с
runas /user:administrator
, и мне не нравится синтаксис и не выполняется эта строка кода
Ответ №1:
Вам не нужно запускать каждую строку от имени администратора, запустите пакетный файл.
RunAs /User:administrator C:Foldermybatchfile.bat
Ответ №2:
В конце концов мне удалось решить эту проблему,
IF EXIST "C:ScreenSaverMdxAero_SS.scr" goto :found
IF NOT EXIST "C:ScreenSaverMdxAero_SS.scr" goto :notfound
:notfound
mkdir "C:Screensaver"
copy "\VSMGVOL1APPSScreensaverMdxAero_SS.scr""%UserProfileDesktop"
move "%UserProfile%DesktopMdxAero_SS.scr" "C:Screensaver"
REG add "HKEY_CURRENT_USERControl PanelDesktop" /v ScreenSaveActive /t REG_SZ /d 1 /f
REG add "HKEY_CURRENT_USERControl PanelDesktop" /v ScreenSaveTimeOut /t REG_SZ /d 600 /f
REG add "HKEY_CURRENT_USERControl PanelDesktop" /v ScreenSaverIsSecure /t REG_SZ /d 1 /f
REG add "HKEY_CURRENT_USERControl PanelDesktop" /v SCRNSAVE.EXE /t REG_SZ /d C:ScreenSaverMdxAero_SS.scr /f
goto :end
:found
REG add "HKEY_CURRENT_USERControl PanelDesktop" /v ScreenSaveActive /t REG_SZ /d 1 /f
REG add "HKEY_CURRENT_USERControl PanelDesktop" /v ScreenSaveTimeOut /t REG_SZ /d 600 /f
REG add "HKEY_CURRENT_USERControl PanelDesktop" /v ScreenSaverIsSecure /t REG_SZ /d 1 /f
REG add "HKEY_CURRENT_USERControl PanelDesktop" /v SCRNSAVE.EXE /t REG_SZ /d C:ScreenSaverMdxAero_SS.scr /f
goto :end
:end
exit