写入文件为不同的用户

时间:2014-05-27 13:41:54

标签: vba file-io admin impersonation

我正在尝试写入我的本地用户帐户无权访问的文件,如何以管理员身份打开和写入文件?

3 个答案:

答案 0 :(得分:4)

您需要启动另一个具有管理员权限的进程。为此,请使用' runas'来调用ShellExecute。作为第二个参数(这将打开一个用户帐户控制对话框)。该可执行文件可以是独立的,也可以是调用ShellExecute的同一个。

答案 1 :(得分:1)

使用块中的一个好的模拟包装类是我之前成功使用的:

using (new Impersonation(domain, username, password))
{
   // <code that executes under different user context>
}

使用声明非常适合代码可读性,因为seen in this example并且确保所使用的对象正确处理达到最终} 字符(超出范围)。显然有no guarantee of garbage collection though(见第一个答案)。

这种包装类的两个不同来源:

  1. This stackoverflow solution具有良好的可读性和可用性。

  2. 以下是 CodeProject A small C# Class for impersonating a User中的类似代码。

  3. 有关使用声明的更多信息,请参阅MSDN

答案 2 :(得分:1)

您可能希望查看PSEXEC from Microsoft,它允许您以提升模式执行文件,并在需要时以其他用户身份执行。

您没有说明如何打开文件进行编写,但PSEXEC可以在batch / vbs文件中结合使用来执行另一个批处理/ vbs / exe。