我的任务是自动化内部流程。 此过程涉及首先登录远程服务器(A)。 从服务器A,用户将连接到远程服务器(B)。
在服务器B上进行身份验证后,用户需要执行三项主要任务:
我在CodeProject上的帖子中使用了一些示例代码,以便建立所有远程桌面连接,并且它可以毫无问题地运行。 代码使用ActiveX MSTSC Library。
我的问题在于上面列出的步骤。 连接到服务器B后,如何实际执行这些操作。 现在,我们有一个执行这些步骤的内部脚本。 要执行该脚本,用户必须登录到服务器B并手动运行脚本。
如果能够建立连接并以实际方式执行脚本,这将是一个解决方案。如果由于某种原因这是不可能的,我需要以实用的方式执行这三个步骤作为解决方案。
感谢您的帮助。
答案 0 :(得分:2)
您可以使用Powershell New-PSSession。
摘自Microsoft Site:
New-PSSession cmdlet可创建Windows PowerShell会话 (PSSession)在本地或远程计算机上。当你创建一个 PSSession,Windows PowerShell建立持久连接 远程计算机。
将以下内容保存到PS1文件中:
Write-Output "Please supply your credential for <insert server name>"
$cred = Get-Credential -Message "Enter credential for <insert server name>"
Try
{
$s1 = new-pssession -computername <fully qualified domain name (FQDN)> q -credential $cred -Authentication Credssp
}
Catch [system.exception]
{
"Your account doesn't have access to <insert server name>"
"Not sure what permission are really require on the server"
"When I have a chance, need to test with the other developers"
}
# If you wanted to set a path you could do this
$env:Path = $env:Path + ";C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE"
# Create the command we want to execute on the remote server
# This block can contain anything you do at command prompt
$block = {
dir
cd "\Foo"
.\Bar.bat
}
if ($s1)
{
Invoke-Command $block -session $s1
remove-pssession $s1
}
Start-Sleep 5
一旦有了脚本,就可以按照PowerShell Class中的示例对C#应用程序进行建模。
答案 1 :(得分:0)
您可以使用psexec在另一台计算机上运行脚本。它配备了sysinternals套件。
命令似乎如下:
psexec \\ serverB&lt;脚本的本地路径&gt;