Отказано в доступе к 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" />