我期待做的事情似乎相当简单,但我无法弄明白。我希望运行Powershell脚本来启动RDP会话,将文件复制到c:\目录,然后从命令行运行该文件。我希望它循环,获取csv文件的参数,例如服务器IP,用户名和密码。所以本质上步骤如下......
我想知道是否有人可以帮我解决这个问题。我是Power Shell的新手,并且已经能够完成很多工作。如果有人能指出我正确的方向,或者甚至提供填写空白的代码,我会非常感激。
答案 0 :(得分:0)
我建议您使用此命令,因为我并不完全符合您的要求。
Get-help Import-CSV
get-help about_remoting这将避免为您执行mstsc.exe操作。
针对此会话进入会话和Invoke-Command,您可以在该服务器上运行命令。
$ session = New-PSSession -ComputerName Server1 -Credentials Get-Credential
Invoke-Command -Session $ session -ScriptBlock {
}
在Script块中,指定powershell命令来复制文件并运行它们。
答案 1 :(得分:0)
我已经使用psexec完成了远程安装。 psexec \\servername -u domain\usernamr -p password cmd /c "msiexec /i program.msi
PSexec下载:https://docs.microsoft.com/en-us/sysinternals/downloads/psexec
这意味着您将使用psexec而不是RDP来远程运行安装。
我创建了一个小的PowerShell脚本来帮助您入门。因此,假设您的CSV文件(c:\ info.csv)具有三列ServerName,UserName和Password。
运行下面的代码,它应该可以工作,但是请确保根据您的环境更改前4行。首先放置一台服务器来观察脚本行为。
# Set intial variables
$CSVFile = "c:\info.csv"
$MSI = "\\servername\sharename\setup.msi"
$MSILog = "c:\Windows\temp\setup.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"
}