通过 Remote PowerShell 远程安装程序

Installing Program remotely through Remote PowerShell

我正在尝试将 ActivClient 远程安装到某些机器上,我将文件单独复制到 Public 下载。

我 运行 遇到一个问题,当我尝试 运行 这个脚本时,它 运行 在我的机器上本地运行。为此,我需要 运行 Deploy-Application.PS1 文件。

我也不知道如何取消阻止整个文件夹,有几个子文件夹和文件我想取消阻止。

我无法通过 RDP 远程进入计算机,因为我需要安装 ActivClient 才能远程进入。远程 PowerShell 是我能找到的唯一方法运行。

如果我缺少信息或需要提供更多信息,请告诉我。


$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){

Write-Host "Entering Remote Powershell Session"

$PSSession = New-PSSession -Name $CName

Invoke-Command -Session $PSSession -ScriptBlock{

Get-ChildItem "C:\Users\Public\Downloads\SDC NIPR - ActivClient v7.2.x - 210811_18NOV" | Unblock-File

cd "C:\Users\Public\Downloads\SDC NIPR - ActivClient v7.2.x - 210811_18NOV" 

.\Deploy-Application.ps1 Install 'NonInteractive'

pause

}
  • 使用New-PSSession-ComputerName $CName,而不是New-PSSession -Name $CName

    • -Name 只给正在创建的会话一个友好名称,它与你的目标计算机。在没有 -ComputerName 参数的情况下,local 机器是(有点无用的)目标,这就是为什么本地机器上的脚本 运行。

    • 请注意,如果您只对每台远程计算机远程调用 Invoke-Command 一次,则无需显式创建会话,而是可以将 -ComputerName $CName 直接与 Invoke-Command:

      一起使用
      # No need for New-PSSession.
      Invoke-Command -ComputerName $CName -ScriptBlock { ... }
      
  • -Recurse -File 添加到您的 Get-ChildItem 调用以递归地取消阻止目标文件夹中的所有文件(目标文件夹子树中的所有文件)。