Powershell后台如果Ping脚本

Powershell后台如果Ping脚本,powershell,if-statement,ping,Powershell,If Statement,Ping,我有一个旧的CMD脚本,我想将其转换为在后台运行的Powershell脚本,CMD脚本: @echo off timeout /t 300 /nobreak ping -n 1 -i 135 -w 130 192.168.1.250 if errorlevel 1 goto Ende goto Program :Program start "" "C:\Program Files (x86)\XXX\XXX.exe" Exit :Ende Exit 脚本检查路由器是否可ping,如果是,则启

我有一个旧的CMD脚本,我想将其转换为在后台运行的Powershell脚本,CMD脚本:

@echo off
timeout /t 300 /nobreak
ping -n 1 -i 135 -w 130 192.168.1.250
if errorlevel 1 goto Ende
goto Program
:Program
start "" "C:\Program Files (x86)\XXX\XXX.exe"
Exit

:Ende
Exit
脚本检查路由器是否可ping,如果是,则启动程序。 我在CMD或Powershell方面完全没有经验(请参见Goto我会尝试以下方法:

Ping-AndLaunch.ps1:

Start-Sleep -Seconds 300

if(Test-Connection "192.168.1.250" -Count 1 -TimeToLive 135) {
    & "C:\Program Files (x86)\XXX\XXX.exe"
}
启动命令(隐藏PowerShell窗口):

“1.部署一个将执行策略设置为远程签名的策略,您必须对脚本进行签名

  • 创建一个.bat文件,在启动时将打开powershell并运行该命令。这里的警告是,正确获取开关非常重要。如果这些开关需要特定于运行脚本的用户,请不要使用-noprofile。如果希望它在后台以静默方式运行,则批处理文件的外观如下所示
  • powershell.exe-executionpolicy bypass-WindowsStyle hidden-nologo-file“name\u of_script.ps1”

    编辑:如果您的文件位于另一个UNC路径上,该文件将如下所示。-文件“\server\folder\script\u name.ps1”

    这些切换将允许用户通过双击批处理文件来执行PowerShell脚本。没有窗口,没有版权标识,也没有用户交互。这样做的好处是,用户看不到背景噪音。我最近不得不这样做。它不会干扰所有用户的执行策略


    如果可以运行带有-bypass标志的脚本,确实会让您怀疑您的环境有多安全。同时请记住需要管理写入权限的事项。但是,我上面所说的应该为您指明正确的方向。只需在打开PowerShell的一行中创建一个.bat文件。它感觉很笨重(确实如此),但可以正常工作。”

    首先,谢谢,还有一个问题,我如何让Powershell脚本在后台运行?你是什么意思?不显示任何内容?是的,不打开Powershell窗口。如果没有启动命令,是否无法运行隐藏的脚本?脚本应该作为组策略运行,我认为我不能使用启动命令,不是吗这里,对不起,这是我唯一知道的。
    powershell -File .\Ping-AndLaunch.ps1 -WindowStyle Hidden
    
    This is a post by IAMGr00t on community.spiceworks.com