修正的任何更改都需要重启,console退出后excel才

2019-09-22 作者:小鱼儿玄机30码   |   浏览(91)

win10更新后,蓝牙功能不见了,也没有打开的选项,设备管理器里也没有,多了个未知USB设备,重启无效,重装蓝牙驱动无效,BIOS中的Bluetooth是开的。

三种方法的思维都是遍历一个map的Key,然后2个Map分别取这2个Key值所得到的Value。

win10很完美,用的也很舒服!当然人无完人,也总有不尽如人意的时候。比如说我们经常用的远程mstsc,就出现了一个坑,既然出现坑了,我们就得把坑解决掉吧!下面就记录一下这个坑的解决方法。

1. 问题

小鱼儿玄机30码 1

#第一种用entry

小鱼儿玄机30码 2

当在console中调用API ShellExecuteEx打开"test.iqy"文件时,发现excel会hang住,console退出后excel才会响应,但直接双击"test.iqy"是没有问题的,有意思的是这个情况只有在xp发生,在win7上没有这个问题。

 试了网上能找到的所有方法,包括更新win10更新、 更新Bluetooth驱动 等都没有解决 , 

private void compareMap(Map<String, String> Map01, Map<String, String Map02>){

        for (Map.Entry<String, String> entry : Map1.entrySet())
        {

           String testKey = entry.getKey();

           if(Map1.get(testId).equals(Map2.get(testId))){

                System.out.println("equals");

            }else{

                System.out.println("not equals");

            }
        }
}

本文地址:
作者:yilezhu

 

 解决方案 是:

#第二种用keyset的方法,把key值存到容器,分别取出对比

查看微软CredSSP更新日志

查看win10系统升级日志,果然找到了原因,是因为CVE-2018-0886 的 CredSSP 2018 年 5 月 8 日更新默认设置从“易受攻击”更改为“缓解”的更新。相关的 Microsoft 知识库编号已在 CVE-2018-0886 中列出。默认情况下,安装此更新后,修补的客户端无法与未修补的服务器进行通信。 使用本文中描述的互操作性矩阵和组策略设置来启用“允许的”配置。
具体的内容请自行阅读:

2. 重现步骤

1、打开设备管理器,卸载掉未知USB设备,重新识别硬件。 问题解决了。

private void compareMap(Map<String, String> Map01, Map<String, String Map02>){  

     Iterator<String> iter = Map1.keySet().iterator();

while (iter.hasNext()) {

            String testKey = iter.next();

       if(Map1.get(testId).equals(Map2.get(testId))){

                System.out.println("equals");

              }else{

                System.out.println("not equals");

            }

微软官方给出的解决“这可能是由于CredSSP 加密Oracle修正”的方法

  1. 组策略解决方法及步骤
    小鱼儿玄机30码,win R 打开运行运行,然后输入“gpedit.msc”打开 如下图所示,在左侧窗口依次找到策略路径:“计算机配置”->“管理模板”->“系统”->“凭据分配” 然后右侧窗口设置名称中找到: 加密 Oracle 修正
    小鱼儿玄机30码 3

然后双击“加密 Oracle 修正”打开如下的窗口,对着设置即可。
小鱼儿玄机30码 4

最后,微软建议对加密 Oracle 修正的任何更改都需要重启。所以这里最好还是重启一下电脑。不过博主本人试了,不需要重启远程连接也正常了!

  1. 注册表解决方法及步骤

    这里建议先使用上面组策略的方式进行解决,如果解决不了,再使用注册表方式,因为注册表方式没有组策略这种图形化界面的简单方便。
    同时,微软也给出了警告: 如果使用注册表编辑器或其他方法修改注册表不当,可能会出现严重问题。 这些问题可能需要您重新安装操作系统。 Microsoft 不能保证可解决这些问题。 请自行承担修改注册表的风险。

win R 打开运行菜单,然后输入“regedit” 按Enter键即可打开如下的注册表,按照图示,找到此路径“
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters”

小鱼儿玄机30码 5

然后在右侧窗口双击“AllowEncryptionOracle” 并把值设置成“2” (跟上面组策略设置效果一样)然后确定。如下图所示
小鱼儿玄机30码 6

0表示强制更新的客户端
1表示缓解
2表示易受攻击 (跟上面组策略设置效果一样,有木有)

重现环境:XP sp3 / Office 2007(其他office版本应该也可以,没有测试)

有时能识别到蓝牙,有时也不能识别,一般多试几次,或者隔一段时间再识别,就能识别了。

##第二种用keyset的方法,遍历Key值

总结

今天主要是介绍下win10 mstsc远程遇到的坑“这可能是由于CredSSP 加密Oracle修正”的两种解决方法。从微软官方更新日志入手,然后引出组策略以及注册表的解决方法。图文也更容易让新手朋友也能按照步骤进行解决!最后还是提醒下,新手朋友最好通过组策略的方式进行解决,因为微软也给出了警告: 如果使用注册表编辑器或其他方法修改注册表不当,可能会出现严重问题。 这些问题可能需要您重新安装操作系统。 Microsoft 不能保证可解决这些问题。 请自行承担修改注册表的风险。

 

public class CompareMap {

    public static void main(String[] args) {

    }

    private void compare(Map<String, String> map1, Map<String, String> map2) {

        for (String testkey : map1.keySet()) {

            if(map1.get(testkey).equals(map2.get(testkey))){

                System.out.println("equals");

            }else{

                System.out.println("not equals");

            }
        }

    }

1> 解压iqy_test.zip

 

在main方法调用并传递参就可以了,

2> 运行http_server.py(需先安装python)

PS:如果需要将结果(相同的value、不同的value)写入文件,则可以写一个write方法,在每次打印写入文件,加文件地址参数即可

3> 执行"shell_execute.exe test.iqy"

 

shell_execute.exe的主要code:

结果写入文件方法write

bool shell_execute_file(wstring file_path)
{
    SHELLEXECUTEINFOW shell_exec_info = { 0 };
    shell_exec_info.cbSize = sizeof(SHELLEXECUTEINFOW);
    shell_exec_info.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI;
    shell_exec_info.hwnd = NULL;
    shell_exec_info.lpVerb = NULL;
    shell_exec_info.lpFile = file_path.c_str();
    shell_exec_info.lpParameters = NULL;
    shell_exec_info.lpDirectory = NULL;
    shell_exec_info.nShow = SW_SHOW;
    shell_exec_info.hInstApp = NULL;
    bool ret = ShellExecuteExW(&shell_exec_info);
    printf("process handle is %pn", shell_exec_info.hProcess);

    return ret;
}

 

 

   public static void write(String file, String valueOfMap1, String valueOfMap2) {

        try {
            BufferedWriter input = new BufferedWriter(new OutputStreamWriter(
                    new FileOutputStream(file, true)));
            input.write("Map1Output: "   valueOfMap1   "rn");
            input.write("Map2Output: "   valueOfmap2   "rn");
            input.newLine();
            input.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

3. 原因分析

 

3.1 excel hang在哪里?

3.1.1 用windbg附加到excel上,输入如下命令查看主线程hang住的地方

本文由小鱼儿玄机30码发布于小鱼儿玄机30码,转载请注明出处:修正的任何更改都需要重启,console退出后excel才

关键词: 小鱼儿玄机30码