批量自动化应用程序安装

时间:2016-11-30 14:23:48

标签: windows powershell batch-file automation

我正在尝试编写一个自动安装远程应用程序应用程序的脚本。以下是我到目前为止的情况:

<?php while ( have_posts() ) : the_post(); ?>

    <div class="main-content">
        <div class="main-wrap">


            <div class="col-sm-12">
                <div class="breadcrumbs">
                    <?php if(function_exists('bcn_display'))
                {
                    bcn_display();
                }?>
                  </div>  <!-- breadcrambs ends here -->

            </div><!-- col-sm-12 ends here -->


            <?php 

                // check for rows (parent repeater)
                if( have_rows('product_page') ): ?>

            <div class="col-lg-12 row product-row">

                <?php 

                    // loop through rows (parent repeater)
                    while( have_rows('product_page') ): the_row(); ?>

                <div class="col-sm-12">
                            <div class="marque">
                                <span class="brand-lg"><img src="<?php the_sub_field('brand_image'); ?>" /></span>
                            </div>
                        </div>


                <?php 

                            // check for rows (sub repeater)
                            if( have_rows('post_repeater') ): ?>




                <div class="col-sm-12 product-item-row">

                <?php 
                        // loop through rows (sub repeater)
                    while( have_rows('post_repeater') ): the_row();?>

                <div class="col-sm-3 product-item">



                     <?php
                        $postobject = get_sub_field('product_post'); 
                        $image = wp_get_attachment_image_src(get_post_thumbnail_id( $postobject->ID ),'medium');
                        //echo "<pre>";print_r($postobject); echo"</pre>";
                        $image = $image[0];
                        //$new = get_field('new_product_item');
                        //echo $image;
                        ?>  


                    <a href="<?php echo get_permalink($postobject->ID);?>">

                         <?php if ( get_field( 'new_product_item',$postobject->ID) ): ?>

                          <img class="new-label-en" src="<?php bloginfo('template_directory');?>/images/label-en.png" />
                        <img class="new-label-fr" src="<?php bloginfo('template_directory');?>/images/label-fr.png" />
                         <img class="product-img" src="<?php echo $image;?>" width="100%" height="100%" />
                         <p class="product-name"><?php echo $postobject->post_title;?></p>
                        <p class="product-seemore"><?php echo $product_details_link_text;?></p>

                    <?php else: // field_name returned false ?>


                        <img class="product-img" src="<?php echo $image;?>" width="100%" height="100%" />
                        <p class="product-name"><?php echo $postobject->post_title;?></p>
                        <p class="product-seemore"><?php echo $product_details_link_text;?></p>


                    </a>

                    <?php endif; //if( get_sub_field): ?>

                </div><!-- col ends here -->

                 <?php endwhile; ?>



                </div><!-- col Product Items row here -->

                <?php endif; //if( get_sub_field('items') ): ?>

                <?php endwhile; // while( has_sub_field('to-do_lists') ): ?>

            </div><!-- col lg 12 ends here or row ends here -->


            <?php endif; // if( get_field('to-do_lists') ): ?>

            <?php endwhile; // end of the loop. ?>  





                <div class="lnk-top">
    <a href="#"><span class="icon-arrow-up up-arrow"></span><br>Top</a>
</div>


        </div><!-- main wrap ends here -->

        <div class="clr"></div>

    </div><!-- main content ends here -->

到目前为止,脚本没有像我预期的那样工作。我希望它安装应用程序然后我希望它创建一个名为C:\ Icons的目录并将应用程序数据复制到该文件夹​​,这样我就可以删除它所做的appdata条目,这些条目使用户配置文件的登录时间更长。此外,我在服务器上有一个文件夹,我想复制到本地桌面,该桌面包含我们使用的所有互联网快捷方式。这也无法正常工作:(

2 个答案:

答案 0 :(得分:1)

这应该适合你。

如果您提供要复制的源的完整位置,那么您是否真的需要所有pushd和popd。如果您正在执行文件,并通过它的完整通用命名约定(即C:\ Folder \ Test.txt)调用它,那么您不需要将当前目录更改为C:\ Folder,您可以从计算机文件系统中的任何位置运行该文件,因为您提供了完整的文件位置。

如果您只想通过提供文件名或文件的部分地址来运行文件,则需要更改到文件所在的目录,或者从您所在的位置向导演提供位置位于。 (例如,如果您在C:\ Folder1中,并且该文件位于C:\ Folder1 \ Folder2 \ Folder3 \ File.txt中,则需要使用以下地址。\ Folder2 \ Folder3 \ File.txt,因为您已经位于C:\ Folder1和。\充当您所在的当前目录的占位符\变量。)

REM Install Remote Icons
@Echo On

msiexec /i "\\Servername.com\it\RDP\Installers\ExercisePro.msi" /qn /norestart
msiexec /i "\\Servername.com\it\RDP\Installers\Excel.msi" /qn /norestart
msiexec /i "\\Servername.com\it\RDP\Installers\Word.msi" /qn /norestart
msiexec /i "\\Servername.com\it\RDP\Installers\Outlook.msi" /qn /norestart
msiexec /i "\\Servername.com\it\RDP\Installers\Allscripts EHR.msi" /qn /norestart
msiexec /i "\\Servername.com\it\RDP\Installers\Allscripts PM.msi" /qn /norestart
msiexec /i "\\Servername.com\it\RDP\Installers\MModal Allscripts EHR.msi" /qn /norestart

Call "\\Servername.com\M Modal\Fluency.Direct.9.1.65.7.6.4.v7\fd.client\install_silent.bat"

mkdir C:\Users\%USERNAME%\Icons

copy C:\Users\%USERNAME%\%APPDATA%\Local\Microsoft\Installer\*.* C:\Users\%USERNAME%\Icons /Y

copy \\Servername.com\Private IT\PC_Shortcuts\*.* \\%COMPUTERNAME%\%USERNAME%\Public\Desktop /Y

pause

注意: 我已在/ norestart中添加,以确保您的设备在任何安装后都不会重新启动,这将导致安装脚本终止。< / em>的

答案 1 :(得分:0)

您可以使用powershell远程处理来执行此任务。使用invoke-command参数检查-ComputerName以获取远程操作。使用Powershell版本5 Copy-Item支持FromSession ToSession参数来远程复制文件。您可以通过Start-Process运行msiexec。