iT邦幫忙

0

W10及Server2014 有很多程式要設定相容性及以系統管理員執行

請問有方法可以批次更改資料夾裡所有程式
以系統管理員執行 及 相容性設定嗎?

1 個回答

0
jeles51
iT邦研究生 5 級 ‧ 2017-11-20 09:58:01
最佳解答

請先在測試環境下測試先.
情境:要把 d:\tmp(含子資料夾)裡所有的 exe檔,都加入WINXP SP3相容性及管理員執行.

  1. 以下另存成 xxx.ps1
#找出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
  1. 以管理員權限開啟cmd (命令提示字元) ,輸入下列指令,並執行.
powershell -file xxx.ps1
  1. 會產出 d:\exePath.txt 及 d:\gogo.cmd
  2. 用管理員權限 執行 gogo.cmd即可.

參考: 若要更改相容性模式的Value,在下面連結有.
https://www.verboon.info/2011/03/running-an-application-as-administrator-or-in-compatibility-mode/

看更多先前的回應...收起先前的回應...
水九 iT邦新手 5 級 ‧ 2017-11-20 20:06:11 檢舉

謝謝喬大提供的語法
明日會找 W10電腦測試 感謝您
另外 您提供的參考網址 沒有提到W8的設定
如果要設定成W8 該如何設定?

jeles51 iT邦研究生 5 級 ‧ 2017-11-21 08:26:36 檢舉

您好,
我自己在W10測試後,去REGEDIT看,
WIN8 相容性的值是 WIN8RTM.

也可參考:
https://www.eightforums.com/tutorials/6832-compatibility-mode-use-windows-8-a.html

請問如果只要將單一.exe檔用相容性WIN7執行的話 批次檔要怎麼寫?

非常感謝

jeles51 iT邦研究生 5 級 ‧ 2017-12-07 11:42:59 檢舉

例如,只套用到 ok.exe,
把第3行,改成下面這樣即可.

$List = $Dir | where {$_.extension -eq "ok.exe"}

我要發表回答

立即登入回答