我正在编写一个 powershell 脚本,它需要通过 RDP 连接到几个服务器并在那里执行进程然后返回。
mstsc /v:<computer>
其本身看起来很棒,因为它的安全性/凭据提示与您手动执行的相同。
然而,经过一番研究之后,它似乎只是一个命令行实用程序,仅此而已,因为尝试了类似如下的操作:
mstsc /v:104.209.198.181 | Invoke-Command -ScriptBlock {"New-Item C:\Users\<me>\Desktop\Success.txt -ItemType file"}
不起作用。
因此,我尝试了Enter-PSSession <computer> -Credential $env:UserName
人们使用的方法,但与之相比,它看起来很麻烦,mstsc
因为它看起来很原始(我昨天阅读的一篇文章试图说这种类型的提示始终是网络钓鱼诈骗,显然不是,但尝试告诉管理层),它不会自动填充域,而且我收到 WinRM 错误,我确信这将是一个兔子洞。
那么是否可以通过 RDPmstsc
将命令传送给它以便在该计算机上执行?
答案1
不。MSTSC 是一个终端客户端。如果您想在远程机器上运行脚本,您确实应该让 enter-pssession 工作。它将使您的生活变得轻松很多。
它可能很简单,您只需要在每台机器上运行一个命令来允许 Powershell Remoting:
Enable-PSRemoting –force
答案2
您可以创建一个计划任务,该任务将通过使用域内的特殊帐户登录服务器来触发,并通过触发器系统运行位于每个服务器上独立位置的准备好的脚本。
步骤:您可以创建一个计划任务,当您的计算机解锁时运行:
开始 > 管理工具 > 任务计划程序 在左上角选择任务计划程序库 单击创建任务 在创建任务对话框的右上角:常规选项卡 - 为您的任务提供名称 触发器选项卡 - 单击新建...并选择在工作站解锁时 操作选项卡 - 单击新建...并单击浏览...以找到您的脚本 条件选项卡 - 取消选中仅当计算机使用交流电源时才启动任务