三种方法,获取用户的Sid的方法

2019-10-14 17:24 来源:未知

  最近公司新配置的win10电脑,由于测试关于windows系统上项目的安装程序时默认使用了c盘安装,发现安装后的项目不是崩溃就是运行没结果的,偶然间发现同一个安装程序在d盘或其他非系统盘安装则正常。很自然会怀疑这是安装之后的项目在c盘没有足够的读写权限的原因。果然在网上查找相关原因后发现是因为win10的安全权限提高,默认不允许用户权限写访问系统盘。

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

正常获取:

  于是手贱的我开始了一波犀利操作,手动把c盘的权限分配给所有人,但是由于默认账户不是管理员,导致对c盘的很多文件没有权限访问,电脑到手就不允许用户切换为管理员,这就让我很伤脑筋了,一怒之下做了最后的致命一击,更改c盘的所有者为我所在用户!当时的冲动总要付出代价的,于是电脑瞬间只留下了桌面壁纸,当我再次试图重启开机后,才偶然间想起,c盘已经丢失了TrustedInstaller的所有者和相关权限,这样系统启动就进不去了,哪里还有我所在用户的访问机会?于是就这样把电脑弄死了。

#第一种用entry

whoami /user

  因为所有的文件并没有损坏,只是无法访问,所以问题还不是最糟,但是没有权限进入c盘,原系统的所有操作包括恢复系统等,都是不可能存在了,当然中间也有试过使用大白菜的winpe切换回c盘权限,然而winpe里边却没有嵌入关于文件权限的内容,很遗憾也不能操作。

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");

            }
        }
}

图片 1

  就在我绝望着重新划分新区,从官网下使用U盘介质重装系统之后,在新系统上对旧系统所在磁盘分区进行修改所有者和权限之后,重启旧系统进入竟然又恰巧回来了。而且由于重新获取权限后为everyone完全控制,重新在c盘安装并运行项目也完全ok了。

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

如果要获取其他用户的SID就显得力不从心了,我们可以使用微软提供的系统工具

  兜兜转转一圈,只是为了降低c盘的安全性?

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");

            }

Sysinternals Suite

  下载地址:

之后解压到某个盘中,之后调用其中的PsGetsid.exe工具

图片 2

可以看出其中的得到的结果是相同的。

如果你想改变用户的Sid可以使用newsid软件来修改

 

TAG标签:
版权声明:本文由澳门金莎娱乐网站发布于澳门金莎娱乐网站,转载请注明出处:三种方法,获取用户的Sid的方法