我正在为我的学校设置软件包安装解决方案。您所有的软件包均为.msi。我们正在使用Powershell软件包管理器来安装所有内容。我希望能够从远程服务器上一个接一个地推包。
一次安装一个软件包并提供msi的确切路径时,它将起作用。但是,由于我的代码不接受通配符(*),因此所有尝试进行大规模自动安装的尝试均失败了。
这是我的代码:
$Computers = Get-Content -Path "E:\servername\share\computer\test.txt"
$SharePath = "\\server.domain.ca\share\repo\MSI"
$Cred = Get-Credential $env:USERNAME
foreach ($Computer in $Computers)
{
$Computer
Invoke-Command -ComputerName $Computer -Credential $Cred -ScriptBlock {
$null = New-PSDrive -Credential $using:Cred server -Root (Split-Path -Parent $using:SharePath) -PSProvider FileSystem
Install-Package '\\servername\share\repo\MSI\*.msi'}
}
我遇到的错误是指定名称******不应该包含任何通配符。
我希望能够一次安装我的软件包。...知道如何做吗?
答案 0 :(得分:0)
您可以使用Get-Item
获取与通配符匹配的所有文件,并使用循环安装每个软件包:
Get-Item '\\servername\share\repo\MSI\*.msi' | foreach { Install-Package $_ }