2011-12-06 5 views
1

다음과 같이 Power-shell에서 Windows 서비스를 설치하려고합니다.Powershell에서 InstallUtil 매개 변수를 전달하십시오.

$sn = """" + $serviceName + " " + $exeName + """" 
C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe -i /ServiceName=[$sn] $exeFilePath 

다음 예외가 발생합니다.

Microsoft (R) .NET Framework Installation utility Version 2.0.50727.3053 
Copyright (c) Microsoft Corporation. All rights reserved. 

Exception occurred while initializing the installation: 
System.IO.FileNotFoundException: Could not load file or assembly 'file:///E:\Scheduled' or one of its dependencies. The system cannot f 
ind the file specified.. 

하지만 다음 명령이 작동합니다.

C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe -i /ServiceName=["Scheduled Download Service"] $exeFilePath 

동적 이름으로 Windows 서비스를 설치하고 Power-shell을 사용하여 서비스 이름을 전달하려고합니다. 어떤 도움을 주셔서 감사합니다.

대답은 VS 2008에 적합합니다.하지만 VS 2007에서는 실패합니다. InstallUtil이 수정 되었기 때문입니다.

자동으로 따옴표를 추가하고 그래서 우리는 (답 같이) 그들을 무시한다 $sn = """" + $serviceName + " " + $exeName + """"

이유는, InstallUtil (2.0)를 사용합니다. 그러나 InstallUtil (4)에서는 문자열에 임의의 위치에 따옴표가 포함되어 있으면 건너 뜁니다 (버그일까요? 문자열의 시작과 끝 부분에 따옴표가 있는지 확인해야합니다. 현재는 2.0 코드가 모두 나옵니다).

반사경은 친구입니다.

답변

3

귀하의 문제는이 라인에 있습니다

$sn = """" + $serviceName + " " + $exeName + """" 

당신이 간단한 무언가로 대체하거나이 같이 할 경우 :

$sn = $serviceName.ToString() + " " + $exeName 

그것은

+0

감사를 작동합니다. 그러나 서비스 이름은 [예약 된 다운로드 서비스]로 설치됩니다. 예약 다운로드 서비스를 기대합니다. – Vivasaayi

+0

여전히 [예약 다운로드 서비스]입니다. – Vivasaayi

+0

예약 된 다운로드 서비스 – Vivasaayi

관련 문제