Использование пакетного скрипта для перемещения файла с рабочего стола на System32

#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