gpt4 book ai didi

运行远程批处理文件时 Powershell 进程 'hanging'

转载 作者:行者123 更新时间:2023-12-03 12:28:41 27 4
gpt4 key购买 nike

我正在尝试通过驱动器映射在远程服务器上运行批处理文件,如下所示,但进程挂起......

Enable-WSManCredSSP -Role Client -DelegateComputer someserver -Force

$credential = Get-Credential -Credential domain\user (then I supply the password in the popup)

$RemoteSession = New-PSSession -ComputerName someserver -Credential $credential -Authentication Credssp

Invoke-Command -Session $RemoteSession -ScriptBlock { Enable-WSManCredSSP -Role Server -Force }

Invoke-Command -Session $RemoteSession -ScriptBlock { New-PSDrive -Name I -PSProvider FileSystem -Root \\server\share$ }

到目前为止,一切似乎都很好,我可以“定向”我的驱动器并查看预期的内容。

当我执行以下操作时,进程挂起 -
Invoke-Command -Session $RemoteSession -ScriptBlock { Start-Process I:\temp.bat }

temp.bat 文件执行以下命令,我已经手动验证它可以工作
echo Scott was here > C:\temp.txt

但是,该命令运行超过 5 分钟没有任何响应。

任何人都可以帮忙吗?我做错了什么?

最佳答案

尽管这不是您问题的直接解决方案,但我在数周的时间里用我的头敲击键盘的建议是走一条不同的道路。

$taskName = whocares
$command = I:\Temp.bat
$serverName = theServer
$userName = domain\user
$pass = pl4inT3xtPassword
$date = (Get-Date).addMinutes(1)
$formats = $date.getDateTimeFormats()
$startTime = $formats[113]
schtasks.exe /create /sc ONCE /tn $taskName /tr $command /s $serverName /u $userName /p $pass /ru $userName /rp $pass /st $startTime

这将创建一个任务,在下一分钟启动该过程,然后将其从调度程序中删除。还有一个/z 标志可以在它运行后删除,但如果你像我一样并且在 XP 上,那么这可能对你不可用。如果您发现您的任务在运行后没有被删除,您可以随时等待一分钟然后将其杀死……或者您可以更喜欢它:
while(($timer -lt 60) -and (!$running)) {
schtasks.exe /query /S $serverName /FO CSV /v /u $userName /p $pass | ConvertFrom-CSV | `
% {if($_.Status -eq "Running") {
Write-Host "IT WORKED!"
Write-host $_
$running = $true
}
}
if(!$running) {
$timer++
}
sleep 1
}
schtasks.exe /delete /s $serverName /u $userName /p $pass /tn $taskName /f

这一点只是每秒查询任务以检查它是否正在运行......一旦它运行,它将删除旧的计划任务并且您的进程将继续运行(直到它完成)。

任务调度程序是我发现的唯一一种使用 PowerShell 远程启动进程的干净方式。它不是您的 PSremote.exe 的子进程,而是在系统下。此外,与远程 session 不同,如果您退出 powershell session ,该进程将在远程计算机上持续存在。

我知道它不仅仅是你的一个类轮,但我希望它是有用的,如果你参数化它,甚至在上面构建一个 windows 窗体应用程序,它将为你节省大量时间和麻烦。

更多关于 schtasks Here

关于运行远程批处理文件时 Powershell 进程 'hanging',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20351124/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com