首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Powershell "screen“--在连接断开的情况下保持进程运行?

Powershell "screen“--在连接断开的情况下保持进程运行?
EN

Stack Overflow用户
提问于 2017-03-27 23:00:08
回答 2查看 1.2K关注 0票数 1

我正在使用enter-pssession在远程服务器上运行脚本。这样我就可以远程登录到服务器了。以交互方式运行命令,关闭powershell控制台,稍后我可以重新连接会话并检查命令输出。

在powershell中有类似Linux screen的功能吗?我无法使用Windows远程桌面连接服务器。

EN

回答 2

Stack Overflow用户

发布于 2017-03-27 23:49:26

您可以在-InDisconnectedSession中使用Invoke-Command,它将以异步模式启动会话。连接到此会话后,可从中获取数据,等等。您可以阅读有关此here.的更多信息

您可以创建会话,从会话断开连接,然后重新连接到它。

可能对你有用:带有-IdleTimeoutNew-PSSessionOption

-IdleTimeout:确定在远程计算机未收到来自本地计算机的任何通信时会话保持打开的时间。这包括心跳信号。当时间间隔到期时,会话将关闭。MSDN Link

票数 4
EN

Stack Overflow用户

发布于 2017-03-31 07:16:17

我最近在使用PSSessions时遇到了双跳问题。为了解决这个问题,我在远程服务器上创建了一个会话配置,它使用-RunAs参数来设置我需要在远程服务器上执行命令的凭据。然后,您连接到远程服务器上的会话配置,一切都应该按预期工作。

代码语言:javascript
复制
$MyCreds = Get-Credential ''
Invoke-Command -ScriptBlock {
    Set-PSSessionConfiguration -Name "My Remote Config" -RunAsCredential $using:MyCreds -Force
} -ComputerName Server01

然后,一旦存在会话配置,我就可以使用该配置启动一个会话,整个双跃点问题就是无效的。

现在,请注意,我确实添加了一些额外的安全性,这样其他人就不能使用我的会话配置,因为该配置将我的凭据缓存在服务器上(加密),如果他们使用该配置,他们可以像我一样做任何他们想做的事情。为此,我获得了域帐户SID,生成了SDDL行,并将对会话配置的访问限制为仅限我的帐户访问。

代码语言:javascript
复制
$Searcher = [adsisearcher]"(&(sAMAccountName=$($Creds.UserName.Split('\')[1]))(objectClass=user))"
$Results=$Searcher.FindOne().GetDirectoryEntry()
$MySID = new-object System.Security.Principal.SecurityIdentifier($Results.objectSid.value,0)|% value
$SDDL = "O:NSG:BAD:P(A;;GR;;;BA)(A;;GR;;;IU)(A;;GA;;;$MySID)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)"
$FQDN = $Server.ServerName,$Server.Forest -join '.'
$MySessionName = "DoubleHop-{0}" -f $MyCreds.UserName.Split('\')[1]
Invoke-Command -ScriptBlock {
    Register-PSSessionConfiguration -Name $using:MySessionName -RunAsCredential $using:MyCreds -Force -SecurityDescriptorSddl $using:SDDL
} -ComputerName $FQDN -ea 4
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43049882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档