windows远程桌面mstsc@保存登录凭证问题CredentialGuard@中转投屏等细节@局域网环境_获取电脑用户名-程序员宅基地

技术标签: windows  

refs

试验环境

  • 两台主机均被设置了用户和密码,被控机器登录的账户是Microsoft账户(不同于本地账户,影响远程登录时的用户名+密码)
  • 都是windows专业版以上的
  • 这里试验的两台机器都是同一局域网下的主机

相关常识

  • 一台计算机(host)上可能不止一个用户(user)
  • 特别是用户名要加以区别

两类账户

  • windows本地账户
    • 仅限windows系统本地登录使用计算机用途,也可以供其他机器远程控制作为登录身份使用windows计算机的资源
    • 不具有联网功能,无法同步设置,也无法登录其他微软(Microsoft)产品,主打离线使用,不需要上互联网(顶多是局域网)
  • Microsoft账户(云账户)
    • 功能更加强大,可以备份设置,除了用来登录和管理windows,还可以用来登录其他Microsoft产品,因此成为Microsoft账号,而不是单单windows账号

三个码

  • windows本地账户和Microsoft账户的密码是独立的
  • 另外如果用户密码比较长,登录windows时可以设置一个简单的字符串作为pin来登录(pin的形式有多种,pin码也可以用来登录windows,但是其功能是受限,只是方便输入,甚至可以用指纹来代替字符串,但是当前主机的pin无法被其他主机用来登录当前主机,所以如果对方无法直接接触你的机器,即便pin泄露,其他人依然无法登录您的机器)
  • 这和手机验证码登录账号的方式有相同也有不同点,比如验证码一般都是6位或者8位的数字,而密码我们可以很复杂很长,但是验证码是不能泄露的,pin码一般不怕泄露,除非这个人有机会接触到你的机器(因此指纹或人脸pin会更安全和更快捷,多年前就有指纹解锁的电脑了,和手机上的指纹解锁一样方便高效)

pin特点

  • Windows上的PIN码(Personal Identification Number)是一种便捷的本地身份验证方法,类似于手机锁屏时使用的数字密码。

  • 在Windows 10及更高版本的操作系统中,用户可以设置PIN码作为替代传统的密码来快速登录到设备。PIN码有以下特点:

    1. 便捷性:PIN码通常由4到6位数字组成,但也可能包含字母和其他字符,根据Windows设置允许,这使得用户能够更快速地输入和解锁设备。
    2. 本地绑定:PIN码是与特定设备绑定的,这意味着你在一台设备上设置的PIN码不能在另一台设备上使用。这对于保护用户隐私和安全有一定的好处,即使PIN码被知道,攻击者也无法远程登录到其他设备
    3. 安全机制:尽管PIN码看起来简单,但Windows系统中的PIN码实际上是经过加密处理的,并且与用户的Microsoft账户关联,即便PIN码泄露,也不能直接用来访问云端服务或从远程位置登录。
    4. 双因素认证支持:在某些情况下,PIN码结合了Windows Hello等生物识别技术(如指纹识别或面部识别)提供双重身份验证,进一步提升安全性。
    5. 设置与管理:用户可以通过Windows设置来创建、更改或删除PIN码。通常路径是在“设置”->“账户”->“登录选项”中找到PIN码相关设置。
  • 总之,Windows PIN码旨在提供一种平衡安全性和便利性的登录方式,特别适合那些希望快速解锁个人电脑而又不想频繁输入复杂密码的用户

  • 最后,切记pin码无法用于远程登录,除非您的密码和pin码设置的一样(但一般pin码比较简短)

被控机的设置

获取windows主机名或地址

获取要被远程登录用户名(userName)

  • 快速的方法就是用whoami查询

  • 例如

    • PS>whoami
      colorfulcxxu\cxxu
      
    • 其中colorfulcxxu是我的主机名,可以用ipv4地址代替这个名字

    • \后面是用户名,表示其他机器要以哪一个用户的身份登录到这被控的机器

  • 为什么要主机名(ip)和用户名才行?省略掉用户名环节不行?

    • 因为不同用户具有的权限可能不同,登录为管理员账户权限当然就大
    • 另一方面是隐私和安全,如果机器上有多个用户,远程登录到任意用户,显然不安全也不合理
  • 我们也可以设立一个专门用来共享登录的用户,比如用户名share,然后登录密码公开给需要登录的用户

  • 注意,多个其他设备的用户无法同时远程登录到被控主机的同一个账户,多的用户会下线掉

