我正在尝试整合一个powershell脚本,从sharefile下载firefox msi并静默安装。
我终于让下载部分工作了。但是,安装没有。当我导航到我将firefox msi下载到(C:\,C:\ users \ public和我的桌面)的文件夹时,出现以下错误:
此应用无法在您的电脑上运行
无法打开此安装包。请与应用程序供应商联系,以验证这是一个有效的Windows安装程序包。
我从mozilla网站下载了exe文件,并从正面运动中下载了msi。
该软件所在的分享对网络上的每个人开放。
我对exe和msi都有相同的错误。
这是我目前的剧本:
#Download and Run MSI package for Automated install
$uri = "https://sharefile.com/app/#/home/shared/foe0295b-0fbf-4ad9-ad73-fc18d26ba705/FirefoxInstaller.msi"
$out = "c:\FireFoxInstaller.msi"
Invoke-WebRequest -uri $uri -OutFile $out
Start-Process -FilePath "msiexec.exe" -ArgumentList "/i $out /quiet /norestart /l c:\installlog.txt"
答案 0 :(得分:0)
正如你所说,你有一个你选择的MSI,但我一直使用来自Frontmotion的MSI
当我这样做时,这有效,但请告诉我它是否适合你。
#Download and Run MSI package for Automated install
$uri = "http://hicap.frontmotion.com.s3.amazonaws.com/Firefox/Firefox-53.0.3/Firefox-53.0.3-en-US.msi"
$out = "c:\FireFoxInstaller.msi"
Function Download_MSI_FireFox_Installer{
Invoke-WebRequest -uri $uri -OutFile $out
$msifile = Get-ChildItem -Path $out -File -Filter '*.ms*'
write-host "FireFox MSI $msifile "
}
Function Install_FireFox{
$FileExists = Test-Path $msifile -IsValid
$DataStamp = get-date -Format yyyyMMddTHHmmss
$logFile = '{0}-{1}.log' -f $msifile.fullname,$DataStamp
$MSIArguments = @(
"/i"
('"{0}"' -f $msifile.fullname)
"/qn"
"/norestart"
"/L*v"
$logFile
)
If ($FileExists -eq $True)
{
Start-Process "msiexec.exe" -ArgumentList $MSIArguments -passthru | wait-process
write-host "Finished msi "$msifile
}
Else {Write-Host "File doesn't exists"}
}
Download_MSI_FireFox_Installer
Install_FireFox
答案 1 :(得分:0)
最近我遇到了类似的问题,我希望将HipChat部署到整个公司。主要区别在于我在下载之前检查软件是否已经安装并再次尝试安装,它非常简单并且与Windows 7和10兼容:
$file = 'HipChat-4.29.5.1662-win32.msi'
$link = "https://s3.amazonaws.com/hipchat-ops/hipchat4/windows/$file"
$soft_name = 'Hipchat'
$find = Get-WmiObject -Class Win32_Product -Filter "Name = `'$soft_name`'"
if ($find -eq $null) {
$tmp = "$env:TEMP\$file"
$client = New-Object System.Net.WebClient
$client.DownloadFile($link, $tmp)
msiexec /i $tmp /qn
del $tmp
echo "Tried installing $soft_name"
} else {
echo "ERROR: $soft_name is already installed."
echo $find
exit 1
}
exit 0
答案 2 :(得分:0)
要获取最新版本的Firefox,请尝试以下操作(将Outfile替换为您自己的有效位置);
Invoke-WebRequest -Uri "https://download.mozilla.org/?product=firefox-msi-latest-ssl&os=win64&lang=en-GB" -Outfile c:\temp\firefox.msi
我要安装;
start /wait msiexec /i C:\temp\Firefox.msi /quiet
答案 3 :(得分:0)
我认为 $msifile 分配需要移到 Download_MSI_FireFox_Installer 函数之外,否则,我会收到 InstallFireFox 函数中路径为空的错误。