|
本帖最后由 netmaple 于 2017-1-4 20:56 编辑
问题已经解决了谢谢各位同学
想替换Syswow64下的dll利用DOS下 takeown 给文件赋予了管理权限确还是操作不了,那位同学给个解答,我下面的代码是按照我自己的理解思路去操作的结果失败了
#RequireAdmin
Func _DirAcsece($MoveFile)
$Attrib = FileGetAttrib($MoveFile)
If StringInStr($Attrib, "D") Then
If @OSVersion = "WIN_XP" Then
RunWait(@ComSpec & ' /c echo y|Cacls "' & $MoveFile & '" /c /t /p administrators:F', @ScriptDir, @SW_HIDE)
Else
RunWait(@ComSpec & ' /c takeown /f "' & $MoveFile & '" /r /d y && icacls "' & $MoveFile & '" /grant administrators:F /t', @ScriptDir, @SW_HIDE)
EndIf
Else
If @OSVersion = "WIN_XP" Then
RunWait(@ComSpec & ' /c echo y|Cacls "' & $MoveFile & '" /c /t /p administrators:F', @ScriptDir, @SW_HIDE)
Else
RunWait(@ComSpec & ' /c takeown /f "' & $MoveFile & '" && icacls "' & $MoveFile & '" /grant administrators:F', @ScriptDir, @SW_HIDE)
EndIf
EndIf
EndFunc ;==>_DirAcsece
_DirAcsece("C:\Windows\Syswow64\sfc_os.dll")
Sleep(500)
RunWait(@ComSpec & ' /c RD /S /Q "' & "C:\Windows\Syswow64\sfc_os.dll" & '.\"', '', @SW_HIDE) ;==>删除测试要是可以删除的话就可以替换
;FileInstall("sfc_os.dll", "C:\Windows\Syswow64\sfc_os.dll", 1);==>替换测试
;下面调试时候确认一下是否成功
If FileExists("C:\Windows\Syswow64\sfc_os.dll") Then
MsgBox(0, "", "存在")
Else
MsgBox(0, "", "不存在")
EndIf |
|