所以我目前有一个Powershell脚本,可以静默安装各种软件
我目前拥有的所有命令都完美无缺:
Start-Process 'C:\Files\Install files\Firefox' -ArgumentList "/S" -Wait
Start-Process 'C:\Files\Install files\Office' -ArgumentList "/s" -Wait
Start-Process 'C:\Files\Install files\Zeb' -ArgumentList "/S" -Wait
我现在想要实现的是“检查安装是否成功”。
我通过检查安装文件来启动程序:
Write-Host "Checking if install files are present..."
if(Test-Path 'C:\Files\Install files\')
{
Write-Host "Files located. Installation will begin"
Write-Host ""
} else
{
Write-Host "Files not located, please check the directory"
Write-Host ""
break
}
由于上面的代码正常工作,我认为我可以安装我的软件一样吗?但是使用软件目录作为测试路径函数:
Write-Host "Installing Firefox"
Start-Process 'C:\Files\Install files\Firefox' -ArgumentList "/S" -Wait
if (Test-Path C:\Program Files(x86)\Firefox)
{
Write-Host "Firefox succesfully installed!"
}else
{
Write-Host "Error, FireFox hasn't been installed"
}
....并继续这样做其他程序
我想'为什么不呢?'因为所有的PC都是相同的,我必须承认代码也有效。
但是有人会怎么判断这种方法呢?什么是替代品?
由于
答案 0 :(得分:2)
请注意,我认为这更像是服务器故障或超级用户的问题。
有些高端工具如Desired State Configuration可以处理所有这些,但它实际上取决于环境。我们在一个非现场数据中心内构建独立服务器,它更方便,设置更少,只需安装一个脚本即可安装和配置无法成像的所有内容。当然需要两个小时才能完成,但它无人值守,而且由于操作系统是从模板安装的,我们保证它们都完全一样。
如果硬件完全不同或者如果没有对操作系统进行成像以运行脚本,我可能不推荐这种方法,我曾经有一个批处理文件来部署客户桌面(回到WinXP时代),但最终还是把它切掉了直到检测模型并安装驱动程序,因为维护太麻烦了。如果不是由一个人维护,或者维护它的人可能/绝对不是长期工作人员,我也不会推荐这种方法。
总的来说,这取决于公司。 DSC当然是一种更专业,更完整的方法,更容易由多人维护,所以把它交给他们,如果他们不会为部署服务器和培训投入资源那么你就没有多少选择。
答案 1 :(得分:1)
我建议您查看更专业的内容,例如" PowerShell App Deployment Toolkit"。 (http://psappdeploytoolkit.com/) 你需要一些时间才能开始,但并不复杂。 它输出日志等。