*** let me Google that for you ***
Код:

$source_path = 'c:\Users\Serguei\Music\Folder with a ton of Music'
$destination_path = 'c:\temp'
$zip_filename = 'result'
$zip_path = "${destination_path}\${zip_filename}.zip"
[Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem') | out-null
# create empty zip magic
set-content $zip_path ( [byte[]] @( 80, 75, 5, 6 + (, 0 * 18 ) ) ) -encoding byte
$source_folder = ( new-object -com 'Shell.Application' ).NameSpace( $source_path )
$zip_folder = ( new-object -com 'Shell.Application' ).NameSpace( $zip_path )
# запускаем на выполнение в диалог прогресс режиме, конца выполнения не ждём.
$zip_folder.CopyHere( $source_folder, 16 )
$check_count = (get-childitem -path $source_path ).count
$done = $false
# вот теперь ждем по большому
while ($done -eq $false){
try{
$check_zip = [IO.Compression.ZipFile]::OpenRead($zip_path)
write-debug ('Counting items: {0}' -f ($check_zip.Entries).count )
if( ($check_zip.Entries).count -eq $check_count){
$check_zip.Dispose()
$done = $true
break
}
} catch [Exception] {
}
start-sleep -seconds 1
write-host '.' -nonewline
}