powershell - 从 64 位进程获取来自 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 位进程中运行脚本,您可以通过使用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
推荐阅读
- node.js - fs-extra:复制文件而不覆盖
- service-worker - Service Worker w offline.html 备份页面
- php - 使用 UPDATE 更新 MySQL 中的用户数据
- javascript - 框架集和 javascript 变量交互
- c# - 如何在 asp .net 或 mvc 中为多个页面使用单个保存和删除按钮
- batch-file - 变量表达式 %Var% 在批处理文件中的 for 循环中不起作用
- jenkins - 是否可以在共享库(Jenkins)的声明性管道中包含调用?
- vba - 基于具有动态范围的多列在 VBA 中设置关键字
- ibm-cloud-infrastructure - 我无法使用 nodejs 禁用 SSL VPN。但相同的代码启用 SSL VPN。我将 True/False 作为参数标志传递给我的函数。
- php - 开关改进