Я хочу создать файл cab папки и ее файлы с помощью powershell. Я пробовал сценарий ниже, но он дает мне ошибку.Создайте файл cab из папки powershell
Param(
$filepath = "D:\Script",
$path = "D:\Script\aCab.cab",
[switch]$debug
)
Function New-Cab($path,$files)
{
$makecab = "makecab.makecab"
Write-Debug "Creating Cab path is: $path"
$cab = New-Object -ComObject $makecab
if(!$?) { $(Throw "unable to create $makecab object")}
$cab.CreateCab($path,$false,$false,$false)
ForEach ($file in $files)
{
$file = $file.fullname.tostring()
$fileName = Split-Path -path $file -leaf
Write-Debug "Adding from $file"
Write-Debug "File name is $fileName"
$cab.AddFile($file,$filename)
}
Write-Debug "Closing cab $path"
$cab.CloseCab()
} #end New-Cab
# *** entry point to script ***
if($debug) {$DebugPreference = "continue"}
$files = Get-ChildItem -path $filePath | Where-Object { !$_.psiscontainer }
New-Cab -path $path -files $files
Ошибка:
New-Object : Retrieving the COM class factory for component with CLSID {00000000-0000-0000-0000-000000000000} failed due to the following error: 80040154 Class not
registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
unable to create makecab.makecab object
At D:\SCCM Script\Cabmaker.ps1:11 char:14
Я пытался скачать Makecab.exe из Micorosoft но не получает загружены. MakeCab.exe Link
Может кто-нибудь посоветует мне, что я делаю неправильно?
Я проверил и makecab.exe находится на моей машине. Однако, когда я запускаю код выше, он не показывает классы makecab.exe. Нужно ли что-либо сделать для правильной загрузки. – Ironic
@ 404 Я не уверен, но comobject установлен только с sdk. Microsoft заканчивает публикацию sdk, и я не знаю почему. Почему вы не используете makecab.exe в своем скрипте? –
Я не нашел ничего подходящего или пример кода для makecab.exe – Ironic