PowerShell DSC를 사용하여 RavenDB에서 복제를 설정하려고하는데 구성을 컴파일하려고 시도 할 때 스크립트 블록에서이 오류가 발생합니다.PowerShell DSC에서 문자열 바꾸기에서 변수를 사용할 때
내 스크립트 블록입니다PSDesiredStateConfiguration \ Node : 문자열 서식 지정 오류 : 입력 문자열의 형식이 잘못되었습니다.
TestScript = { $result = Invoke-WebRequest -Method GET "http://localhost:8080/Databases/Test/Docs/Raven/Replication/Destinations" -UseBasicParsing $ravenSlaves = "{0}".Split(",") foreach($ravenSlave in $ravenSlaves) { if($result -notmatch $ravenSlave) { return $false } } return $true } -f ($Node.RavenSlaves)
그리고
RavenSlaves
이 같은 노드 내 ConfigurationData에서 문자열과 같이 정의된다 : 여기
@{
NodeName = "localhost"
WebApplication = "test"
Role = "Master server"
RavenSlaves = "server1,server2"
}
문제는 경우에 연결되어있는 것 같다 I 'foreach
을 사용하여 $ravenSlaves
변수를 반복합니다. 왜냐하면 foreach
(및 if
내부 foreach
) 구성이 컴파일되고 mof 파일이 만들어집니다.
- "{0}"분할 (",")에는 -f 형식 연산자가 필요합니다. – Kiran
@Kiran, 네? 그게 내가 한 짓이 아닌가? 질문에서 제공 한 스크립트 블록을 보면 스크립트의 끝에 "-f ($ Node.RavenSlaves)"를 지정했습니다. 맞지 않아? – user2731951
괜찮 았어 질문의 dsc 부분을 참조하십시오 .... dsc의 스크립트 리소스는 문자열이며 $ using 수정자를 사용하여 외부에서 정의 된 값을 사용할 수 있으므로 $로 테스트 리소스에 ur 해시 테이블을 가져와야 할 수 있습니다. : myhashtable 다음 ravenslaves 키를 나누십시오 – Kiran