首页 > 解决方案 > 当用户未使用远程桌面登录时,无法运行 powershell.exe 并使用 Invoke-WmiMethod 执行 ps1 文件

问题描述

我正在尝试执行远程计算机中的脚本。exec.ps1我正在使用库中的代码中的以下命令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 但结果相同。

任何线索为什么会这样?

标签: javapowershellwmipowershell-remotingwinrm

解决方案


推荐阅读