我想在几台服务器上运行一些脚本,但问题是它们都在不同的域上。 如果他们在同一个域上然后我能够运行它是Powershell但是跨域我将如何做到这一点?任何人都可以对此有所了解吗?
答案 0 :(得分:1)
对于具有委派的PS约束会话,这可能是一个很好的应用程序。
您可以指定将用于在会话配置中运行commnads的凭据,并限制可在会话中运行的内容,这样您就可以创建可以连接到的会话而无需域凭据,并且在该会话中您可以只运行这些脚本,它们将使用会话配置中设置的凭据自动运行。
http://ramblingcookiemonster.wordpress.com/2013/07/20/granular-access-via-powershell-remoting/
答案 1 :(得分:1)
在服务器端
Enable-PSRemoting
在客户端,执行以下命令:
cd wsman:localhost\Client
Set-Item AllowUnencrypted -Value $true -force
Set-Item TrustedHosts -Value * -force
然后,要从客户端计算机在服务器计算机中创建会话,请使用以下命令:
$cred=get-credential
$Session= New-PSSession -computername Server01 -credential $cred -Port 5985
Enter-PSSession $Session
(应该给出服务器机器上的有效凭据)
答案 2 :(得分:0)
我不知道你在这里是说2,20或200台服务器(或管理员的数量),但我会做什么(如果我对域有管理访问权限)将实现某种每个域上的“管理执行帐户”。然后我会构建逻辑来保存工作站/管理服务器上启动连接的文件的信誉(如果密码在域中相同则很容易 - 可能太容易了)
构建逻辑以基于计算机域获取正确的凭证文件,构建凭证对象并与其连接 - 应该很容易 - 基本上一些代理函数用于最常见的远程处理CmdLets,如new-pssession和等。
这将确保每个运营商在使用脚本之前必须手动输入每个域的用户名/密码(将信用保存到文件中),这有助于防止未经授权的访问。