如何在不同域上的远程计算机上运行powershell命令

时间:2014-01-01 15:55:01

标签: windows powershell wmi powershell-v2.0

我想在几台服务器上运行一些脚本,但问题是它们都在不同的域上。 如果他们在同一个域上然后我能够运行它是Powershell但是跨域我将如何做到这一点?任何人都可以对此有所了解吗?

3 个答案:

答案 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和等。

这将确保每个运营商在使用脚本之前必须手动输入每个域的用户名/密码(将信用保存到文件中),这有助于防止未经授权的访问。