我正在使用enter-pssession在远程服务器上运行脚本。这样我就可以远程登录到服务器了。以交互方式运行命令,关闭powershell控制台,稍后我可以重新连接会话并检查命令输出。
在powershell中有类似Linux screen的功能吗?我无法使用Windows远程桌面连接服务器。
发布于 2017-03-27 23:49:26
发布于 2017-03-31 07:16:17
我最近在使用PSSessions时遇到了双跳问题。为了解决这个问题,我在远程服务器上创建了一个会话配置,它使用-RunAs参数来设置我需要在远程服务器上执行命令的凭据。然后,您连接到远程服务器上的会话配置,一切都应该按预期工作。
$MyCreds = Get-Credential ''
Invoke-Command -ScriptBlock {
Set-PSSessionConfiguration -Name "My Remote Config" -RunAsCredential $using:MyCreds -Force
} -ComputerName Server01然后,一旦存在会话配置,我就可以使用该配置启动一个会话,整个双跃点问题就是无效的。
现在,请注意,我确实添加了一些额外的安全性,这样其他人就不能使用我的会话配置,因为该配置将我的凭据缓存在服务器上(加密),如果他们使用该配置,他们可以像我一样做任何他们想做的事情。为此,我获得了域帐户SID,生成了SDDL行,并将对会话配置的访问限制为仅限我的帐户访问。
$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 4https://stackoverflow.com/questions/43049882
复制相似问题