請先在測試環境下測試先.
情境:要把 d:\tmp(含子資料夾)裡所有的 exe檔,都加入WINXP SP3相容性及管理員執行.
#找出D:\tmp 所有exe檔的完整路徑,並另存為 D:\exePath.txt
$Dir = get-childitem d:\tmp -recurse
$List = $Dir | where {$_.extension -eq ".exe"}
$List |select -ExpandProperty fullname |out-file D:\exePath.txt
#指定$add1/$add2字串
$add1='REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "'
$add2='" /t REG_SZ /d "WINXPSP3 RUNASADMIN" /f'
#找出exePath.txt每一列字串,並在前面加上$add1,後面加上$add2
#產出 D:\gogo.cmd ,
#執行 gogo.cmd 會將 D:\tmp裡所有exe檔 加入WINXP SP3相容性及系統管理員執行
del d:\gogo.cmd
$InputFile = Get-Content "d:\exePath.txt"
ForEach($Obj in $InputFile)
{
$combine = $add1+ $Obj + $add2
Add-Content -path d:\gogo.cmd -value $combine
powershell -file xxx.ps1
參考: 若要更改相容性模式的Value,在下面連結有.
https://www.verboon.info/2011/03/running-an-application-as-administrator-or-in-compatibility-mode/
您好,
我自己在W10測試後,去REGEDIT看,
WIN8 相容性的值是 WIN8RTM.
也可參考:
https://www.eightforums.com/tutorials/6832-compatibility-mode-use-windows-8-a.html
請問如果只要將單一.exe檔用相容性WIN7執行的話 批次檔要怎麼寫?
非常感謝
例如,只套用到 ok.exe,
把第3行,改成下面這樣即可.
$List = $Dir | where {$_.extension -eq "ok.exe"}