powershell - 运行 EXE 并稍后发送文本
问题描述
有什么方法可以在后台运行 Powershell 以启动 EXE 并等待获取消息“输入服务名称”然后写入“xxx”
注意:我不想使用 SendKeys 或需要 UI 的功能也不支持 EXE 参数来传递它
样本:
test.exe VB.NET 控制台应用程序。如何向应用程序发送“是”以启动服务。
模块测试
Sub Main()
Console.WriteLine("Input 'Yes' to Start Server")
Dim MyX = Console.ReadLine
If MyX = "Yes" Then
Console.WriteLine("Service Started ...")
Else
Console.WriteLine("Job ESC ...")
End If
End Sub
结束测试
电源外壳
$s = New-PSSession -ComputerName "localhost"
调用命令 -Session $s -ScriptBlock { C:\test\test.exe 是
删除-PSSession $s
鲁斯尔特:
PS C:\Windows\system32> C:\Users\e000136\Desktop\Untitled1.ps1
输入“是”启动服务器
工作ESC ...
解决方案
好吧,我们在这里帮助您解决您遇到问题的代码,但是,您没有显示任何问题。
因此,请遵循 LotPings 的建议。
然而,为了不让你空手而归。只要您知道自己想要什么以及如何去做,几乎任何事情都是可行的。再次:
您正在尝试的代码在哪里?
你研究了什么?
PowerShell 有作业 cmdlet。看看帮助文件中的例子就知道如何使用了。
Get-Command -Name '*job' | Format-Table -AutoSize
# get function / cmdlet details
(Get-Command -Name Start-Job).Parameters
Get-help -Name Start-Job -Full
Get-help -Name Start-Job -Online
Get-help -Name Start-Job -Examples
(Get-Command -Name Get-Job).Parameters
Get-help -Name Get-Job -Full
Get-help -Name Get-Job -Online
Get-help -Name Get-Job -Examples
(Get-Command -Name Receive-Job).Parameters
Get-help -Name Receive-Job -Full
Get-help -Name Receive-Job -Online
Get-help -Name Receive-Job -Examples
把一些东西放在一起,如果它不起作用就回来。好吧,如果你还没有的话。
另请参阅,如果您以前没有使用过工作。
OP 更新
感谢您的代码,但如果您的 exe 代码有这个作为参数,那么只需将其传递...</p>
$s = New-PSSession -ComputerName "localhost"
Invoke-Command -Session $s -ScriptBlock { C:\test\test.exe } -ArgumentList 'Yes'
Remove-PSSession $s
另请参阅: PowerShell – 使用远程管理和 Invoke-Command 将参数作为变量传递
-参数列表
在命令中提供局部变量的值。在远程计算机上运行命令之前,命令中的变量会被这些值替换。在逗号分隔的列表中输入值。值按它们列出的顺序与变量相关联。ArgumentList 的别名是 Args。
ArgumentList 参数中的值可以是实际值,例如 1024,也可以是对局部变量的引用,例如 $max。
要在命令中使用局部变量,请使用以下命令格式:
{param($\[, $\]...) \} -ArgumentList \ -or- \
param 关键字列出了命令中使用的局部变量。ArgumentList 按照列出的顺序提供变量的值。
推荐阅读
- javascript - 为什么 window.close 不适用于多个窗口
- qt - QML 是否支持通过“as”关键字进行类型转换?
- c# - .Net Core 2.0 与 .Net Core 2.1 兼容
- c# - IrcDotNet 连接错误 验证失败,因为远程方在使用 SSL 时关闭了传输流
- ruby-on-rails - 获取所有不带附件的记录
- html - 使用 echarts 调整折线图系列标签的位置
- javascript - 如果网页正在移动设备上打开如何在反应 js Web 应用程序中打开电话屏幕
- bootstrap-4 - Bootstrap v4.1 模态在 Firefox 中不起作用
- amazon-web-services - 如何通过自动缩放来扩展 ecs 集群?
- hadoop - 如何更新配置单元中分区表中的某些行?