Dan*_*ott 32 powershell powershell-2.0
我想让PowerShell在Win2K8 R2中取消阻止文件.
有没有人有关于语法的指针?
Joe*_*oey 47
如果您使用的是PowerShell v3,则可以使用Unblock-Filecmdlet.
"阻塞"部分只是文件的备用数据流,名为"Zone.Identifier".您可以使用输入重定向在CMD中显示它(但不能以其他方式访问CMD中的流):
H:\Downloads> more < test.exe:Zone.Identifier
[ZoneTransfer]
ZoneId=3
Run Code Online (Sandbox Code Playgroud)
您可以dir /r在Windows Vista及更高版本上使用它们:
2009-10-24 12:18 54.538.056 test.exe
24 test.exe:Zone.Identifier:$DATA
Run Code Online (Sandbox Code Playgroud)
同样在CMD中,您可以通过覆盖它轻松摆脱它(使用输出重定向,这次):
echo.>myDownloadedFile.exe:Zone.Identifier
Run Code Online (Sandbox Code Playgroud)
这是不是很一样完全去除ADS,但在资源管理器中的作品已经不抱怨.
似乎没有成为在PowerShell中从ADS处理原生支持(在PowerShell的Guy的博客提到这里.这篇文章也有一些信息是如何获得在PowerShell中该功能).但是,你可以简单地调用cmd:
cmd /c "echo.>test.exe:Zone.Identifier"
Run Code Online (Sandbox Code Playgroud)
这也适用于PowerShell.
另一种选择是Mark Russinovich的streams实用程序,它允许您检查文件的ADS并删除它们.所以
streams -d myDownloadedFile.exe
Run Code Online (Sandbox Code Playgroud)
确实有效.
PoshCode模块包括Set-DownloadFlag和Remove-DownloadFlag功能,这些功能与宣传的一样.:)我刚刚把这篇文章放到它自己的脚本贡献http://poshcode.org/1430 ...如果你使用New-Type函数代替Add-Type,它也适用于PowerShell 1 http://poshcode.org/720)
Oneliner为所有儿童删除区域信息(灵感来自已接受的答案)(正确引用).
get-childitem -rec | % { cmd /c "echo.>""$($_.FullName)"":Zone.Identifier" }
Run Code Online (Sandbox Code Playgroud)
没有严格回答这个问题,只是想确定当我接下来提出这个问题时已经有解决方案:).
PS.适用于PS 2.0
| 归档时间: |
|
| 查看次数: |
31093 次 |
| 最近记录: |