我正在尝试写入我的本地用户帐户无权访问的文件,如何以管理员身份打开和写入文件?
答案 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(见第一个答案)。
这种包装类的两个不同来源:
This stackoverflow solution具有良好的可读性和可用性。
以下是 CodeProject :A small C# Class for impersonating a User中的类似代码。
有关使用声明的更多信息,请参阅MSDN。
答案 2 :(得分:1)
您可能希望查看PSEXEC from Microsoft,它允许您以提升模式执行文件,并在需要时以其他用户身份执行。
您没有说明如何打开文件进行编写,但PSEXEC可以在batch / vbs文件中结合使用来执行另一个批处理/ vbs / exe。