Win10下WinRAR“拒绝访问”解决+获取everyone权限
眾所周知,win7下經(jīng)常有權(quán)限問題,彈出無法操作的框,后來就有人做了“管理員取得所有權(quán).reg”解決權(quán)限問題,每次遇到操作不了的文件,就右鍵來“奪個權(quán)”。但每個用戶都有一個sid,重裝系統(tǒng)后sid變更了,又要重新“奪個權(quán)”。最近換了Win10,連“奪權(quán)”都奪不了了。
首先,在一些目錄用記事本編輯,編輯完保存不了,彈一個“拒絕訪問”,網(wǎng)上給出的答案居然說存到桌面上,再復(fù)制回來。也是太麻煩。就算取得了管理員權(quán)限還是不能覆寫。
其次,WinRAR完全處于癱瘓的程度,想解壓,彈出一個“系統(tǒng)找不到指定的路徑”,想打壓縮包,又彈一個“拒絕訪問”。網(wǎng)絡(luò)上的解答是,解壓到桌面去,再復(fù)制回來。桌面簡直成萬能中轉(zhuǎn)站了啊!這種問題不解決我簡直要瘋掉。
我首先的思路是,“管理員取得所有權(quán).reg”實(shí)質(zhì)上是把所有權(quán)賦給了Administrators組,用戶也在管理員組下面,這樣每次操作文件,應(yīng)用要有管理員權(quán)限,再進(jìn)行操作。WinRAR是外來戶,沒有權(quán)限操作不了可以理解,Notepad是微軟你的親兒子啊,虎毒還不食子呢,連Notepad要保存文件都不讓,什么爹啊。
之后我給文件夾右鍵-屬性-安全-編輯-everyone-完全控制,保存。之后就可以正常操作了,想干嘛干嘛。但總不能讓我每個文件夾都這么來一通。剖開“管理員取得所有權(quán).reg”看看能動什么手腳。原版的長這樣:
Windows Registry Editor Version 5.00[-HKEY_CLASSES_ROOT\*\shell\runas][HKEY_CLASSES_ROOT\*\shell\runas] @="管理員取得所有權(quán)" "Icon"="C:\\Windows\\System32\\imageres.dll,-78" "NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\*\shell\runas\command] @="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"[-HKEY_CLASSES_ROOT\Directory\shell\runas][HKEY_CLASSES_ROOT\Directory\shell\runas] @="管理員取得所有權(quán)" "Icon"="C:\\Windows\\System32\\imageres.dll,-78" "NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\Directory\shell\runas\command] @="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t" "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"[-HKEY_CLASSES_ROOT\dllfile\shell][HKEY_CLASSES_ROOT\dllfile\shell\runas] @="管理員取得所有權(quán)" "HasLUAShield"="" "NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\dllfile\shell\runas\command] @="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F" "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"[-HKEY_CLASSES_ROOT\Drive\shell\runas][HKEY_CLASSES_ROOT\Drive\shell\runas] @="管理員取得所有權(quán)" "Icon"="C:\\Windows\\System32\\imageres.dll,-78" "NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\Drive\shell\runas\command] @="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t" "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"看來是利用takeown和icacls命令來提權(quán),把里面所有的administrators全部換成everyone,再在每句后面加個 & pause來個暫停,以免每次一閃而過都看不清成功沒有。利用條件判斷加字符檢測應(yīng)該可以做到成功了不暫停,失敗才暫停,不過懶得研究了。得到“everyone取得所有權(quán).reg”:
Windows Registry Editor Version 5.00[-HKEY_CLASSES_ROOT\*\shell\runas][HKEY_CLASSES_ROOT\*\shell\runas] @="everyone取得所有權(quán)" "Icon"="C:\\Windows\\System32\\imageres.dll,-78" "NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\*\shell\runas\command] @="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant everyone:F & pause" "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant everyone:F & pause"[-HKEY_CLASSES_ROOT\Directory\shell\runas][HKEY_CLASSES_ROOT\Directory\shell\runas] @="everyone取得所有權(quán)" "Icon"="C:\\Windows\\System32\\imageres.dll,-78" "NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\Directory\shell\runas\command] @="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant everyone:F /t & pause" "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant everyone:F /t & pause"[-HKEY_CLASSES_ROOT\dllfile\shell][HKEY_CLASSES_ROOT\dllfile\shell\runas] @="everyone取得所有權(quán)" "HasLUAShield"="" "NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\dllfile\shell\runas\command] @="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant everyone:F & pause" "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant everyone:F & pause"[-HKEY_CLASSES_ROOT\Drive\shell\runas][HKEY_CLASSES_ROOT\Drive\shell\runas] @="everyone取得所有權(quán)" "Icon"="C:\\Windows\\System32\\imageres.dll,-78" "NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\Drive\shell\runas\command] @="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant everyone:F /t & pause" "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant everyone:F /t & pause"運(yùn)行。完美!現(xiàn)在想怎么整怎么整了。
這樣搞也有一個弊端,之前每操作一個文件就要彈個框,現(xiàn)在不彈框了可能影響到了文件的安全性,但也懶得管了,之前那種情況就應(yīng)該給用戶彈個框“要不要修改文件?”,而不是干脆來個“拒絕訪問”。應(yīng)該是我對windows的權(quán)限管理理解不夠吧。總之現(xiàn)在這么搞了就一勞永逸了,文件所有者變成了everyone,這樣就算以后重裝系統(tǒng)也不用再來“奪個權(quán)”了。
更新:
用了一會兒,我發(fā)現(xiàn)上面的批處理還是用不了。右鍵看屬性,文件夾上面的everyone里面沒有“完全控制”,點(diǎn)開詳情,看到everyone的屬性上有個“此文件夾”,而沒有對文件夾下面的文件生效。詳細(xì)閱讀了icacls的說明,也沒找到怎么改。
轉(zhuǎn)機(jī)在cacls上面。改用cacls命令:
cacls c:\a.txt /E /G everyone:Fbingo! 生效了。實(shí)踐發(fā)現(xiàn),不加/E的話會出現(xiàn)一行字讓選擇Y或N。/G的意思是指定用戶和權(quán)限。
對于文件夾,還要在最后加個/T以對文件夾下面的文件生效,/T只能加在最后。
改動后命令長這樣:
cmd.exe /c takeown /f \"%1\" && cacls \"%1\" /E /G everyone:F & pause然后保存“Everyone取得所有權(quán).reg”,運(yùn)行。還是不奏效。是不是前面的takeown搗的鬼?
去掉takeown。終于成功。
最終得到的“Everyone取得所有權(quán).reg”如下:
Windows Registry Editor Version 5.00[-HKEY_CLASSES_ROOT\*\shell\runas][HKEY_CLASSES_ROOT\*\shell\runas] @="Everyone取得所有權(quán)" "Icon"="C:\\Windows\\System32\\imageres.dll,-78" "NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\*\shell\runas\command] @="cmd.exe /c cacls \"%1\" /E /G everyone:F & pause" "IsolatedCommand"="cmd.exe /c cacls \"%1\" /E /G everyone:F & pause"[-HKEY_CLASSES_ROOT\Directory\shell\runas][HKEY_CLASSES_ROOT\Directory\shell\runas] @="Everyone取得所有權(quán)" "Icon"="C:\\Windows\\System32\\imageres.dll,-78" "NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\Directory\shell\runas\command] @="cmd.exe /c cacls \"%1\" /E /G everyone:F /T & pause" "IsolatedCommand"="cmd.exe /c cacls \"%1\" /E /G everyone:F /T & pause"[-HKEY_CLASSES_ROOT\dllfile\shell][HKEY_CLASSES_ROOT\dllfile\shell\runas] @="Everyone取得所有權(quán)" "HasLUAShield"="" "NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\dllfile\shell\runas\command] @="cmd.exe /c cacls \"%1\" /E /G everyone:F & pause" "IsolatedCommand"="cmd.exe /c cacls \"%1\" /E /G everyone:F & pause"[-HKEY_CLASSES_ROOT\Drive\shell\runas][HKEY_CLASSES_ROOT\Drive\shell\runas] @="Everyone取得所有權(quán)" "Icon"="C:\\Windows\\System32\\imageres.dll,-78" "NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\Drive\shell\runas\command] @="cmd.exe /c cacls \"%1\" /E /G everyone:F /T & pause" "IsolatedCommand"="cmd.exe /c cacls \"%1\" /E /G everyone:F /T & pause"總結(jié)
以上是生活随笔為你收集整理的Win10下WinRAR“拒绝访问”解决+获取everyone权限的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。