使用BAT / PS脚本自动安装

时间:2015-04-14 16:17:03

标签: windows powershell batch-file automation wix

我一直在尝试自动安装我的某个应用程序,但遇到了一些障碍,我真的需要一些帮助。

目前,我们正在使用戴尔的KACE技术将安装程序推送到本地计算机。安装程序作为SYSTEM用户运行,意味着它没有,也无法直接访问网络共享(稍后相关)。

应用程序安装工作流程如下:
停止本地安全服务以允许软件安装
删除映射到驱动器号X的任何内容
映射网络驱动器X \ test \ test
TestApp.exe / s
msiexec / i Test.msi / quiet
启动本地安全服务以允许软件安装
将快捷方式文件复制到桌面

安装本身有1个必须运行的可执行文件和1个MSI。 EXE安装大型机应用程序。 MSI文件在本地安装一些文件,然后注册位于该映射驱动器上的6个DLL文件。

这就是问题所在 - 因为这些文件必须位于该共享驱动器上,并且安装程序正在以SYSTEM身份运行 - >系统帐户帐户无法访问映射的驱动器以注册文件,因此安装失败。

我受到以下事实的限制:我不能简单地在批处理文件中以明文形式存储用户名/密码。

到目前为止,这是我的代码:

REM Stopping McAfee Services
echo Stopping McAfee Services.
net stop mcshield
net stop mcafeeframework

REM Map Network Drive
echo Mapping Network Drive
net use X: /delete /y
net use X: \\test\test

(Here is where I need help - Is there a way to force a username/password prompt here for the user? I basically just want the user to authenticate to the X drive mapping, which will allow the installation to move forward)

echo Starting Test 1 Installation
Test1.exe /s /v"/qb"
echo Starting Test 2 Installation
msiexec /i Test2.msi /quiet
(If the drive has not been mapped by this point, the installation fails as the SYSTEM account can't access the drive)

echo.

REM Restarting Mcafee Services
echo Starting McAfee Services.
net start mcshield
net start mcafeeframework
echo.

REM Copy Shortcut
xcopy "shortcut\*" "C:\Users\public\desktop"

可替换地,

可以/我应该将其转换为PS脚本吗?我知道PS比批处理更强大,但不知道该怎么做。

2 个答案:

答案 0 :(得分:0)

如果通过强制身份验证提示,您的意思是需要人工输入(并且您不能远程运行此脚本),那么此行应与现有登录会话进行交互并请求凭据:

start explorer \\test\test
echo After you have entered network credentials
pause

一旦用户输入有效的,剩下的脚本就可以继续

net use X: \\test\test

答案 1 :(得分:0)

在对这个问题进行了几周的思考之后,我决定采用一种新的方法。

我使用简单的NET USE创建了一个新的批处理文件,并以纯文本形式传递了访问网络共享的服务帐户的凭据。接下来,我将批处理编译成可执行文件。它确实不是最优雅的解决方案,但它足以满足我们目前的需求。

感谢大家的帮助!