主控机的设置

微软的mstsc软件

  • mstsc | Microsoft Learn
  • "mstsc"是微软远程桌面连接(Microsoft Terminal Services Client)的命令行程序名称,主要用于Windows操作系统中远程连接到另一台计算机。
  • 在命令提示符窗口中输入“mstsc”并运行,将会打开远程桌面连接界面,用户可以输入远程计算机的IP地址或计算机名以建立远程桌面连接。

打开mstsc

  • 具体使用方法如下:

    1. 打开“运行”(快捷键Win+R);
    2. 输入“mstsc”后回车;
    3. 在弹出的远程桌面连接窗口中输入远程计算机的IP地址和登录凭据(用户名和密码),然后点击“连接”即可进行远程控制。
  • 此外,你也可以直接在Windows搜索框中输入“远程桌面连接”来启动该程序。

主控机上输入被控机以及登录身份信息

  • 首先输入被控主机名(或者ip)

  • 在这里插入图片描述

  • 注意第一个界面输入的用户名可能在第二个界面被修改(改成了全名描述,既不是本地用户,也不是Microsoft账户名),可以点击更多选项,重新输入用户名和对应的登录密码

  • 如果计算机那一栏填写用的是ip地址,则第二个界面的用户名不会被修改

  • 即使显示的是本地用户的名字,但是如果设置了Microsoft云同步,则登录密码要输入Microsoft的密码,而不是本地账户的密码(除非两个密码是一样的),更不是PIN码

  • 如果忘记账户密码,可以到设置里更改或重置)

  • 这里试验的两台机器都是同一局域网下的主机


登录到远程主机的本地账户

在这里插入图片描述

最好设置登录密码,否则可能无法远程登录失败

修改本地用户的登录密码

注意,这不同于PIN码

FAQ

提示密码错误

  • 用户可能会遇到登录到被控机过程中的输入要登陆的用户身份和凭证(密码)时遇凭证无效的问题,即便我们被控机上的用户名密码都是确保正确的(但其实用户名这个东西有欺骗性)

  • 在较新的windows版本,比如win10之后的系统,微软强调用(推荐)microsoft账户(联网的云账户)来登录windows

    • 云账户确实有好处,可以在其他设备同步自己的一些系统设置等
    • 但是有的用户还是习惯使用本地账户,毕竟本地账户不需要联网,而且使用起来更加简单
  • 由于这两中类型的账户的存在,就会导致一些不必要的混乱

    • 查询当前机器的所有用户可以用lusrmgr.msc查看(用命令行打开)

    • 检查当前用户的用户名还可以查看家目录的名字,命令行中输入cd后的路径返回的就是用户家目录

    • 或者使用whoami查看主机名和当前用户名

      • C:\Users\cxxu>whoami
        colorfulcxxu\cxxu
        
    • 尽管这看起来像是本地用户,但是我们还是要打开设置,看看是否处于本地账户登录状态

      • 请添加图片描述
    • 如果发现账户设置一栏有改用本地账户登录的字样,就说明当前账户受到云账户控制,使用pin码登录虽然能够在被控机上登录,但却无法被用以远程登录的凭证

  • 现在有两个选择,使用本地账户的密码(而非pin码,特别是密码和pin码不同的时候,通常pin码串可能会简单一些,比如只有数字);另一个选择是用云账户的密码来登录

更改账户密码

记住登录凭证@下次免密登录

  • 这部分设置不是那么直观,需要梳理一下:

    • 记住密码可能不是您想象的那么直接有效
    • 记住凭证:需要连接并成功登录进去,才能够记住凭证,如果只是连接到登录界面,但是没有首次输入登录密码,那么是无法产生有效的登录凭证,那么下次登录仍然需要你手动输入密码
  • 当您的凭证失效,则建议您删除旧有的凭证,然后mstsc界面会切换到最初的界面,可以勾选允许记住凭证

