2014-01-15 51 views
0

我有一個批處理文件,它使用gpresult/v並將輸出保存在文本文件中並將該文本文件複製到共享文件夾。這批當我在我的本地機器上運行時工作得很好,但是一旦我通過SCCM部署它,它說不能打開帶有錯誤代碼4的文件。我不知道文件中有什麼問題。從SCCM部署後批處理文件不運行

的代碼是這樣的:

@迴響

Gpresult的/ V>%計算機%的.txt

XCOPY%計算機%的.txt \一些路徑

+0

嘗試在第二行放置'pause'命令以查看批處理文件是否正在運行。如果它正在運行,則可能是當前文件夾中的權限問題(管理員默認爲system32文件夾),請嘗試使用'gpresult/v>「%userprofile%\ desktop \%computername%.txt」並查看如果該文件是在桌面上創建的。 – foxidrive

回答

1

錯誤4是「系統無法打開文件」,如同路徑無效或由於其他原因導致open()失敗。

  • 你知道程序運行在什麼目錄(CWD)嗎?
    這就是gpresult的結果發生的地方(如果輸出重定向成功)。
  • gpresult不會爲SYSTEM用戶生成有意義的用戶級別數據。
    也許你應該使用gpresult /v scope computer
  • 爲什麼你只在複製一個文件時使用xcopy?如果您正在複製目錄,則xcopy確實只具有增值(超過copy)。
    xcopy的行爲變化取決於您指定目標的方式。如果目標以目錄分隔符(反斜槓)結束,則xcopy將它視爲目錄。如果它不存在,並且目標不存在,xcopy會詢問您要做什麼,這會導致自動過程無限期地暫停以等待用戶輸入。

SCCM程序運行爲「NT AUTHORITY \ SYSTEM

當SCCM(2007)運行的程序,該程序不作爲一個普通用戶的身份運行。它作爲最高權限用戶(有點),SYSTEM運行。

此帳戶不是一個常規帳戶,許多設置和環境變量存在並且對於普通用戶而言是可預測的,這些變量對於SYSTEM而言是不同的或不存在的。 SYSTEM帳戶的配置文件中的一個特別令人沮喪的「功能」是它位於%WINDIR%\System32之下,因此無論何時只要引用與配置文件有關的任何內容,它都會受到文件系統重定向。

試試這個:使用psexec -ssysinternals)得到shell訪問的系統帳戶和在該環境中運行該命令,看看它的表現。這與我們可以進入像SCCM程序運行環境一樣接近。

當SCCM運行該命令時,CWD可能位於%WINDIR%\SysWOW64\CCM\之下的某個位置,並且可能使用32位版本的CMD.EXE調用。

0

我有一個類似於這個問題。所以我有一個運行的卸載蝙蝠。由於供應商的卸載,它會導致關閉Windows資源管理器UI。所以急於解決這個問題我添加了一個調用來打開explorer.exe。有人向我指出了這個問題。實際上,一旦他說我確切地知道他在說什麼,並且他的發言在哪裏。調用資源管理器。exe會很好,除了蝙蝠在系統環境下運行而不是用戶,所以當資源管理器重新啓動時,它將在系統桌面配置文件的幌子下啓動,而不是用戶的幌子。我知道還有辦法仍然在系統的僞裝下運行,但要在當前登錄的用戶配置文件下重新啓動瀏覽器。