如何在 powershell 中使用 install-package cmdlet 安装多个包?
How to install multiple packages using install-package cmdlet in powershell?
我正在为我的学校设置一个包安装解决方案。您的所有软件包都是 .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'}
}
我遇到的错误是 The specified name ****** should not contain any wildcard characters.
我希望能够一次性安装我的软件包....知道如何安装吗?
您可以使用Get-Item
获取所有匹配通配符的文件并使用循环安装每个包:
Get-Item '\servername\share\repo\MSI\*.msi' | foreach { Install-Package $_ }
我正在为我的学校设置一个包安装解决方案。您的所有软件包都是 .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'}
}
我遇到的错误是 The specified name ****** should not contain any wildcard characters.
我希望能够一次性安装我的软件包....知道如何安装吗?
您可以使用Get-Item
获取所有匹配通配符的文件并使用循环安装每个包:
Get-Item '\servername\share\repo\MSI\*.msi' | foreach { Install-Package $_ }