凭证被禁用问题@Credential Guard

  • 配置 Credential Guard - Windows Security | Microsoft Learn

  • mstsc远程桌面登录选项有一个记住密码或凭证的选项,按理说记住密码或凭证后下次登录就不需要再输入密码了

    • 然而windows引入了credential guard安全机制,并且在较新的专业版系统上默认启用了这个功能
    • 这可能导致一定程度上的使用不便,尽管提升了安全性,但是这并不总是符合我们的需要
    • 下面介绍该功能以及配置,以下给出了可以复制粘贴一键的运行脚本
  • 根据windows系统版本的不同,有些用户记住密码功能的使用上很顺利,但是有些用户则需要额外的配置

    • 非pro版系统,或者默认不启用credential guard功能的系统不会遇到credential guard 阻碍记住密码的使用
  • 根据用户账户类型,也有不同的效果

    • 如果是local account,登录时可能不会遇到credential guard问题,即便credential guard 功能已经被启用了
    • 如果是Microsoft acccount,那么记住的凭证无法用于登录

检查是否启用了Credential Guard

  • powershell脚本

    (Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard).SecurityServicesRunning
    
  • 返回1表示启用,返回0表示未启用

  • 如有其他疑问,参考上述文档链接

Credential Guard禁用

  • 以下脚本需要以管理员权限运行,它会创建或修改指定的注册表键值,以达到禁用与Credential Guard相关的设置目的。请确保在执行之前评估此操作对系统安全性的影响,并在必要时进行系统备份。
  • 从powershell/cmd的版本二选一
脚本
  • powershell禁用Credential Guard

    # 确保以管理员权限运行PowerShell
    if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
          
        Write-Warning "请以管理员身份运行此脚本。"
        Exit
    }
    
    # 设置注册表项以禁用Credential Guard相关设置
    
    # 第一个注册表路径和值
    $regPath1 = "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa"
    $regName1 = "LsaCfgFlags"
    $regValue1 = 0
    
    # 第二个注册表路径和值
    $regPath2 = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard"
    $regName2 = "LsaCfgFlags"
    $regValue2 = 0
    
    # 设置第一个注册表项
    New-ItemProperty -Path $regPath1 -Name $regName1 -Value $regValue1 -PropertyType DWord -Force | Out-Null
    
    # 设置第二个注册表项
    New-ItemProperty -Path $regPath2 -Name $regName2 -Value $regValue2 -PropertyType DWord -Force | Out-Null
    
    Write-Host "注册表项已设置完成。"
    Write-Host "请重启计算机以使更改生效。"
    Pause
    
  • cmd脚本(不要在powershell中执行,会报错)

    @echo off
    echo 正在设置注册表项以禁用Credential Guard相关设置...
    
    :: 设置第一个注册表项
    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v LsaCfgFlags /t REG_DWORD /d 0 /f
    
    :: 设置第二个注册表项
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard" /v LsaCfgFlags /t REG_DWORD /d 0 /f
    
    echo 设置完成。
    echo 请重启计算机以使更改生效。
    pause
    
检查相关的值是否设置正确(optional)
  • 任选其一进行检查

  • cmd

    • reg query "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v LsaCfgFlags
      reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard" /v LsaCfgFlags
      
      
  • powershell

    • # 使用PowerShell方式检查第一个注册表项
      $value = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LsaCfgFlags -ErrorAction SilentlyContinue
      Write-Host "LsaCfgFlags in 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa': $($value.LsaCfgFlags)"
      
      # 使用PowerShell方式检查第二个注册表项
      $value = Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard" -Name LsaCfgFlags -ErrorAction SilentlyContinue
      Write-Host "LsaCfgFlags in 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard': $($value.LsaCfgFlags)"
      

硬件调节受限问题

远程桌面控制的投屏问题

  • 远程登录到被控主机,可能无法设置被控主机的显示器行为,这一点要注意

