压缩多个 Files\Folders 并通过 Powershell 使用密码加密 zip
Compress Multiple Files\Folders and encrypt zip with password via Powershell
我正在尝试在 powershell 中制作一个快速脚本
这将压缩多个文件夹
(或者文件现在不重要,在我的例子中它的文件夹)
并向每个 zip 文件添加一个随机密码
并将每个 zip 文件的密码导出到 csv。
这是我目前得到的...
$path = "\path\of\folders"
$source = Get-ChildItem -Path \path\of\folders -Filter "*?" -Directory
Add-Type -assembly "system.io.compression.filesystem"
Foreach ($s in $source){
$destination = Join-path -path $path -ChildPath "$($s.name).zip"
If(Test-path $destination) {Remove-item $destination}
[io.compression.zipfile]::CreateFromDirectory($s.fullname, $destination)
}
有了这个,我可以压缩主文件夹中的每个文件夹,压缩每个文件的名称。
我管理起来比较复杂的地方是如何为每个 zip 文件添加一个随机密码...然后我将添加 | Export-Csv -Path \to\my\path\passwords.csv(除非我对导出有误)
有什么想法吗?
谢谢!
设法编写出压缩和加密 zip 文件的脚本。
if (-not (Test-Path "C:\Program Files-Zipz.exe")){
Write-Warning "C:\Program Files-Zipz.exe needed"
}
Add-Type -AssemblyName System.Web
z = ("C:\Program Files-Zipz.exe")
foreach($subfolder in (Get-ChildItem "\path_of_directoris" -Directory))
{
$pass = [System.Web.Security.Membership]::GeneratePassword(10,2)
$Source = $subfolder.fullname
$Target = "\path_of_directoris$($subfolder.name).zip"
& z "a" "-mx=9" "$Target" "$Source" "-p$pass" | Export-CSV -Path "\path_to_store_pass\passwords.csv"
echo $subfolder, $pass
}
我正在尝试在 powershell 中制作一个快速脚本 这将压缩多个文件夹 (或者文件现在不重要,在我的例子中它的文件夹) 并向每个 zip 文件添加一个随机密码 并将每个 zip 文件的密码导出到 csv。
这是我目前得到的...
$path = "\path\of\folders"
$source = Get-ChildItem -Path \path\of\folders -Filter "*?" -Directory
Add-Type -assembly "system.io.compression.filesystem"
Foreach ($s in $source){
$destination = Join-path -path $path -ChildPath "$($s.name).zip"
If(Test-path $destination) {Remove-item $destination}
[io.compression.zipfile]::CreateFromDirectory($s.fullname, $destination)
}
有了这个,我可以压缩主文件夹中的每个文件夹,压缩每个文件的名称。
我管理起来比较复杂的地方是如何为每个 zip 文件添加一个随机密码...然后我将添加 | Export-Csv -Path \to\my\path\passwords.csv(除非我对导出有误)
有什么想法吗?
谢谢!
设法编写出压缩和加密 zip 文件的脚本。
if (-not (Test-Path "C:\Program Files-Zipz.exe")){
Write-Warning "C:\Program Files-Zipz.exe needed"
}
Add-Type -AssemblyName System.Web
z = ("C:\Program Files-Zipz.exe")
foreach($subfolder in (Get-ChildItem "\path_of_directoris" -Directory))
{
$pass = [System.Web.Security.Membership]::GeneratePassword(10,2)
$Source = $subfolder.fullname
$Target = "\path_of_directoris$($subfolder.name).zip"
& z "a" "-mx=9" "$Target" "$Source" "-p$pass" | Export-CSV -Path "\path_to_store_pass\passwords.csv"
echo $subfolder, $pass
}