我在OSD序列中有一个“运行PowerShell脚本”步骤。
此脚本将一些文件复制到某个位置,然后运行可执行文件。
如果我使用ROBOCOPY复制文件,我会得到一个退出代码1(文件复制ok)和可执行文件启动,做它所需要的,并愉快地退出。
如果我使用XCOPY (外部调用)或copy (PS Cmdlet) --这些文件仍然复制并降落在正确的位置,请使用代码0退出,但是可执行文件不会启动,也不会执行它的目的。
有什么想法吗?
示例代码(不工作:)
if (!(Test-Path "C:\Installs\sx1install")){New-Item -ItemType Directory -Path "C:\Installs\sx1install" -Force}
Copy-Item . C:\Installs\sx1install -Recurse -Force
.\setup.exe /s /f1"c:\installs\sx1install\setup.iss"工作:
robocopy .\ C:\Installs\sx1install /E /R:0 /W:0
.\setup.exe /s /f1"c:\installs\sx1install\setup.iss"在这两种情况下,C:\Installsx1install文件夹创建,将完全填充所有所需的文件和文件夹(包括子文件夹等),但setup.exe在第一个示例中不起作用。
机器人复制是什么使它工作/不工作的?
不工作的脚本一次在窗口中完美地工作,方法是对脚本包的位置进行设置,然后执行。
我们需要尝试找到一种方法来执行并返回0,因为返回代码1破坏了任务序列。如果可执行文件返回1,我们需要停止TS,因为这是构建的关键部分,所以只将成功代码设置为1,或者继续或错误不是一种选择。
2012年SCCM R2 CU3 // MDT 2012 /通过MDT部署8.1 Pro
发布于 2015-12-21 14:38:32
如果使用Robocopy,您为什么要担心Xcopy,为什么不直接使用它呢?
另外,为什么要手动复制文件,而不是仅仅创建包或应用程序,指定这些文件的原始位置作为源,然后让任务序列处理复制文件以准备安装?如果您担心为您的setup.iss安装自动化文件指定完整(非相对)路径,那么只需在setup.exe的命令行中指定"-s“,它就应该告诉它在同一个文件夹中查找"setup.iss”文件,而不需要指定路径或文件名(因为它们都被称为"setup.exe=iss“)。这将使它:
.\setup.exe -s否则,您的smsts.log、AppEnforce.log、execmgr.log文件在失败时会说什么?
https://serverfault.com/questions/744469
复制相似问题