天天看點

powershell在遠端windows server上登入并執行程式

分兩部分操作:

一。在遠端主機上執行相應的政策允許。

在遠端主機上開啟防火牆該元件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}

二。本地電腦上允許某些政策

PS> Start-Process powershell -Verb runAs

把遠端主機加入到本地powershell信任清單

PS> set-item wsman:\localhost\Client\TrustedHosts -value "remote-ip" -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 {

      write-host "program start finished."} 

}

'

本文轉自ting2junshui51CTO部落格,原文連結:http://blog.51cto.com/ting2junshui/1915700 ,如需轉載請自行聯系原作者