亮度调节被卡住

  • 远程控制的情况下,我们也不能够调整被控制的机器的屏幕亮度

    • 不仅如此,还可能导致被控机器的控制中心出现故障,比如亮度条无法调整(灰色)
    • 那么控制机无法调整被控机的亮度,那就向将被控机的窗口缩小,然后调整主控机的亮度
    • 同理,投影也是一样的,可以向把主控机投屏设置好,然后被控机窗口全屏即可
      • 比如说,办公室有一台比较重的高性能工作站,教室有一台轻薄本,自然希望获得工作站的性能和笔记本的轻便
      • 如果两个机器处在同一局域网下,那么利用轻薄本远程连接到工作站(两台都是windows 专业版,至少工作站机器得是专业版以上的windows,才提供被连接的功能),利用轻薄本远程到工作站,再把轻薄本上的画面投屏到大屏幕上,非常完美(考虑到windows的个别地方的限制,可以先投影轻薄本画面,调整亮度,然后远程工作站的画面全屏即可)
  • windows自带的控制中心(win+A)启动,依赖于资源管理器,因此如果某些功能异常,可以考虑重启资源管理

  • 在这里插入图片描述

  • 重启资源管理器解决:

    • cmd/powershell: taskkill /f /im explorer.exe & start explorer.exe

      • 注意taskkill /f /im explorer.exe是单纯杀死资源管理器(依赖于资源管理器的系统组件将无法工作)

        • 通常这个语句不要单独执行

        • 如果您不小心执行了这一个语句而没有接着启动explorer,请在命令行窗口内追加explorer即可

        • Microsoft Windows [Version 10.0.22631.3296]
          (c) Microsoft Corporation. All rights reserved.
          
          C:\Users\cxxu>taskkill /f /im explorer.exe
          SUCCESS: The process "explorer.exe" with PID 18648 has been terminated.
          
          C:\Users\cxxu>explorer
          
      • 因此我们还需要进一步最佳执行start explorer或直接explorer

      • cmd下执行,不能在powershell下执行,下面是实操

        Microsoft Windows [Version 10.0.22631.3296]
        (c) Microsoft Corporation. All rights reserved.
        
        C:\Users\cxxu>@echo off
        taskkill /f /im explorer.exe & start explorer.exe
        SUCCESS: The process "explorer.exe" with PID 22784 has been terminated.
        
    • powershell可以直接执行即可:Stop-Process -Name explorer

      • 如果不放心的话可以追加一下下一行explorer

