如何解决通过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 举报,一经查实,本站将立刻删除。