我可以在powershell中这样做吗?阅读注册表,将二进制内容写入文件

Che*_*eso 3 .net registry powershell file stream

这是C#代码.你能帮我把它翻译成powershell吗?

private static void Main(string[] args)
{
    byte[] buffer = (byte[]) Registry.LocalMachine.OpenSubKey(@"HARDWARE\ACPI\DSDT\HP____\8510x\00010000").GetValue("00000000");
    if (File.Exists("8510x.orig"))
    {
        Console.WriteLine("File 8510x.orig already exists.");
    }
    else
    {
        using (FileStream stream = new FileStream("8510x.orig", FileMode.CreateNew))
        {
            stream.Write(buffer, 0, buffer.Length);
            stream.Flush();
            stream.Close();
        }
        Console.WriteLine("Wrote 8510x.orig.");
    }
}
Run Code Online (Sandbox Code Playgroud)

Kei*_*ill 10

您不想使用Out-File,因为它以字符串形式输出并使用unicode启动.以下工作基于类似的注册表项:

$b = Get-ItemProperty HKLM:\HARDWARE\ACPI\DSDT\A7546\A7546011\00000011 00000000
$b.'00000000' | Set-Content foo.txt -enc byte
Run Code Online (Sandbox Code Playgroud)

请注意,当您希望更直接地控制写入文件的内容时,Set-Content非常有用,尤其是在您想要写入原始字节时.