微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决通过64位进程从SYSWOW64获取文件列表

在Powershell脚本编写过程中遇到了问题。 我应该从poweshell 64位进程将3 .dll文件复制到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位进程中运行脚本,您可以通过使用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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。