Sccm-2012

SCCM OSD 問題

  • December 21, 2015

我在 OSD 任務序列中有一個“執行 PowerShell 腳本”步驟。

此腳本將一些文件複製到某個位置,然後執行執行檔。

如果我使用 ROBOCOPY 複製文件,我會得到一個退出程式碼 1(文件複製正常)並且執行檔被觸發,執行它需要的操作並愉快地退出。

如果我使用 XCOPY(外部呼叫)或 Copy-Item(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:\Installs\sx1install 文件夾都會創建,並完全填充所有必需的文件和文件夾(包括子文件夾等) - 但 setup.exe 在第一個範例中不起作用。

robocopy 是什麼使這項工作/不工作?

通過對腳本包的位置設置位置然後執行,非工作腳本在 Windows 中完美執行。

我們需要嘗試找到一種方法來執行它並返回 0 作為返回碼 1 會破壞任務序列。如果執行檔返回 1,我們需要停止 TS,因為這是我們建構的關鍵部分,因此僅將成功程式碼設置為 1 或繼續或錯誤不是一個選擇。

SCCM 2012 R2 CU3 // MDT 2012 // 通過 MDT OSD TS 部署 8.1 Pro

如果使用 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