Отказано в доступе к Content.IE5 при копировании файла в C#, вызываемого скриптом powershell

Я пытаюсь скопировать файл в мою папку AppData Roaming с помощью File.Copy(string source, string dest) команда из пространства имен System.IO.

Это хорошо работает, когда я пытаюсь это сделать, но когда я вызываю программу из сценария powershell, например так:

$p = Start-Process  $WorkingDir\src\Installer.exe -PassThru
$p.WaitForExit()
$p.ExitCode

Программа C# создает исключение: System.UnauthorizedAccessException: доступ к пути "C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\Windows\INetCache\Content.IE5" был запрещен. Спасибо за вашу помощь, Сандро

2 ответа

Решение

Хорошо, я понял: я использовал Environment.CurrentDirectory и это рабочий каталог PowerShell! Поэтому, если вы запускаете программу из powershell, этот каталог является рабочим каталогом powershell, а не каталогом, в котором обнаружена сама программа.

Для доступа к системным каталогам вам необходимы права администратора

Чтобы решить эту проблему, вы можете запросить права администратора

добавить файл манифеста приложения в ваш проект и изменить <requestedExecutionLevel> элемент к

 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Другие вопросы по тегам