powershell - 如何在 powershell 中使用 install-package cmdlet 安装多个包?
问题描述
我正在为我的学校设置包安装解决方案。你所有的包都是.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'}
}
我遇到的错误是指定的名称 ****** 不应包含任何通配符。
我希望能够一次安装我的包....知道怎么做吗?
解决方案
您可以使用Get-Item
获取与通配符匹配的所有文件并使用循环安装每个包:
Get-Item '\\servername\share\repo\MSI\*.msi' | foreach { Install-Package $_ }
推荐阅读
- npm - 如何递归 npm 安装所有依赖项
- php - 无法在 WordPress 上编辑 functions.php 文件
- mongodb - 将 MongoDB 迁移到 PostgreSQL 的工具
- download - “下载构建工件”实际上是做什么的?
- docker - 配置、扩展 Grafana Docker 容器
- php - laravel 5.7.15 419 抱歉,您的会话已过期。请刷新并重试
- ios - Xamarin iOS 故事板拉伸对象
- python - 如何爬取Goodreads并获取数据
- bash - 启动新的 mac 终端窗口时出现意外的 -bash 命令未找到错误
- scala - 如何将 Apache Spark 日志从驱动程序和从属设备重定向到使用 log4j 启动 Spark 作业的机器的控制台?