通过 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
调用以递归地取消阻止目标文件夹中的所有文件(目标文件夹子树中的所有文件)。
我正在尝试将 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
调用以递归地取消阻止目标文件夹中的所有文件(目标文件夹子树中的所有文件)。