从 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
我在编写 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