2017-05-23 10 views
0

가용성 그룹 및 수신기 이름을 가져와 서버 목록을 연결 한 다음이를 사용하여 리소스 클러스터를 가져와야합니다. 내가 지금까지했던 어떤Powershell 변수 연결 결과 System.Data.DataRow

:

foreach ($cluster in GC "D:\TEST\Servers_List_TEST.txt") 
{ 
$AGName = invoke-sqlcmd -Serverinstance $cluster -query "select left(name,25) as ' ' from sys.availability_groups" 
$LNName = invoke-sqlcmd -Serverinstance $cluster -query "select left(dns_name,25) as ' ' from sys.availability_group_listeners" 
$NetworkName = "$AGName_$LNName" 
Get-ClusterResource -cluster $cluster -name $NetworkName | Get-ClusterParameter HostRecordTTL,RegisterAllProvidersIP } 

주요 문제는 $ NetworkName입니다에 있습니다. $AGName_$LNName을 연결하는 대신 System.data.DataRow를 반환합니다 (둘 사이에 밑줄이 필요합니다).

답변

1

주된 이슈는 $AGName이고 파트너 변수 $LNNameSystem.Data.DataRow 개체입니다. Invoke-SQLcmd이 반환됩니다. 그것들은 단순한 문자열이 아닙니다. 문자열을 강제로 사용하기 때문에 PowerShell에서는 ToString() 개체를 호출합니다.이 경우 개체 이름 만 사용됩니다.

또한이 개체에 쿼리의 (단 하나의 공백 임) 속성을 지정했습니다. 결과 오브젝트가 해당 특성 이름을 사용 중입니다.

쿼리에 적절한 열 이름을 추가해야하지만 해당 속성을 호출하여 관련 데이터를 가져올 수 있습니다.

$NetworkName = "$($AGName." ")_$($LNName." ")" 

그래서 사용하여 표현식 우리는 당신의 도움 및 관련 상담을위한 [space]

+0

덕분에 많은 속성 값을 입수했습니다! 그것은 아주 잘 작동했습니다 :) – AdemirP