
Надеюсь, кто-нибудь сможет помочь с этой проблемой. SO Win10 x64.
Мне нужно скопировать один файл XPI (расширение Firefox) в подпапку Program Files (не x86). Если я создам простой файл bat и запущу его от имени администратора с помощью правой кнопки мыши, mkdir сработает нормально, но операция копирования не сработает. Вместо этого, если я открою cmd от имени администратора и запущу операцию копирования оттуда, и mkdir, и операция копирования сработают как и ожидалось.
Мне нужно вызвать BAT из стороннего программного обеспечения с повышенными привилегиями, поэтому если я смогу решить первый сценарий, я должен решить свою проблему. Любая помощь или объяснение будут высоко оценены. Код очень прост:
mkdir "C:\Program Files\Mozilla Firefox\distribution\extensions"
copy file.xpi "C:\Program Files\Mozilla Firefox\distribution\extensions"
Заранее спасибо.
решение1
Попробуйте использовать xcopy вместо copy.
А вы не думали об использовании PowerShell?
Он гораздо более мощный, и вы можете указать учетные данные дляпроцесс. Вы также можете обойти политику выполнения с помощью Powershell.
Set-Executionpolicy Bypass -Scope Process -Force
Затем вы можете скопировать программу в PowerShell, используя
xcopy /q <source> <destination>
Если это не сработает, попробуйте вставить команду xcopy в команду Start-Process powershell. Что-то вроде...
Start-Process -FilePath "c:\Windows\System32\xcopy.exe" -ArgumentList "file.xpi C:\Program Files\Mozilla Firefox\distribution\extensions\" -Credential domain\user
Альтернативно домен\пользователь будет выглядеть как имя_компьютера\пользователь
Обратите внимание, что Start-Process также имеет переключатель -Wait, который ждет завершения процесса.