2016-07-14 38 views
1

我一直在處理批處理文件,我無法通過GPO(另一天,另一個問題)打開工作。所以我決定用每臺電腦手動完成。我有兩個exe和一個MSI。該exe的工作非常好。他們得到安裝,這一切都可以解決。然而,MSI並沒有。它給了我錯誤:無法打開安裝包。驗證軟件包是否存在並且您可以訪問該軟件包,或與應用程序供應商聯繫以確認這是一個有效的Windows Installer軟件包。安裝包無法打開批處理文件

現在,當我去網絡共享,並從那裏使用它,它工作得很好。所以我的代碼一定有問題。

下面的代碼:

@echo off 
IF NOT EXIST "C:\Program Files (x86)\Citrix\ICA Client\" (
pushd "\\KOPI-DC01\ACCURO Cloudwerx\ACCURO\1\" 
.\CitrixReceiver-4.4.1000.exe /silent 
) 
IF NOT EXIST "C:\Program Files (x86)\triCerat\Simplify Printing\ScrewDrivers Client v4\" (
pushd "\\KOPI-DC01\ACCURO Cloudwerx\ACCURO\2\" 
msiexec.exe /i ".\Screwdriver.msi" 
) 
IF NOT EXIST "C:\Program Files\Cloudwerx\CloudwerxPlugin\" (
pushd "\\KOPI-DC01\ACCURO Cloudwerx\ACCURO\3\" 
.\cloudwerx-setup.exe /silent 
) 
pause 

任何幫助將不勝感激,謝謝。

回答

1

我猜你的問題是在當前位置(由pushd命令設置)和工作目錄(不受pushd命令影響)之間的powershell區別。您可以使用[Environment]::CurrentDirectory財產看到PowerShell進程的工作目錄:

# C:\> [Environment]::CurrentDirectory = "c:\"  
# C:\> [Environment]::CurrentDirectory 
c:\  
# C:\> pushd C:\Temp  
# C:\Temp> [Environment]::CurrentDirectory 
c:\  
# C:\Temp> Get-Location 

Path                                
----                                
C:\Temp 

什麼是可能發生的是,使用msiexec.exe的工作目錄(即[Environment]::CurrentDirectory),而不是在調用當前PowerShell的位置。我只是指定msiexec的完整路徑:

msiexec.exe /i "\\KOPI-DC01\ACCURO Cloudwerx\ACCURO\2\\Screwdriver.msi" 
相關問題