我正在使用inno-setup來安裝需要在Win7上解除阻止端口4326(允許acl訪問)的程序,以便GET操作可以通過HTTP到端口4326 。netsh acl設置(需要替代方法 - 註冊表設置?)
我有一個管理員可以運行以取消阻塞端口的powershell腳本。但是這不能用作inno-setup [run]命令(因爲本地機器通常禁止腳本運行)。 (即powershell.exe -nowait & script.ps1)
在目標機器中是否有一些註冊表項可以設置,以解除阻塞端口?自從setup.exe以管理員身份運行後,我可以在inno-setup中輕鬆完成任務。我想一個自包含的EXE可以做同樣的事情。
這裏是我想要替換的腳本,只需在HKLM中設置註冊表設置即可。
set-alias netsh c:\Windows\System32\netsh.exe
$PORT = 4326
$domain = $Env:userdomain
$name = $Env:username
$ErrorActionPreference = "Continue";
netsh http delete urlacl url=http://*:$PORT/
netsh http add urlacl url=http://*:$PORT/ user=$domain\$name
如果這是您的所有腳本,您可以直接從安裝程序[運行] netsh.exe。 – jachguate
這是一個好主意。但是,如何從inno-setup的內部獲取用戶名/域名?我使用臨時提升的privilidges(admin)運行setup.exe。我在用戶名的inno-setup中看到一個常量:{username} 正在運行安裝程序或卸載程序的用戶的名稱(由GetUserName函數返回)。 –
我不想爲所有用戶打開它,只是一個運行安裝程序的用戶。 –