Я пытаюсь позвонить:
[System.IO.File]::Delete($folder)
из Powershell ISE (не ISEx86). Я вошел в систему как пользователь домена, который является администратором на этом компьютере, к которому я подключаюсь по RDP. {{1 }} Я стал владельцем папки SysWOW64 и предоставил себе полный контроль для этой папки, подпапок и файлов.
Но я все еще получаю сообщение «Доступ запрещен» при выполнении приведенной выше команды из консоли Powershell, которая выполняется под моей учетной записью «Домен \ Администратор».
$xxx = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
Write-Host $xxx
$sr = [Environment]::ExpandEnvironmentVariables("%SystemRoot%")
$sr = Join-Path -Path $sr -ChildPath "\SysWOW64\WindowsPowerShell\v1.0\Modules\"
$folder = Join-Path -Path $sr -ChildPath "\xxx\Modules"
[System.IO.File]::Delete($folder)
Исключение, вызывающее «Удалить» с аргументом (ами) «1»: «Доступ к пути 'C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ Modules \ xxx \ Modules' равен {{ 1}} отказано ". В C: \ Users \ Administrator.CONTOSO \ Documents \ Visual Studio 2015 \ Projects \ xxx.Powershell.Commandlets \ xxx.Powershell.Commandlets \ install-module.ps1: 9 char: 1 + [System.IO.Файл] :: Удалить ($ folder) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ {{ 1}} + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: UnauthorizedAccessException
Как я могу получить доступ?
Эм..... Такие активные файлы удалить невозможно. Вы вызвали 64-битный экземпляр powershell для удаления модуля для 64-битной оболочки. Powershell предварительно загружает модули (но не обязательно устанавливает их), которые блокируют файл модуля.
.