执行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
     }
}

原文地址:https://www.cnblogs.com/resie/p/5092259.html