powershell 远程启动 没有界面 前台显示启动程序

powershell远程启动程序,任务管理器里有,但是前台没有界面,即使是有UI界面的程序;

怎么办了,可以使用SCHTASKS 启动临时仅仅执行一次的任务,即可正常显示拉...

 

ps1 脚本代码:

 

$Username = '服务器用户名'
$Password = '服务器的密码'
$ComputerName='服务器的IP或网络名'
$pass = ConvertTo-SecureString -AsPlainText $Password -Force
$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$pass

#远程获取服务器的时间  ;设定为几分钟之后,或者不获取,直接使用固定的时间;

#以对象服务器时间为准; 必须在当前时间之后,不然会报错
$tmpTime = Invoke-Command -ComputerName $ComputerName -ScriptBlock { get-date -format 'HH:mm' } -credential $Cred  

$tmpTimeName = Invoke-Command -ComputerName $ComputerName -ScriptBlock { get-date -format 'YYMMDDHHmm' } -credential $Cred  

$Hour=[int]($tmpTime.SubString(0,2))

$Minute=[int]($tmpTime.SubString(3,2))

#设定为当前时间,一分钟之后 ;注意超过23点或者59分会出错

$Minute=$Minute+1

if($Minute -gt 59){

$Minute=0

$Hour=$Hour+1

if($Hour -gt 23){

$Hour=0

}

}

#格式化输入 ,开始时间--MM:HH格式

$StartTime = "{0:d2}:{1:d2}"  -f  $Hour,$Minute

#启动的程序,如果有空格的,要用‘’框起来

$Cmd="'xxx:/xxx/xxx.exe'"

$ScriptDelete=[ScriptBlock]::Create(\"SCHTASKS.EXE /delete /sc once /tn tmpTask /tr $Cmd /st $StartTime /f\") 

$Script=[ScriptBlock]::Create("SCHTASKS.EXE /create /sc once /tn tmpTask /tr $Cmd /st $StartTime /f")

#可以打印命令到本地

#add-Content -path c:/xxx.log -value $Script

#先删除旧的

Invoke-Command -ComputerName $ComputerName -ScriptBlock $ScriptDelete -credential $Cred 

Invoke-Command -ComputerName $ComputerName -ScriptBlock $Script -credential $Cred  

 

 

你可能感兴趣的:(服务器优化,server,运维)