从 64 位进程获取 SYSWOW64 文件列表

Get list of files from SYSWOW64 from 64 bit process

我在编写 powershell 脚本时遇到了问题。 我应该将 3 个 .dll 文件从 poweshell 64 位进程复制到 C:\Windows\SYSWOW64 文件夹。 如果我使用环境变量

$systemFolder = [System.Environment]::SystemDirectory

所以,64位系统下64位进程

$systemFolder = "C:\Windows\system32"

是否有任何环境变量或一些构造来访问 SYSWOW64 文件夹。我想到了这样的解决方案,但我认为还有更正确的解决方案

$targetFolder = [System.Environment]::SystemDirectory
if([Environment]::Is64BitProcess){
$targetFolder = "$env:windir\SYSWOW64"
}

非常感谢

我认为该解决方案没有问题,但您的另一个选择可能是 运行 您的脚本在 32 位进程中,您可以通过 运行nning 作为一项工作来完成使用 Start-Job 和 RunAs32 参数。

Start-Job -ScriptBlock {[Environment]::Is64BitProcess} -RunAs32 | Wait-Job | Receive-Job
False

Start-Job -ScriptBlock {[Environment]::Is64BitProcess} | Wait-Job | Receive-Job
True

另一种选择是使用 Environment.SpecialFolder

[Environment]::GetFolderPath([System.Environment+SpecialFolder]::SystemX86)
C:\WINDOWS\SysWOW64