总结(必看)

  • 我们这里谈到了两类账户(windows本地账户和Microsoft账户和3个码

  • 登录时,使用账户的登录密码而不是pin码(除非pin码和账户的密码是一样的)

  • 无论是microsoft账户还是本地账户,都用各自配置的密码来作为远程登录的入口凭证

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xuchaoxin1375/article/details/116904942

智能推荐

yolov8的predict使用方法,更改predict.py的输出结果,输出label的真实坐标,保存图片和txt文档,图片中没有异物生成空的txt文档_yolov8 predict-程序员宅基地

文章浏览阅读1.4w次,点赞23次,收藏135次。更改predict.py的输出结果,输出label的真实坐标,保存图片和txt文档,图片中没有异物生成空的txt文档_yolov8 predict

JAVA线程之Thread类详解-程序员宅基地

文章浏览阅读9.7w次,点赞42次,收藏195次。ss_thread

lynis-程序员宅基地

文章浏览阅读89次。 lynis 是个不错的安全审计工具。 常见用法:lynis -c 逐项手动检查,并在最后给出建议lynis -Q 显式自动扫描,并在最后给出建议lynis -q 静默自动扫描,只给出警告 顺便说下另一个问题,在centos 5下安装lynis出错: ERROR with rpm_check_debug vs depsolve:rpmlib(Fil..._languard network scanner 2.0

## 实现MQTT数据在MySQL上的数据持久化实验_用c# 实现emqx 数据持续化到mysql-程序员宅基地

文章浏览阅读663次。一.硬件连接二.软件部分1.云服务器2.安装宝塔面板在腾讯云上安装宝塔面板:安装SSH 连接工具,安装步骤https://www.bt.cn/bbs/thread-1971-1-1.html,挂载磁盘后(查看),根据系统执行框内命令开始安装(这里我选用的是Ubuntu系统)在云服务中打开端口(入站规则和出站规则都要添加)找到腾讯云公网IP地址,在浏览器中输入该IP地址+端口(这里我采用的是8888端口)3.安装EMQX Cloud在云服务器上安装EMQX Cloud,下载链接:htt_用c# 实现emqx 数据持续化到mysql

前端表格合并单元格技巧_前端table单元格合并-程序员宅基地

文章浏览阅读1.3k次。前端表格合并单元格技巧_前端table单元格合并

python find() 和 index() 方法_python find index-程序员宅基地

文章浏览阅读3.8w次,点赞12次,收藏48次。1 find() 方法 字符串方法str.find(str, beg=0, end=len(string))检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。a = 'Hello,World'print(a.fi..._python find index

随便推点

python基础——matplotlib——scatter和plot方法中的maker参数(点的样式)_python scatter marker-程序员宅基地

文章浏览阅读2w次,点赞15次,收藏66次。一、scatterscatter方法主要用来做散点图展示,而plot方法主要用来做折线图展示,也可以用于散点图的展示。两个方法的参数基本是通用的。以scatter方法为例,常用参数包括:plt.scatter( ['x', 'y', 's=None', 'c=None', 'marker=None', 'cmap=None', 'norm=None', 'vmin=None', 'vmax=None', 'alpha=None', 'linewidths=None', 'verts=&._python scatter marker

【MQTT协议详解】MQTT协议-程序员宅基地

文章浏览阅读3.2w次,点赞39次,收藏399次。MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于 **发布/订阅** 范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。 *简而言之,MQTT其实就是一个用于TCP通信的消息协议而已。既然消息协议,"消息" 自然是表示MQTT其实本质就是消息,消息在某种理解上,可以理解报文,报文包,数据等等;既然是协议,自然表示它有着自己的规则,什么叫规则?就是规定这个消息该以怎样的**........_mqtt协议

计算机硬盘各分区名称,电脑分区后修改磁盘名称的方法步骤-程序员宅基地

文章浏览阅读9.7k次。我们新安装的磁盘,分区之后想对磁盘命名,直接修改是不行的,那么怎么解决呢,下面就由学习啦小编给你们介绍电脑分区后修改磁盘名称的方法吧,希望能帮到大家哦!电脑分区后修改磁盘名称的方法:首选我们打开桌面上的“这台电脑”或者计算机,小编是win8系统。然后选择需要修改的磁盘右键并“重命名”,就会出来需要管理员身份怎么办,意思是这边是不能修改的。选择任务栏最又左下角处的“桌面图标”右键,然后选择“磁盘管理..._如何修改电脑磁盘名称

该网页无法正常运作127.0.0.1 将您重定向的次数过多。 尝试清除 Cookie. ERR_TOO_MANY_REDIRECTS---关于flask遇到的此状况的解决办法_127.0.0.1 重定向次数过多。-程序员宅基地

文章浏览阅读1w次。问题:原因:那我自己的例子来讲,是装饰器中,只出现红色区域代码时,重定向无限循环导致的,每次重定向又会发送一个请求,满足重定向的条件(仍然是未登录)循环…解决:对重定向后的path做一个处理(详见,问题描述中的绿色框框),return None,即可跳出重定向,留在登录界面..._127.0.0.1 重定向次数过多。

CentOS8提高篇8:CentOS制作U盘启动盘_centos启动盘-程序员宅基地

CentOS制作U盘启动盘的步骤和要注意的问题。准备相关软件和镜像文件,使用UltraISO虚拟光驱制作启动盘,注意写入方式为“RAW”。制作的CentOS7启动盘可以当U盘使用,而CentOS8启动盘只能用作启动盘。

JVM堆内存监控-VisualGC_axvgvcijvm-程序员宅基地

文章浏览阅读613次。堆内存使用情况监控准备一份代码import java.util.ArrayList;public class HeapTest { byte[] a=new byte[1024*100];//100KB public static void main(String[] args) throws InterruptedException { ArrayList&..._axvgvcijvm