• 执行powershell脚本


    打开powershell运行窗口:

    powershell.exe C:UsersAdministratorDesktopa.ps1 -a $a

    -a $a :  vbs脚本路径(如 C:hyper.vbs)

     例如:powershell.exe C:UsersAdministratorDesktopa.ps1 -a C:hyper.vbs

    a.ps1内容:

    #传入本机脚本路径
    param($a)
    #通过配置文件得到远程服务器名称
    $paths="C:UsersAdministratorAppDataRoamingMicrosoftWindowsHyper-VClient"
    $name=(Get-ChildItem $paths).Name
    $paths=$paths+$name.Trim()
    $xmldata = [xml](Get-Content $pathsVirtMgmt.VMBrowser.config)

    #xml文件通过各个节点得到所取得值三级节点下name=“BrowserComputerNames”的值
    $node =$xmldata.SelectNodes("configuration/Microsoft.Virtualization.Client.VMBrowser.BrowserConfigurationOptions/setting") | Where-Object { $_.Name -match "BrowserComputerNames" }
    $values= $node.value
    if($values -eq ""){
       #执行本地脚本
       cscript c:hyper-v.vbs
    }else{
        foreach ($ServerName in $values)
        {
            #通过远程服务器名称得到服务器IP
            $ip = (Get-WmiObject win32_networkadapterconfiguration -ComputerName $ServerName).IPAddress | Out-String
            $ip= $ip.split(":")[0]
            $ip=$ip.SubString(0,$ip.Length-4)
            $ip= $ip-replace " ",""
            $ip= $ip.Trim()
            #将本地主机上的Hyper.vbs复制到远程连接主机
            copy-item –Path $a –Destination \$ipc$hyper.vbs -Recurse
            #定义会话
            $session1 = new-pssession –computerName $ServerName
            #在会话中远程执行脚本
            Invoke-Command -Session $session1 -ScriptBlock {cscript c:hyper.vbs}
            #将远程主机上的执行结果文件复制到本地C盘
            copy-item –Path \$ipc$UsersAdministratorDocuments*_chk.xml –Destination C:  -Recurse
            #删除远程主机上的vbs文件和结果文件
            del \$ipc$UsersAdministratorDocuments*_chk.xml
            del \$ipc$hyper.vbs
         }
    }

  • 相关阅读:
    JVM体系结构和工作方式
    ClassLoader工作机制
    Javac编译原理
    类与类之间的几种关系
    一周总结汇总_2016-09-04
    一周规划汇总_2016-09-04
    Java基础知识笔记(一:修饰词、向量、哈希表)
    控制反转IoC简介
    DBCP连接池简介
    Struts与Struts2的区别
  • 原文地址:https://www.cnblogs.com/resie/p/5092259.html
走看看 - 开发者的网上家园