Как взаимодействовать с удаленной машиной вне сеанса? - PullRequest
0 голосов
/ 21 января 2019

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

На первом этапе я настроил удаленное взаимодействие Powershell. Следующая команда работает:

PS $ Test-WSMan -ComputerName rmtComputer

wsmid           : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd
ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
ProductVendor   : Microsoft Corporation
ProductVersion  : OS: 0.0.0 SP: 0.0 Stack: 3.0

Пакеты программного обеспечения, которые должны быть установлены, находятся в общих сетевых ресурсах. К сожалению, не представляется возможным запустить эти установочные файлы напрямую. Как Кевин Маркетт объясняет в своей статье о Powershell , это связано с некоторой проблемой учетных данных двойного прыжка. Решение заключается в том, чтобы сначала скопировать установочный файл из общей папки в локальную папку, а затем запустить установку.

В той же статье он показывает 2 способа сделать это. Первый способ выглядит следующим образом:

Copy-Item -Path $file -Destination "\\$computername\c$\windows\temp\installer.exe"
Invoke-Command -ComputerName $computerName -ScriptBlock {
    c:\windows\temp\installer.exe /silent
}

Ни одна из этих 2 команд не работает для меня. Выполнение команды copy-item возвращает The network path was not found. Я могу подтвердить, что как компьютер, так и пользователь имеют доступ для чтения к соответствующей общей папке.

Выполнение команды invoke-command не возвращает никаких ошибок, но на рассматриваемом компьютере ничего не происходит.

Маркетт продолжает описывать другой способ сделать то же самое, используя удаленный сеанс:

$session = New-PSSession -ComputerName $computerName
Copy-Item -Path $file -ToSession $session -Destination 'c:\windows\temp\installer.exe'

Invoke-Command -Session $session -ScriptBlock {
    c:\windows\temp\installer.exe /silent
}
Remove-PSSession $session

Это, с другой стороны, работает отлично. Любой намек, который вы можете дать мне, почему это работает, а другой нет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...