2

私はinno-setupを使用して、Win7のポート4326のブロックを解除する(ACLアクセスを許可する)必要のあるプログラムをインストールして、HTTP経由でポート4326に対してGET操作を実行できるようにしています。

管理者がポートのブロックを解除するために実行できる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
4

3 に答える 3

0

ファイアウォールルールはで見つけることができると思いますHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\

提案:このキーを.regとしてエクスポートし、他のステーションにインポートできるかもしれません。

于 2012-12-19T20:38:02.657 に答える
0

この質問の続きについては、inno-setup でのインストール後の実行として netsh.exe を参照してください。しかし、私は基本的に、ポストインストールとしてnetsh.exeを実行するというjachguateの答えが正しい方法のようです。

于 2012-12-24T19:10:19.847 に答える
0

を使用する代わりにnetsh、WinApi HttpSetServiceConfigurationを使用してください。正しいプロトタイプ宣言があれば、これ (およびその関連関数) を Inno から[Code](具体的には in で) 直接呼び出すことができます。ヘルプ ファイルの「DLLCurStepChanged(ssPostInstall)の使用」トピックを参照してください。

于 2012-12-21T08:28:04.050 に答える