You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过远程PowerShell安装ActivClient的脚本异常及目录解锁问题咨询

ActivClient远程安装脚本问题修复方案

核心问题修复点

1. 远程触发安装失败原因

  • 原脚本中New-PSSession仅指定了会话名称,未添加-ComputerName参数指向目标设备,导致会话创建在本地,所有命令仅在本地执行
  • 远程PowerShell会话默认执行策略限制第三方脚本运行,未显式绕过策略会导致Deploy-Application.ps1无执行权限
  • 相对路径调用脚本在远程会话中容易出现路径识别错误,需使用绝对路径配合调用运算符执行
  • 远程会话无交互界面,pause命令会导致会话无限阻塞无法返回执行结果

2. 批量解锁子目录下所有文件的方法

原Get-ChildItem未添加递归参数,仅会处理目标根目录下的第一层文件,添加-Recurse参数遍历所有子目录,搭配-File参数仅针对文件生效,避免无效处理文件夹对象。

修正后完整脚本

$mypath = $MyInvocation.MyCommand.Path
$Path = Split-Path $mypath -Parent

[void][Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')

$title = 'Computer Name'
$msg   = 'Enter the Computer Name you need to reinstall ActivClient on:'

$CName = [Microsoft.VisualBasic.Interaction]::InputBox($msg, $title)

if (Test-Connection -ComputerName $CName -Count 1 -Quiet){
    Write-Host "正在进入远程PowerShell会话"
    # 新增-ComputerName参数指定目标设备
    $PSSession = New-PSSession -ComputerName $CName -Name "ActivClientInstall_$CName"

    Invoke-Command -Session $PSSession -ScriptBlock{
        $targetPath = "C:\Users\Public\Downloads\SDC NIPR - ActivClient v7.2.x - 210811_18NOV"
        # 新增递归、文件筛选参数遍历所有子目录下的文件解锁
        Get-ChildItem -Path $targetPath -Recurse -File -Force | Unblock-File
        
        $installScript = Join-Path -Path $targetPath -ChildPath "Deploy-Application.ps1"
        # 显式绕过执行策略,用绝对路径调用安装脚本
        & powershell.exe -ExecutionPolicy Bypass -File $installScript Install 'NonInteractive'
        Write-Output "目标设备安装命令执行完成,退出码:$LASTEXITCODE"
    }
    # 执行完成后清理会话
    Remove-PSSession -Session $PSSession
}
else {
    Write-Error "无法连通目标设备 $CName,请检查设备名和网络状态"
}

部署注意事项

  • 运行脚本的账号需具备目标设备的本地管理员权限
  • 目标设备需提前开启WinRM服务(远程PowerShell的依赖服务)
  • 批量多设备部署时,可将弹窗输入设备名的逻辑替换为从TXT文件读取设备列表循环执行,无需逐个输入

内容的提问来源于stack exchange,提问作者Fluffarmy223

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 22:06:05