Невозможно распаковать папку при запуске на удаленном ПК - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь распаковать папку, расположенную на общем диске в корне C:\ на удаленном ПК, но постоянно получаю ошибки, как мне исправить этот Powershell?

$Computers = "LN-T48-PF11BL57"
Invoke-Command -Computername $Computers -ScriptBlock {
         Expand-Archive -LiteralPath '\\LNAPPS\APPS\Adobe iManage Fix\Program Files (x86).zip' -DestinationPath C:\ -Force } -Verbose

Write-Host "Enter to Exit"

Возвращаетсяследующая ошибка:

A positional parameter cannot be found that accepts argument '\\LNAPPS\APPS\Adobe iManage Fix\Program Files (x86).zip'.  
    + CategoryInfo          : InvalidArgument: (:) [Expand-Archive], ParameterBindingException  
    + FullyQualifiedErrorId : PositionalParameterNotFound,Expand-Archive  
    + PSComputerName        : LN-T48-PF11BL57

1 Ответ

0 голосов
/ 28 марта 2019

Несколько вещей здесь:

  1. Помните, что в Windows balk отбрасывает вещи в корне c:.
  2. Итак, мы должны предполагать, что \ LNApps - это имя сервера, а \ APPS - это имя сервера? папка, настроенная на этом сервере?
  3. Наконец, если на сервере не запущена PowerShell v5, Командлет Expand-Archive отсутствует.

Отсюда это ...

: недействительный аргумент: (:) [Expand-Archive], ParameterBindingException

(Get-CimInstance -ClassName CIM_OperatingSystem).Caption
Microsoft Windows Server 2012 R2 Standard

$PSVersionTable


Name                           Value
----                           -----
PSVersion                      4.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.42000
BuildVersion                   6.3.9600.19170
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.2



Get-Command -Name '*Expand-archive*'

# No results



(Get-CimInstance -ClassName CIM_OperatingSystem).Caption

Microsoft Windows 10 Pro

$PSVersionTable


Name                           Value
----                           -----
PSVersion                      5.1.17763.316
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0, 5.0, 5.1.17763.316} 
BuildVersion                   10.0.17763.316
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1




Get-Command -Name '*Expand-archive*'


CommandType     Name               Version    Source
-----------     ----               -------    ------
Function        Expand-Archive     1.0.1.0    Microsoft.PowerShell.Archive

Если этого командлета нет, вам нужно использовать пространство имен .Net, System.IO.Compression.FileSystem , для решения этого варианта использования.

может использоваться для сжатия или извлечения файлов с использованием этого класса. В следующем примере будут сжаты файлы, хранящиеся в c: \ testing Папка:

Add-Type -Assembly 'System.IO.Compression.FileSystem'
[System.IO.Compression.ZipFile]::CreateFromDirectory('c:\testing', 'c:\testing.zip','Optimal',$false)

Если вы хотите извлечь файлы, используйте метод ExtractToDirectory:

[System.IO.Compression.ZipFile]::ExtractToDirectory('c:\testing.zip', 'c:\newtest')
...