码迷,mamicode.com
首页 > Windows程序 > 详细

powershell在远程windows server上登录并执行程序

时间:2017-04-14 10:31:54      阅读:389      评论:0      收藏:0      [点我收藏+]

标签:powershell

分两部分操作:

一。在远程主机上执行相应的策略允许。

在远程主机上开启防火墙该组件Windows Remote Management (Http-In)允许为public

在远程主机上开通5985端口。

powershell run as administrator

PS> Start-Process powershell -Verb runAs

PS> enable-psremoting -force


PS> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

PS> set-item wsman:\localhost\Client\TrustedHosts -value "remote-ip" -force

PS> set-item WSMan:\localhost\Shell\MaxMemoryPerShellMB -Value 0 -Force


powershell 或者进程号:$id=Get-Process -name explorer* | Select-Object id | ForEach-Object -Process{$_.id}




二。本地电脑上允许某些策略

powershell run as administrator

PS> Start-Process powershell -Verb runAs

PS> enable-psremoting -force



把远程主机加入到本地powershell信任列表

PS> set-item wsman:\localhost\Client\TrustedHosts -value "remote-ip" -force

PS> set-item WSMan:\localhost\Shell\MaxMemoryPerShellMB -Value 0 -Force


在本机上允许执行powershell脚本

PS> set-executionpolicy -executionpolicy unrestricted




脚本内容:

$remoteUsername = "username" 

$remotePassword = "password" 

$remoteHostname = "remote-ip"


$process="pro-name"

 

$securePassword = ConvertTo-SecureString -AsPlainText -Force $remotePassword 

$cred = New-Object System.Management.Automation.PSCredential $remoteUsername, $securePassword

 

Invoke-Command -ComputerName $remoteHostname -Credential $cred -ScriptBlock { 

   Write-Host "Hello, World (from $env:COMPUTERNAME)" 

   if($process){

      stop-process -name $process

      start-sleep -seconds 2

      start-process "C:\path\to\program.exe"

      write-host "program restart finished."

   } else {

      start-process "C:\path\to\program.exe"

      write-host "program start finished."} 

}



powershell在远程windows server上登录并执行程序

标签:powershell

原文地址:http://ting2junshui.blog.51cto.com/975290/1915700

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!