C ++将文件复制到具有管理员权限的文件夹中

时间:2017-09-05 19:28:28

标签: c++ file copy directory admin

我想将文件复制到文件夹中,我需要管理员权限。

示例:

string oldPath = "C:\\Users\\Sony\\Desktop\\a.txt";
string newPath = "C:\\ProgramData\\Microsoft\\Network\\a.txt";

int main (){
     MoveFile(oldPath.c_str(), newPath.c_str());

     // now I have to send the permission, because the file won't be copied

     return 0;
}

如何将这些权限发送到此类文件夹?

谢谢你们

2 个答案:

答案 0 :(得分:1)

以管理员身份运行.exe文件。

答案 1 :(得分:0)

您有几个选择:

  1. 以管理员身份运行该应用。这为整个生命周期提供了整个应用管理员权限。除非您的整个应用程序始终真正需要管理员权限,否则您应该尽可能不这样做。否则,尽量使用最少的权限运行。

  2. 仅在文件复制期间暂时>获取管理员访问:

    • impersonate管理员用户,执行文件复制,完成后还原为原始用户。

    • 将文件复制逻辑移动到可以使用ShellExecute/Ex("runas")升级的单独进程。

    • 将文件复制逻辑移动到可以使用COM Elevation Moniker提升的COM对象。