2012-11-22 48 views
0

我創建了一個獨立的wcf JSON服務(端口4326)。在Windows 7中,我發現,無論我作爲管理員身份運行,或使用netsh作爲命令行(只有一次),以解除端口:namespace reservations

e.g. C:> netsh http add urlacl url=http://+:4326/ user=CSDL-SERVICES\ysg4206 

參見:http://msdn.microsoft.com/en-us/library/ms733768.aspx

是否有辦法我可以在.NET應用程序中執行此操作(以便用戶在安裝程序後不必執行此操作)可以發現用戶帳戶,並且可以像netsh程序一樣永久執行此操作嗎?

或者,在InstallShield中有一些方法可以找出用戶的域名/用戶名,然後在安裝過程中將其作爲腳本運行?

+0

我給了一些三分球,儘管公認的答案的概率很低。 (參考InstallShield標籤上的課程) –

+0

Chris,實際上,您已經幫助過了,只是指出在intaller中這樣做可能更清晰,更好,而不是在.NET應用程序中弄清楚如何實現。 –

回答

1

您正在使用什麼InstallShield版本和項目類型?

如果是MSI,則可以使用EXE自定義操作來運行該命令。另一種選擇是調用LaunchAppAndWait來調用EXE的InstallScript自定義操作。 (沒有閃爍的DOS提示符。)

另外,如果是MSI,則可以創建一個使用靜默執行自定義操作模式或可能防火牆擴展的WiX合併模塊。

FirewallException Element (Firewall Extension)

Quiet Execution Custom Action

Augmenting InstallShield using Windows Installer XML - Certificates

LaunchAppAndWait

Q102426: HOWTO: Launch a Custom Executable

+0

我正在使用Spring 2012 PRO。所以我所看到的是在運行netsh.exe的末尾運行Powershell腳本(powershell讓我執行諸如Get-ChildItem Env:UserName之類的操作)。現在我只需要知道如何從PowerShell腳本中提升ADMIN特權。 (netsh.exe需要WIN7中的管理員)。這有意義嗎? –

+0

不是。 Windows Installer具有可用於傳遞的屬性,例如[UserName]。但是,您的用戶名將是SYSTEM,因爲這是一個提升的自定義操作。你真的想傳遞在ServiceInstall表中使用的屬性來創建服務。 –