1. 从文件服务器中下载软件并保存到本地D:\Temp目录下,然后分别执行安装。
RemoteInstall.ps1代码如下:
# 软件信息
$softwareList = @{
"QQ" = "\\SX-SERVER\共享文件夹\资讯\QQ_9.9.12.25234_64bit_Setup.exe"
"微信" = "\\SX-SERVER\共享文件夹\资讯\WeChatSetup.exe"
"有道翻译" = "\\SX-SERVER\共享文件夹\资讯\YoudaoDictSetup.exe"
"搜狗输入法" = "\\SX-SERVER\共享文件夹\资讯\sogou_pinyin_guanwang_14.6a.exe"
"谷歌浏览器" = "\\SX-SERVER\共享文件夹\资讯\126.0.6478.127_chrome_installer.exe"
"Adobe Acrobat Reader" = "\\SX-SERVER\共享文件夹\资讯\AcrobatReaderDC.exe"
}
# 本地保存目录
$localSaveDir = "D:\Temp"
# 检查本地保存目录是否存在,如果不存在则创建
if (-not (Test-Path -Path $localSaveDir -PathType Container)) {
New-Item -Path $localSaveDir -ItemType Directory | Out-Null
}
# 下载和安装软件
foreach ($software in $softwareList.GetEnumerator()) {
$softwareName = $software.Key
$remoteFilePath = $software.Value
$localSavePath = Join-Path -Path $localSaveDir -ChildPath "$softwareName.exe"
# 使用WebClient对象下载文件
$webClient = New-Object System.Net.WebClient
$webClient.DownloadFile($remoteFilePath, $localSavePath)
# 检查文件是否成功下载
if (Test-Path $localSavePath) {
Write-Output "$softwareName 安装程序已成功下载到本地路径: $localSavePath"
# 执行安装程序
Write-Output "正在安装 $softwareName ..."
Start-Process $localSavePath -Wait
Write-Output "$softwareName 安装完成."
} else {
Write-Error "下载 $softwareName 安装程序失败."
}
}
2. 远程安装共享打印机
Install-Printers.ps1代码如下:
# 定义安装打印机的函数
function InstallPrinter {
param(
[string]$PrinterName,
[string]$IPAddress
)
# 构建打印机的网络路径
$printerPath = "\\$IPAddress\$PrinterName"
# 尝试添加打印机
try {
# 使用 Add-Printer cmdlet 添加打印机
Add-Printer -ConnectionName $printerPath -ErrorAction Stop
Write-Host "打印机 $PrinterName 已成功安装."
} catch {
Write-Host "安装打印机 $PrinterName 失败: $_"
}
}
# 提示用户输入共享打印机 IP 地址
$printerIPAddress = Read-Host "请输入共享打印机 IP 地址 (例如 192.168.0.207)"
# 执行 net view 命令并获取输出
$netViewOutput = net view "\$printerIPAddress"
# 初始化打印机列表
$printers = @()
# 处理 net view 输出
foreach ($line in $netViewOutput) {
# 如果行包含 "Print" 关键字,则表示找到了共享打印机
if ($line -match "\s+Print\s+") {
# 提取打印机名称
$printerName = ($line -split '\s+Print\s+')[0].Trim()
# 构建打印机对象并添加到列表
$printer = New-Object PSObject -Property @{
Name = $printerName
IPAddress = $printerIPAddress
}
$printers += $printer
}
}
# 如果找到符合条件的共享资源,则输出打印机列表
if ($printers.Count -gt 0) {
Write-Host "共享打印机列表 (IP 地址为 $printerIPAddress):"
for ($i = 0; $i -lt $printers.Count; $i++) {
Write-Host "$($i+1). $($printers[$i].Name)"
}
# 提示用户选择要安装的打印机序号
$selection = Read-Host "请输入要安装的打印机序号"
$index = [int]$selection - 1
if ($index -ge 0 -and $index -lt $printers.Count) {
$selectedPrinter = $printers[$index]
# 调用安装打印机的函数
InstallPrinter -PrinterName $selectedPrinter.Name -IPAddress $selectedPrinter.IPAddress
} else {
Write-Host "无效的选择序号."
}
} else {
Write-Host "未找到在 IP 地址 $printerIPAddress 下共享的打印机."
}