java - 当用户未使用远程桌面登录时,无法运行 powershell.exe 并使用 Invoke-WmiMethod 执行 ps1 文件
问题描述
我正在尝试执行远程计算机中的powershell脚本。exec.ps1
我正在使用库中的java代码中的以下命令winrm4j
。
$execProc = Invoke-WmiMethod -path win32_process -name create -argumentlist 'powershell -file "C:\Users\Administrator\AppData\Local\Temp\powershell_script\exec.ps1"';Write-Output $execProc.ProcessId | Out-File 'C:\Users\pid.txt'
我的 exec.ps1 文件内容如下
cd 'C:\Users\Administrator\'
& C:\Users\Administrator\AppData\Local\Temp\powershell_script\command.ps1 2> C:\Users\Administrator\AppData\Local\Temp\powershell_script\error.txt 1> C:\Users\Administrator\AppData\Local\Temp\powershell_script\logs.txt
Write-Output $LASTEXITCODE | Out-File 'C:\Users\Administrator\AppData\Local\Temp\powershell_script\status.txt'
command.ps1 内容如下。
. 'C:\Users\Administrator\AppData\Local\Temp\powershell_script\addn.ps1'
Get-Date
addn.ps1 内容如下
$EXECUTION_FOLDER='C:\Users\Administrator\AppData\Local\Temp\powershell_script\'
$SCRIPT_RESPONSE_FILE='C:\Users\Administrator\AppData\Local\Temp\powershell_script\rsp.txt'
只要用户使用远程桌面协议(RDP) 登录,它就可以工作。但是,当用户从 RDP 注销时,PowerShell 进程会一直运行而没有任何结果。
我尝试使用 Invoke-CimMethod 但结果相同。
任何线索为什么会这样?
解决方案
推荐阅读
- ios - Swift iOS 应用程序我应该如何在我的应用程序中管理我的 ViewControllers ?
- php - WooCommerce 网站无法在任何 iOS 设备上正确显示
- ios - 如何删除 UITableView 中的一行并从 TableViewCell 更新标签
- .net - 如何更新.net项目的目标框架?
- plsql - 在 PL/SQL 中编译包时出错。错误(7,1):PLS-00103:遇到符号“CREATE”
- r - 在闪亮的应用程序中将日期范围设置为 pdf
- android - RecyclerView NotifyItemInserted
- wordpress - 如何在 WordPress 的 archive.php 中获取分类产品?
- ecmascript-6 - 如何在 ES6 的 getter 中编写闭包函数?
- javascript - 如何计算数据表中带有下拉列表选择的行组合数