Powershell RDP Session and CLI Script



我想做的事情似乎很简单,但我无法弄清楚。 我希望运行Powershell脚本来启动RDP会话,将文件复制到c:\目录,然后从命令行运行该文件。 我希望它循环,从 csv 文件中获取参数,例如服务器 IP、用户名和密码。 因此,从本质上讲,步骤如下...

  1. 从 CSV 文件导入 infor 以定义变量
  2. 复制指定的文件(然后循环)
  3. 启动 MSTSC.exe
  4. 输入服务器 IP、用户名、密码
  5. 将复制的文件粘贴到 C:\目录
  6. 启动CMD.exe
  7. 运行复制到 c:\ 的文件目录
  8. 注销服务器

我想看看是否有人可以帮助我解决这个问题。我是Power shell的新手,并且已经能够完成很多工作。 如果有人能为我指出正确的方向,甚至为我提供填空的代码,我会非常感激。

我已经使用 psexec 完成了远程安装。 psexec \servername -u domainusernamr -p password cmd /c "msiexec /i program.msi

PSexec 下载: https://learn.microsoft.com/en-us/sysinternals/downloads/psexec

这意味着您将使用 psexec 远程运行安装,而不是 RDP。

我创建了一个小型的PowerShell脚本来帮助您入门。因此,假设您的CSV文件(c:\info.csv)有三列服务器名称,用户名,密码。

运行下面的代码,它应该可以工作,但请确保根据您的环境更改前 4 行。首先放置一台服务器来观察脚本行为。

# Set intial variables
$CSVFile = "c:info.csv"
$MSI = "\servernamesharenamesetup.msi"
$MSILog = "c:Windowstempsetup.log"
$Domain = "YourDomain"
# Import info from CSV file
$Servers = import-csv $CSVFile

# loop through each server
foreach ($server in $servers) {
         # run psexec on each server to install a program
         psexec \$server.servername -u $Domain$server.username -p $server.password -h cmd /c "msiexec /i $MSI /quite /l*v $MSILog"
}

我建议您使用此命令,因为我并不完全是您要做的事情。

获取帮助导入 CSV
获取帮助about_remoting这将避免为您执行 mstsc .exe 操作。

进入会话并针对此会话调用命令,您可以在该服务器上运行命令。$session = 新 PSSession -计算机名服务器 1 -凭据获取凭据
invoke-command -session $session -scriptBlock {

}

在脚本块中指定 powershell 命令以复制文件并运行它们。

最新更新