powershell - 64ビットプロセスからSYSWOW64からファイルのリストを取得します

okwaves2024-01-25  197

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 ビット プロセスで実行することもできます。これは、S を使用してジョブとして実行することで実行できます。Tart-Job と RunAs32 パラメータ。

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

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

もう 1 つのオプションは、Environment.SpecialFolder を使用することです

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

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。