【问题标题】:How do I start remote desktop from PowerShell?如何从 PowerShell 启动远程桌面?
【发布时间】:2014-08-21 00:09:54
【问题描述】:

如何从 powershell 启动 RDP 会话?我希望避免使用自定义脚本,因为我在 MSP 工作并最终在一天内跨多个域远程访问机器,因此在每个域中维护一系列脚本并非易事(除非您有解决方案) .

【问题讨论】:

    标签: powershell remote-desktop


    【解决方案1】:

    和命令行一样,你可以这样启动RDP客户端:

    mstsc /v:10.10.10.10:3389
    

    【讨论】:

    • 也可以放服务器名 ;)
    【解决方案2】:

    您可以从您的桌面启动指向远程系统的 RDP 会话:

    Start-Process "$env:windir\system32\mstsc.exe" -ArgumentList "/v:$machinename"
    

    其中$machinename 是远程系统的名称。系统将提示您输入凭据。

    【讨论】:

    • 谢谢,希望 PS 有一个 Start-RDPSession $machinename 选项。我认为这样的事情说明了为什么 PS 在我周围的系统管理员中看到缓慢采用的部分原因。我想接受你和 Raf。我把它给了 Raf,因为我认为他是我真正记得的那个,而且我认为大多数人会更喜欢。不过,您的答案是更准确的。谢谢!
    • 写你自己的函数来做我写的,叫它,把它放在你的$PROFILE 或制作你自己的模块。这种可扩展性应该加速采用,而不是阻碍它。
    【解决方案3】:

    连接设置存储在 .rdp 文件中。无需在代码中指定计算机名称和列出其他设置。 使用 .rdp 文件中的设置连接 Hyper-V:

    $hyperv = Get-VM -Name "VM-Name"
    if($hyperv.State -eq "Running") {
        Write-Host "Hyper-V is Running."
        Start-Process "$env:windir\system32\mstsc.exe" -ArgumentList "$env:userprofile\Documents\RDP-Name.rdp"
    } else {
        Write-Host "Hyper-V is Stopped."
        Start-VM -Name "VM-Name"
        Start-Sleep -Seconds 6
        Start-Process "$env:windir\system32\mstsc.exe" -ArgumentList "$env:userprofile\Documents\RDP-Name.rdp"
    }
    

    好吧,为了整个过程的美观,在以不可见模式调用您的 .ps1 文件的同一文件夹中创建一个 .vbs 文件。

    Set objShell = WScript.CreateObject("WScript.Shell")
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set F = FSO.GetFile(Wscript.ScriptFullName)
    path = FSO.GetParentFolderName(F)
    objShell.Run(CHR(34) & "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "" -ExecutionPolicy Bypass & ""'"  & path & "\Ps1File.ps1'" & CHR(34)), 0, True
    

    【讨论】:

      【解决方案4】:

      在控制台提示符下输入:

      mstsc /v:SERVERNAME
      

      【讨论】:

        【解决方案5】:

        这里是函数格式。正如alorc所说。将此粘贴到您的 $profile 中

            function Start-RDP ($computername)
        {
            Start-Process "$env:windir\system32\mstsc.exe" -ArgumentList "/v:$computername"
        }
        

        【讨论】:

          【解决方案6】:

          尝试使用此命令:mstsc /v:<server>

          此外,您可以查看以下链接以获取更多参考:

          https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/mstsc

          【讨论】:

            【解决方案7】:

            如果你在域中使用远程主机,你可以使用这个命令:

            Enter-PSSession -ComputerName host1 -Credential Username
            

            如果没有,你应该执行一些步骤。

            此链接还有许多其他选项: http://www.howtogeek.com/117192/how-to-run-powershell-commands-on-remote-computers/

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-08-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多