【发布时间】:2018-08-03 09:00:00
【问题描述】:
我正在处理的脚本有问题。此脚本的一部分应远程安装 MSI 包。问题是它只在我登录到目标服务器时才有效。
这是我正在使用的代码:
第一次尝试:
Invoke-Command -ComputerName $Computer -ScriptBlock {
cd "C:\FlexAgent"
Start-Process msiexec.exe -ArgumentList "/i 'FlexNet Inventory Agent.msi' /qn /l newlogfile.txt"
}
第二次尝试:
Invoke-Command -ComputerName $Computer -ScriptBlock {
cd "C:\FlexAgent"
Invoke-Expression "msiexec /i 'FlexNet Inventory Agent.msi' /qn /l logfile.txt"
}
第三次尝试:
Invoke-Command -ComputerName $Computer -ScriptBlock {
cd "C:\FlexAgent\"
& msiexec /i 'FlexNet Inventory Agent.msi' /qn '/l*v' 'logfile.txt'
}
文件夹:FlexAgent:
Directory: \\RemoteComputer\c$\FlexAgent
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 03.08.2018 09:47 ManageSoft upgrade agent
-a--- 08.08.2017 12:34 15203756 Data1.cab
-a--- 08.08.2017 12:34 3089408 FlexNet Inventory Agent.msi
-a--- 03.08.2018 11:26 2 logfile.txt
-a--- 29.05.2018 09:41 6985 mgssetup.ini
-a--- 08.08.2017 12:34 1308656 setup.exe
-a--- 08.08.2017 12:34 5350 Setup.ini
我无法在我定义的日志文件或事件查看器中的日志文件中找到任何进一步的信息。 正在创建日志文件,但它们是空的。
有没有一种无需登录即可在无人看管的情况下安装此 MSI 软件包的方法?
更多信息:
- 目标服务器:Windows Server 2008 - 2016
- 脚本服务器:Windows Server 2012 R2
- 域:是的,它们都在同一个域中。
- 用户:使用域管理员登录
- 网络:都在同一个网络中
- 防火墙:
- TCP/5985 未被阻止(用于远程 PowerShell)
- TCP/5986 未被阻止(用于远程 PowerShell)
【问题讨论】:
-
尝试
& msiexec /i 'FlexNet Inventory Agent.msi' '/qn' '/l*v' 'logfile.txt'而不是Start-Process或Invoke-Expression。logfile.txt有什么显示吗? -
感谢您的礼貌,但我们更愿意专注于手头的问题,因此请不要在您的问题中添加“提前致谢”之类的花言巧语。
-
我试过了。也没有用。日志文件“logfile.txt”是空的,但它是在我注销时创建的。
-
远程计算机上的
C:\FlexAgent中是否存在 MSI 文件? -
是的,它存在。我在帖子中添加了一个列表。
标签: powershell remote-access windows-server windows-installer invoke-command