我正在尝试调用:
[System.IO.File]::Delete($folder)
从 Powershell ISE(不是 ISEx86)。我以域用户身份登录,即我使用 RDP 连接的这台机器上的管理员。我已取得 SysWOW64 文件夹的所有权,并授予自己对此文件夹、子文件夹和文件的完全控制权。
但是,当我从在我的帐户“Domain\Administrator”下运行的 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”个参数调用“Delete”时发生异常:“拒绝访问路径‘C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Modules\xxx\Modules’。” 在 C:\Users\Administrator.CONTOSO\Documents\Visual Studio 2015\Projects\xxx.Powershell.Commandlets\xxx.Powershell.Commandlets\install-module.ps1:9 char:1 + [System.IO.File]::Delete($folder) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: UnauthorizedAccessException
我如何才能访问?
答案1
呃……您不能像这样删除活动文件。您调用了一个 64 位 powershell 实例来删除 64 位 shell 的模块。Powershell 会预加载模块(但不一定会安装它们),这会锁定模块文件。