我想做的事情似乎很简单,但我无法弄清楚。 我希望运行Powershell脚本来启动RDP会话,将文件复制到c:\目录,然后从命令行运行该文件。 我希望它循环,从 csv 文件中获取参数,例如服务器 IP、用户名和密码。 因此,从本质上讲,步骤如下...
- 从 CSV 文件导入 infor 以定义变量
- 复制指定的文件(然后循环)
- 启动 MSTSC.exe
- 输入服务器 IP、用户名、密码
- 将复制的文件粘贴到 C:\目录
- 启动CMD.exe
- 运行复制到 c:\ 的文件目录
- 注销服务器
我想看看是否有人可以帮助我解决这个问题。我是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 命令以复制文件并运行它们。