Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 尝试在powershell中远程运行批处理文件无效_Selenium_Batch File_Cmd_Webdriver_Powershell Remoting - Fatal编程技术网

Selenium 尝试在powershell中远程运行批处理文件无效

Selenium 尝试在powershell中远程运行批处理文件无效,selenium,batch-file,cmd,webdriver,powershell-remoting,Selenium,Batch File,Cmd,Webdriver,Powershell Remoting,我目前正在管理一个Selenium网格,其中20台远程PC充当服务器上单个集线器的节点。目前,当我想重新启动中心或节点并清除任何过时的chromedriver或chrome实例时,我必须远程访问每台机器。我正在尝试通过Powershell自动化此过程 到目前为止,我已经成功地编写了ps脚本来杀死PC上的任何chrome、chromedriver和java实例,然后重新启动集线器或节点。它们在每台机器上本地启动时工作,但在我尝试通过PSSession执行它们时失败 我已经在每台机器上成功地启用了远

我目前正在管理一个Selenium网格,其中20台远程PC充当服务器上单个集线器的节点。目前,当我想重新启动中心或节点并清除任何过时的chromedriver或chrome实例时,我必须远程访问每台机器。我正在尝试通过Powershell自动化此过程

到目前为止,我已经成功地编写了ps脚本来杀死PC上的任何chrome、chromedriver和java实例,然后重新启动集线器或节点。它们在每台机器上本地启动时工作,但在我尝试通过PSSession执行它们时失败

我已经在每台机器上成功地启用了远程会话,我可以调用命令来杀死现有的java和chrome实例,但我无法重新启动集线器或节点

集线器powershell脚本示例:

#This script kills any existing java process and runs StartHub.bat
Set-Location C:\Selenium
kill -Name java -Force -PassThru -ErrorAction Continue
Start-Process -FilePath "C:\Selenium\StartHub.bat" -PassThru -Verbose
bat文件如下所示:

java -jar C:\Selenium\selenium-server-standalone-3.4.0.jar -role hub -hubConfig "V:\ServerFiles\hubconfig.json"
我一直在使用无限制执行策略进行测试,我的网络管理员更改了GPO以允许我远程启动java进程,但它不起作用。我尝试了以下几种方法:

1:在远程服务器上输入PSSession并调用ps1文件:

C:\RestartHub.ps1
结果是现有的集线器实例被终止,但新的集线器实例没有打开

2:然后,我尝试使用ScriptBlock启动作业,调用cmd脚本以启动批处理文件:

Set-Location C:\Selenium
kill -Name java -Force -PassThru -ErrorAction Continue
Start-Job -ScriptBlock{cmd /c start "C:\Selenium\StartHub.bat"} -Name Hub -Verbose 
这将再次终止现有集线器实例,但启动脚本不会运行或以静默方式失败

我已经查看了远程机器上的安全日志,以查看是否存在任何问题,但PSSession似乎是正确的,使用了具有完全管理权限的正确用户

我还将远程计算机上的
ExecutionPolicy
更改为
restricted
,以查看是否显示了访问被拒绝的错误。我改回
无限制
,错误消失了


如果您有任何想法,我将不胜感激。

启动流程
将从可执行文件启动流程,您不能将bat文件用作可执行文件,
-FilePath
需要可执行文件的路径 见下文

Start-Process cmd -Argumentlist "C:\Selenium\StartHub.bat" -PassThru -Verbose

您是否尝试过在ScriptBlock中设置当前位置
-ScriptBlock{Set Location“C:\Selenium”;cmd/C start“C:\Selenium\StartHub.bat”}
我将bat文件更改为:
java-jar C:\Selenium\Selenium-server-standalone-3.4.0.jar-role hub-hubConfig“V:\ServerFiles\hubConfig.json”
并且我可以在本地启动中心,但不能通过远程会话启动。我将编辑到问题来表示这一点