iT邦幫忙

0

Autoit打包bat遇到權限問題

  • 分享至 

  • xImage

目前想把原先分公司同仁的VPN流程簡化,避免在輸入Remote Gateway時錯誤,也把自動設定檔套入GPO讓各項目及單位的人員登入時就可以自動抓到VPN的線路設定,但利用Autoit打包的時候遇到了權限的問題。

整個操作流程如下
使用的軟體是FortinetClientVPN7.0
利用FortinetClient自帶的檔案FCConfig.exe以及指令匯入設定檔,不過要在管理者權限的cmd下以下命令才能正常匯入。

FCConfig -m all -f %config_name% -o import -i 1

將Config與上面的指令寫入批次檔,再利用Autoit的Runas指令提全後打包,讓使用者可以自己執行不同部門的VPN設定。
但是在測試的過程發現以使用者的身分執行exe檔後,會卡在FCConfig.exe的權限不足
不知道是哪邊出了問題

Autoit的Runas指令確實解決了需要管理者權限才能複製資料到VPN安裝路徑下的問題,但是在執行FCConfig時卻又出現了權限不足。

Autoit的指令,分別測試了使用者與管理者身分發現的問題

; $sUserName;定義管理員賬號
; $sPassword;定義管理員密碼
; $Domain	;定義AD域
; $path		;定義批次檔路徑
If IsAdmin() Then
	MsgBox( 64,"正在匯入", "管理者權限",1)
	Run($path)
Else
	MsgBox( 64,"正在匯入", "一般使用者權限",1)
	RunAs($sUserName,$Domain,$sPassword,0, $path)
EndIf

從左到右是執行流程,上面管理者身分都正常,使用者到呼叫FCConfig時就會沒有權限,請問Autoit的Runas可能不是真的是管理者身分?
https://ithelp.ithome.com.tw/upload/images/20220302/201174108ZI6bphFCc.png

如果還有其他更簡單的解法也希望有大神提供/images/emoticon/emoticon13.gif


後來嘗試了Regwrite無法讓使用者自行匯入

Regwrite($HKEYpath & $Groupname ,"ServerCert","REG_SZ","1")

跟Runas /c REG ADD 也無法提權讓使用者使用

RunAs($sUserName, $Domain, $sPassword, 0, @ComSpec & " /c " & 'REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Fortinet\FortiClient\Sslvpn\Tunnels /v machine /t REG_DWORD /d 0', "",@SW_SHOW)

最後改採用ahfuyeuem的方法改用GPO派REG就成功了。
本來用意是用Autoit來提權但最後都沒有成功,如果有其他邦友找到辦法也歡迎告訴我,謝謝~

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
ahfuyeuem
iT邦研究生 4 級 ‧ 2022-03-03 15:25:45
最佳解答

這一定要用右鍵以管理員身分執行
你可以試試以下方法

  1. Regedit將以下路徑 "HKEY_LOCAL_MACHINE\SOFTWARE\Fortinet\FortiClient\Sslvpn\Tunnels"
    匯出成*.reg

https://upload.cc/i1/2022/03/03/xHgpr7.png

  1. 用任何方法讓User執行這登錄檔

也能達到你的目的

PS: 把圖中右邊的所有值用GPO派也可以
使用者設定 > Windows設定 > 登錄 > 建立每個值 (只套用一次打勾)

謝謝 我研究看看用寫入reg的方式來匯入設定檔

目前是直接把各部門的reg檔匯出用GPO派送,發現不管先派或後派都不會被蓋掉,使用者只要裝上vpn之後就會直接出現設定檔了,這樣比用Autoit方便多了,謝謝。

我要發表回答

立即登入回答