2012-12-24 42 views
2

在以下腳本中,我運行netsh.exe以在TCP端口上啓用http(GET請求)。但即使安裝日誌是說退出代碼爲0,並且參數是正確的。我沒有看到端口啓用。有任何想法嗎?在inno-setup中運行netsh.exe作爲後安裝

; Script generated by the Inno Setup Script Wizard. 
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! 

#define MyAppName "Netsh" 
#define MyAppVersion "1.0" 
#define MyAppPublisher "Draper Laboratory" 
#define MyAppURL "http://www.draper.com/" 
#define MyAppExeName "MyProg.exe" 

[Setup] 
; NOTE: The value of AppId uniquely identifies this application. 
; Do not use the same AppId value in installers for other applications. 
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) 
AppId={{112CF442-ACA5-4799-BC72-72C98F90CED1} 
AppName={#MyAppName} 
AppVersion={#MyAppVersion} 
;AppVerName={#MyAppName} {#MyAppVersion} 
AppPublisher={#MyAppPublisher} 
AppPublisherURL={#MyAppURL} 
AppSupportURL={#MyAppURL} 
AppUpdatesURL={#MyAppURL} 
CreateAppDir=no 
OutputDir=C:\Users\ysg4206\Desktop 
OutputBaseFilename=setup 
Compression=lzma 
SolidCompression=yes 
ChangesEnvironment=True 
SetupLogging=True 

[Languages] 
Name: "english"; MessagesFile: "compiler:Default.isl" 

[Run] 
Filename: "{sys}\netsh.exe"; Parameters: "http delete urlacl url=http://*:4326/"; WorkingDir: "{sys}"; Flags: postinstall runascurrentuser; Description: "Remove Web Port 4326" 
Filename: "{sys}\netsh.exe"; Parameters: "http add urlacl url=http://*:4326/ user={%USERDOMAIN}\{%USERNAME}"; WorkingDir: "{sys}"; Flags: postinstall runascurrentuser; Description: "Add Web Port 4326" 

這裏是日誌:

2012-12-24 14:02:43.123 Log opened. (Time zone: UTC-05:00) 
2012-12-24 14:02:43.123 Setup version: Inno Setup version 5.5.2 (a) 
2012-12-24 14:02:43.123 Original Setup EXE: C:\Users\ysg4206\Desktop\setup.exe 
2012-12-24 14:02:43.123 Setup command line: /SL5="$4A0C72,54272,54272,C:\Users\ysg4206\Desktop\setup.exe" /SPAWNWND=$EF1420 /NOTIFYWND=$3540C26 /log="setup.log" 
2012-12-24 14:02:43.124 Windows version: 6.1.7601 SP1 (NT platform: Yes) 
2012-12-24 14:02:43.124 64-bit Windows: Yes 
2012-12-24 14:02:43.124 Processor architecture: x64 
2012-12-24 14:02:43.124 User privileges: Administrative 
2012-12-24 14:02:43.124 64-bit install mode: No 
2012-12-24 14:02:43.128 Created temporary directory: C:\Users\ysg4206\AppData\Local\Temp\is-JCDBN.tmp 
2012-12-24 14:02:45.492 Starting the installation process. 
2012-12-24 14:02:45.495 Directory for uninstall files: C:\Windows 
2012-12-24 14:02:45.496 Will append to existing uninstall log: C:\Windows\unins000.dat 
2012-12-24 14:02:45.500 -- File entry -- 
2012-12-24 14:02:45.501 Dest filename: C:\Windows\unins000.exe 
2012-12-24 14:02:45.504 Time stamp of our file: 2012-12-24 14:02:42.959 
2012-12-24 14:02:45.504 Dest file exists. 
2012-12-24 14:02:45.504 Time stamp of existing file: 2012-12-24 14:02:22.794 
2012-12-24 14:02:45.505 Version of our file: 51.52.0.0 
2012-12-24 14:02:45.506 Version of existing file: 51.52.0.0 
2012-12-24 14:02:45.506 Installing the file. 
2012-12-24 14:02:45.511 Uninstaller requires administrator: Yes 
2012-12-24 14:02:45.608 Leaving temporary file in place for now. 
2012-12-24 14:02:45.669 Installation process succeeded. 
2012-12-24 14:02:45.832 Need to restart Windows? No 
2012-12-24 14:02:46.661 -- Run entry -- 
2012-12-24 14:02:46.661 Run as: Current user 
2012-12-24 14:02:46.661 Type: Exec 
2012-12-24 14:02:46.661 Filename: C:\Windows\system32\netsh.exe 
2012-12-24 14:02:46.661 Parameters: http delete urlacl url=http://*:4326/ 
2012-12-24 14:02:46.831 Process exit code: 0 
2012-12-24 14:02:46.831 -- Run entry -- 
2012-12-24 14:02:46.831 Run as: Current user 
2012-12-24 14:02:46.831 Type: Exec 
2012-12-24 14:02:46.831 Filename: C:\Windows\system32\netsh.exe 
2012-12-24 14:02:46.831 Parameters: http add urlacl url=http://*:4326/ user=CSDL-SERVICES\ysg4206 
2012-12-24 14:02:46.951 Process exit code: 0 
2012-12-24 14:02:46.953 Deinitializing Setup. 
2012-12-24 14:02:46.959 Log closed. 
+0

正如我解釋[這裏](http://stackoverflow.com/questions/13959440/netsh-acl-setting-need-alternative-method-registry-settings?lq=1),你應該使用API試圖打電話給netsh。 – Miral

回答

1

進一步的測試,表明它正在工作。但我很想有一種方法來暫停閃爍的cmd.exe框,顯示一些文本然後退出。無法真正看到消息是什麼。

+0

您可以通過向該行添加runhidden標誌來隱藏閃爍的cmd框。 – Muis