我目前正在开发一个程序,用于在Windows 7和Windows 10计算机上准备和运行sysprep(基于特定变量)。
我为每个操作系统创建了标准化的XML文件,但是在创建过程中遇到问题,程序决定将文件放在SysWOW64中。
我已经将程序改为基于x86,试图避免这种方法无效。我还尝试使用“XCopy”为CMD嵌入脚本,以专门移动仍无法正常工作的文件。下面是我试图使工作没有成功的代码的相关部分。
try
{
using (StreamWriter Unattend = new StreamWriter("C:\\Windows\\System32\\sysprep\\unattend.xml"))
{
Unattend.WriteLine("<settings pass=\"generalize\">");
Unattend.Write("</unattend>");
}
}
catch
{
MessageBox.Show("Failed Create XML File");
}
答案 0 :(得分:0)
可以通过对内核的p / Invoke调用来禁用文件系统重定向。
取自http://www.tonycamilli.com/blog/2005/07/disabling-wow64-file-system:
class Wow64Mgr
{
[STAThread]
static void Main(string[] args)
{
try
{
if(Wow64Interop.EnableWow64FSRedirection(false))
Console.WriteLine("WOW64 File System Redirection Disabled");
else
Console.WriteLine("Failure Disabling WOW64 File System Redirection");
}
catch (Exception exc)
{
Console.WriteLine("Failure Setting WOW64 File System Redirection.");
Console.WriteLine(exc.Message);
}
}
}
public class Wow64Interop
{
[DllImport("Kernel32.Dll", EntryPoint="Wow64EnableWow64FsRedirection")]
public static extern bool EnableWow64FSRedirection(bool enable);
}
这可能有各种疯狂的副作用,所以不要让它被禁用。您应该在写入文件之前立即将其关闭,并在完成后立即将其重新打开。