远程安装 MSI 包在注销时不工作
Remote install MSI package not working when logged off
我正在处理的脚本有问题。该脚本的一部分应该远程安装 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服务器 2008 - 2016
- 脚本服务器:Windows服务器 2012 R2
- 域:是的,它们都在同一个域中。
- 用户:使用域管理员登录
- 网络:全部在同一个网络中
- 防火墙:
- TCP/5985 未阻止(用于远程 PowerShell)
- TCP/5986 未阻止(用于远程 PowerShell)
我刚刚找到了解决方案。我能够使用以下命令远程安装 MSI 包:
$product= [WMICLASS]"\$RemoteComputer\ROOT\CIMV2:win32_Product"
$product.Install("C:\FlexAgent\FlexNet Inventory Agent.msi")
即使在注销时也能正常工作。
我正在处理的脚本有问题。该脚本的一部分应该远程安装 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服务器 2008 - 2016
- 脚本服务器:Windows服务器 2012 R2
- 域:是的,它们都在同一个域中。
- 用户:使用域管理员登录
- 网络:全部在同一个网络中
- 防火墙:
- TCP/5985 未阻止(用于远程 PowerShell)
- TCP/5986 未阻止(用于远程 PowerShell)
我刚刚找到了解决方案。我能够使用以下命令远程安装 MSI 包:
$product= [WMICLASS]"\$RemoteComputer\ROOT\CIMV2:win32_Product"
$product.Install("C:\FlexAgent\FlexNet Inventory Agent.msi")
即使在注销时也能正常工作。