2016-08-03 2 views
1

Я успешно работает следующий сценарий PowerShell в Windows, 8.1 и Windows 10:PowerShell Zip не работает на Windows 7

Add-type -A System.IO.Compression.FileSystem 
[IO.Compression.Zipfile]::CreateFromDirectory('C:\Test\WiresharkCapture','C:\Test\WiresharkCapture.zip') 

Однако, когда я запускаю этот скрипт на Windows 7 Я получаю ошибку системы. Не удалось найти сборку IO.Compression.FileSystem.

Может ли кто-нибудь сообщить, что мне нужно сделать, чтобы эта сборка была доступна для PowerShell в Windows 7?

+4

PowerShell 2.0 (по умолчанию в Win7) работает на .NET 2.0 - 'System.IO .Compression.FileSystem' доступен только в .NET 4.5 (и требует, по крайней мере, 4.0 runtime). Установите более новую версию 'WMF' /' PowerShell', и она должна работать –

+0

У меня установлен .NET 4.5.1 - правильным решением было обновление PowerShell, как это предложил @ MathiasR.Jessen, спасибо. – JNH

ответ

-1

Речь идет не о самой Powershell. Это больше о версии .NET.

Он был включен с версии .NET framework 4.5.

Таким образом, вы не сможете запустить его с более низкой версией .NET.

https://msdn.microsoft.com/en-us/library/system.io.compression.zipfile(v=vs.110).aspx

Вы должны проверить .NET Framework версии.

Основываясь на статье MSDN, вы можете добавить переключатель для возврата маркетинга продукта номер версии для выпусков после 4,5:

Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | 
Get-ItemProperty -name Version,Release -EA 0 | 
Where { $_.PSChildName -match '^(?!S)\p{L}'} | 
Select PSChildName, Version, Release, @{ 
    name="Product" 
    expression={ 
     switch($_.Release) { 
     378389 { [Version]"4.5" } 
     378675 { [Version]"4.5.1" } 
     378758 { [Version]"4.5.1" } 
     379893 { [Version]"4.5.2" } 
     393295 { [Version]"4.6" } 
     393297 { [Version]"4.6" } 
     394254 { [Version]"4.6.1" } 
     394271 { [Version]"4.6.1" } 
     394747 { [Version]"4.6.2" } 
     394748 { [Version]"4.6.2" } 
     } 
    } 
} 
+0

Это своего рода право, но на самом деле не так, но мне нравится ваш пример кода :). На самом деле функции ZIP добавлены в PowerShell v5.0 (поставляется как WMF 5.0). Бывает, что WMF 5.0 требуется dotnet 4.5. Но просто установка dotnet 4.5 не позволит OP использовать Командлеты архива. – FoxDeploy

+0

Исходный вопрос заключался в загрузке assambly, у которой нет необходимых методов из-за, скорее всего, .NET, установленного ниже, чем v4.5 –

Смежные вопросы