Я бы хотел установить программное обеспечение на некоторые из моих доменных компьютеров в режиме без вывода сообщений. Поскольку эти программные пакеты не имеют форму 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
Это, с другой стороны, работает отлично. Любой намек, который вы можете дать мне, почему это работает, а другой нет?