PowerShell的解压拒绝访问

PowerShell的解压拒绝访问

问题描述:

我有一个应该解压目录中的一些文件PowerShell脚本,但是当我运行它,它抛出这个错误:PowerShell的解压拒绝访问

Exception calling "ExtractToDirectory" with "2" argument(s): "Access to the path 
'E:\SubFolder\SubFolder2\SubFolder3' is denied." 
At line:7 char:5 
+  [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, "E:\SubFolder\Sub ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
    + FullyQualifiedErrorId : UnauthorizedAccessException 

我已经给自己完全控制每个单独的文件夹在路径中并以管理员身份运行(仅用于测试),并且仍会引发错误。

这里是我的代码

Add-Type -AssemblyName System.IO.Compression.FileSystem 

function Unzip 
{ 
    param([string]$zipfile) 

    [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, "E:\SubFolder\SubFolder2\SubFolder3") 

} 

$Files = get-childitem "E:\SubFolder\SubFolder2\SubFolder3" 

foreach ($i in $files) 
{ 
    Unzip "SubFolder\SubFolder2\SubFolder3\$i" 
} 

有人能指出我在正确的方向得到这个工作?

+1

当你改变的说法我不能复制的错误,但也许尝试在Get-ChildItem中添加'Where'子句:'get-childitem“E:\ SubFolder \ SubFolder2 \ SubFolder3”|其中{$ _。Extension -eq“.zip”}' – dbso

+0

这已经成功了。在下面发布您的答案,我会接受。谢谢! – Cornflake2068

Get-ChildItem

Get-ChildItem "E:\SubFolder\SubFolder2\SubFolder3" | Where { $_.Extension -eq ".zip" } 

添加Where我也建议调用解压缩功能

Unzip $i.FullName

+0

'Get-ChildItem“E:\ SubFolder \ SubFolder2 \ SubFolder3 \ *。zip”'也可以。 – JosefZ