如何从PowerShell启动远程桌面?

时间:2014-06-30 15:05:29

标签: powershell remote-desktop

如何从powershell启动RDP会话?我希望避免使用自定义脚本,因为我在MSP工作并最终在一天内远程连接到各个域的计算机,因此在每个域中维护一系列脚本并非易事(除非您有针对我的解决方案)

7 个答案:

答案 0 :(得分:21)

与命令行相同,您可以这样启动RDP客户端:

mstsc /v:10.10.10.10:3389

答案 1 :(得分:6)

在桌面上,您可以使用以下命令启动指向远程系统的RDP会话:

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

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

答案 2 :(得分:2)

在控制台提示符下键入:

mstsc /v:SERVERNAME

答案 3 :(得分:2)

这是功能格式。正如alorc所说。将其粘贴到您的$ profile

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

答案 4 :(得分:1)

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

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

为使整个过程更加美观,请在同一文件夹中创建一个.vbs文件,该文件将以不可见模式调用.ps1文件。

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

答案 5 :(得分:0)

如果您正在使用域中的远程主机,则可以使用此命令:

Enter-PSSession -ComputerName host1 -Credential Username

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

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

答案 6 :(得分:0)

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

此外,您可以查看以下链接以供进一步参考:

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