Batch file WMI用于通过文本列表将MSI部署到多台计算机

Batch file WMI用于通过文本列表将MSI部署到多台计算机,batch-file,windows-installer,wmi,wmic,Batch File,Windows Installer,Wmi,Wmic,我在stackoverflow中搜索,找到了一些零碎的东西,但我被卡住了。 我无法访问我们的部署工具。PowerShell受到限制。我拥有执行此任务所需的所有计算机的管理员权限 64位Windows 7环境 代码我一直在努力工作- REM @ECHO OFF SETLOCAL EnableDelayedExpansion Set _computer=C:\Support\BatchTests\Chrome.txt ECHO ************************************

我在stackoverflow中搜索,找到了一些零碎的东西,但我被卡住了。 我无法访问我们的部署工具。PowerShell受到限制。我拥有执行此任务所需的所有计算机的管理员权限

64位Windows 7环境

代码我一直在努力工作-

REM @ECHO OFF
SETLOCAL EnableDelayedExpansion
Set _computer=C:\Support\BatchTests\Chrome.txt
ECHO *********************************************************
ECHO.
ECHO Installing Chrome on %_computer%. Stand by...
ECHO.
ECHO *********************************************************
Xcopy "\\network\path\to\msi\googlechromestandaloneenterprise64.msi" "\\%_computer%\C$\Support\" /E /C /H /R /Y
wmic /node:%_computer% product call install true,"","\\%_computer%\C$\Support\googlechromestandaloneenterprise64.msi"
REM DEL /Q "\\%_computer%\C$\Support\googlechromestandaloneenterprise64.msi"
我最初尝试单独使用wmic,但确定msi需要安装在远程机器上,而不是网络共享上

我也试过使用这个代码

    for /f %%i in (C:\Support\BatchTests\chrome.txt) DO (

    set pcname=%%i

    ECHO *********************************************************
    ECHO.
    ECHO Installing Chrome on %pcname%. Stand by...
    ECHO.
    ECHO *********************************************************
    Xcopy "\\Network\path\to\msi\googlechromestandaloneenterprise64.msi" "\\%pcname%\C$\Support\" /E /C /H /R /Y
    wmic /node:%pcname% product call install true,"","\\%pcname%\C$\Support\googlechromestandaloneenterprise64.msi"
    REM DEL /Q "\\%pcname%\C$\Support\googlechromestandaloneenterprise64.msi"
)
使用上面的代码,它通常可以工作,但是,它不会拉取新的“set变量”,而是保留第一个定义的变量(计算机名)

实用程序的使用非常有限,因此请将建议保存在vbs或批处理文件的范围内


提前谢谢。

当使用包含
WMIC/Node:
的PC名称的文本文件时,您应该在文件名前面加上
@
谢谢您的建议。我尝试直接使用wmic命令,但通过网络共享运行msi时出现问题。因此,必须将MSI复制到远程计算机,并使用install命令指向该文件。使用典型的wmic/node:@C:\computers.txt不起作用。我的评论只是对第一个代码段的修复,第二个代码段需要使用
!pcnameSetLocal EnableDelayedExpansion
进行编码>,或者不用麻烦设置它,只需使用
%%i
代替
%pcname%
。谢谢您!它工作得很好!