Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops Powershell RDP会话和CLI脚本_Loops_Powershell_Cmd_Rdp_Mstsc - Fatal编程技术网

Loops Powershell RDP会话和CLI脚本

Loops Powershell RDP会话和CLI脚本,loops,powershell,cmd,rdp,mstsc,Loops,Powershell,Cmd,Rdp,Mstsc,我想做的事情似乎很简单,但我想不出来。我希望运行Powershell脚本来启动RDP会话,将文件复制到c:\目录,然后从命令行运行该文件。我希望它循环,从csv文件中获取参数,例如服务器IP、用户名和密码。所以本质上,步骤如下 从csv文件导入infor以定义变量 复制指定文件 (然后循环) 启动mstsc.exe 输入服务器IP、用户名和密码 将复制的文件粘贴到c:\目录中 启动cmd.exe 运行复制到c:\目录的文件 注销服务器 我想看看是否有人能帮我解决这个问题。我是power shel

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

  • 从csv文件导入infor以定义变量
  • 复制指定文件 (然后循环)
  • 启动mstsc.exe
  • 输入服务器IP、用户名和密码
  • 将复制的文件粘贴到c:\目录中
  • 启动cmd.exe
  • 运行复制到c:\目录的文件
  • 注销服务器

  • 我想看看是否有人能帮我解决这个问题。我是power shell的新手,并且已经完成了很多工作。如果有人能给我指出正确的方向,甚至提供代码来填补空白,我将非常感激。

    我建议你使用这个命令,因为我不知道你到底想做什么

    获取帮助导入CSV
    获取有关远程处理的帮助这将避免为您执行mstsc.exe操作

    进入会话并对此会话调用命令,您可以在该服务器上运行命令。 $session=New PSSession-ComputerName Server1-凭证获取凭证
    调用命令-Session$Session-ScriptBlock{

    }


    在脚本块内,指定powershell命令来复制文件并运行它们。

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

    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"
    
    }
    

    更具体地说,我要做的是在机器上安装一个代理。这个过程需要通过rdp登录到服务器,运行静默安装(msi)我想做的是向我的客户提供一个电子表格,让他填写详细信息,如服务器地址、用户名和密码。我需要使用csv,运行powershell,并通过该脚本安装许多代理,本质上是一种自动化过程。希望这能解释这一点更好一点。关于如何运行和启动mstsc.exe以及如何尝试执行我希望执行的操作,有什么帮助吗?我已经尝试过pssession,这将是一个很好的选择,但是,它需要在我的客户端进行额外的配置,因此它不是一个选项“您可以使用powershell启动mstsc.exe,但随后您将不得不手动执行该任务。”从那里开始。使用PSSessions,您进入该服务器并在该服务器上运行命令。您不需要在我想要建立连接的所有服务器上启用PSSessions吗?如果是这样,将消除需要,因为我只需要访问它们一次就可以运行单个命令进行静默安装。您已经在这些服务器上启用了远程处理服务器。是。启用PSRemoting