所有,
我正在尝试编写一个脚本来更新远程计算机上的程序,但是升级需要重新启动一次或两次。当我运行powershell脚本时,它将触发升级,并且计算机将重新启动一次,重新启动后,除非有任何用户帐户登录到计算机,否则升级将不会继续。发布用户登录后,升级将自动继续,升级过程将触发另一个重新启动帖子,说明升级已完成。
有没有办法做到这一点?以下是我正在尝试的。Invoke-Command -ComputerName $name -ScriptBlock { Unblock-File 'C:\temp\Install\VDAServerSetup_1912.exe'; Start-Process -FilePath C:\temp\Install\VDAServerSetup_1912.exe -ArgumentList '/components VDA', /disableexperiencemetrics, /enable_hdx_ports, /enable_hdx_udp_ports, /enable_real_time_transport, /enable_remote_assistance, '/includeadditional "Citrix Personalization for App-V - VDA"','/exclude "Personal vDisk","Machine Identity Service"', '/includeadditional "Citrix Personalization for App-V - VDA"', '/logpath "c:\becnet\xenapp"', /masterimage, /quiet, /virtualmachine, /disableexperiencemetrics, /optimize, /virtualmachine -wait}
我删除了复制代码,因为该部分工作正常。我面临的问题是,一旦在远程计算机上触发了上述代码,计算机将作为升级的一部分重新启动,但是一旦备份了计算机,除非有人登录到计算机,否则升级将被卡住。有什么方法可以无人值守吗?
正如下面的Larry所指出的,我在启用自动登录方面取得了成功,但是我想将这种方法用作最后的手段,还有其他方法可以实现吗?
最佳答案
您没有正确引用参数。 C $是一个错字。这是固定代码:
Copy-Item -Path $Source_vda_path -Destination "\\$($name)\C:\$($temp)\Install\VDAServerSetup_1912.exe" -Force
Invoke-Command -ComputerName $name -ScriptBlock "{ & Unblock-File 'C:\temp\Install\VDAServerSetup_1912.exe'; Start-Process -FilePath 'C:\temp\Install\VDAServerSetup_1912.exe' -ArgumentList '/components VDA', '/disableexperiencemetrics', '/enable_hdx_ports', '/enable_hdx_udp_ports', '/enable_real_time_transport', '/enable_remote_assistance', '/includeadditional "Citrix Personalization for App-V - VDA"','/exclude "Personal vDisk","Machine Identity Service"', '/includeadditional "Citrix Personalization for App-V - VDA"', '/logpath "c:\becnet\xenapp"', '/masterimage', '/quiet', '/virtualmachine', '/disableexperiencemetrics', '/optimize', '/virtualmachine', -wait}"
关于powershell - 即使遇到重新启动,也继续执行PowerShell脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59526890/