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

如何通过PSSession调用PowerShell 7执行原PS5环境脚本?

在PowerShell 7远程会话中执行脚本的方法

要让原脚本切换到PowerShell 7环境执行,只需调整远程会话的创建方式,并修正变量传递逻辑:

  1. 指定PowerShell 7会话配置
    创建远程会话时,通过-ConfigurationName参数指定PowerShell 7的会话配置。默认情况下,PS7安装后会自动注册名为PowerShell.7的配置(若远程机器未注册,需先在目标机器上运行Register-PSSessionConfiguration -Name PowerShell.7 -Force完成配置)。

  2. 修正远程变量引用
    远程会话无法直接访问本地变量,必须在变量前添加Using:前缀,才能将本地变量的值传递到远程环境。

修改后的完整脚本:

$Tenant = 'user'
$TenantPass = ConvertTo-SecureString 'pwd' -AsPlainText -Force
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $Tenant, $TenantPass

# 创建PowerShell 7远程会话
$s = New-PSSession -ComputerName 'sv1' -Credential $credential -ConfigurationName PowerShell.7

Invoke-Command -Session $s -Command { 
   # 使用Using:前缀传递本地变量
   & 'C:\file.ps1' -TenantUname $Using:Tenant -newMail '<AD_email/>' -licensa '<CodigoExterno/>' -estado $Using:<isActivar/>
}
Remove-PSSession $s

如果不确定远程机器上的PS7会话配置名称,可在目标机器上执行Get-PSSessionConfiguration命令,查看已注册的PowerShell 7相关配置名称后替换即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:17:53