Browse Source

Run icacls.exe twice, once for each change - GitHub issue #71

Adam Ierymenko 11 years ago
parent
commit
367b5439e1
1 changed files with 6 additions and 1 deletions
  1. 6 1
      node/Utils.cpp

+ 6 - 1
node/Utils.cpp

@@ -265,7 +265,12 @@ void Utils::lockDownFile(const char *path,bool isDir)
 			CloseHandle(processInfo.hThread);
 			CloseHandle(processInfo.hThread);
 		}
 		}
 		*/
 		*/
-		if (CreateProcessA(NULL,(LPSTR)(std::string("C:\\Windows\\System32\\icacls.exe \"") + path + "\" /inheritance:d /remove *S-1-5-32-545 /Q").c_str(),NULL,NULL,FALSE,0,NULL,NULL,&startupInfo,&processInfo)) {
+		if (CreateProcessA(NULL,(LPSTR)(std::string("C:\\Windows\\System32\\icacls.exe \"") + path + "\" /inheritance:d /Q").c_str(),NULL,NULL,FALSE,0,NULL,NULL,&startupInfo,&processInfo)) {
+			WaitForSingleObject(processInfo.hProcess,INFINITE);
+			CloseHandle(processInfo.hProcess);
+			CloseHandle(processInfo.hThread);
+		}
+		if (CreateProcessA(NULL,(LPSTR)(std::string("C:\\Windows\\System32\\icacls.exe \"") + path + "\" /remove *S-1-5-32-545 /Q").c_str(),NULL,NULL,FALSE,0,NULL,NULL,&startupInfo,&processInfo)) {
 			WaitForSingleObject(processInfo.hProcess,INFINITE);
 			WaitForSingleObject(processInfo.hProcess,INFINITE);
 			CloseHandle(processInfo.hProcess);
 			CloseHandle(processInfo.hProcess);
 			CloseHandle(processInfo.hThread);
 			CloseHandle(processInfo.hThread);