разбить группу на подгруппы в зависимости от ценности в группе - PullRequest
0 голосов
/ 18 июня 2020

У меня есть массив, содержащий список баз данных, серверов и узлов кластера, на которых размещены эти серверы. Я хочу разделить эту группу на 4 подгруппы, по одной для каждого узла. Как я могу это сделать?

План состоит в том, чтобы процесс проходил через каждую подгруппу. Это дает мне основную группу.

$Networks | %{
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | out-null
    $Srv = New-Object Microsoft.SqlServer.Management.Smo.Server $_.DataSource 
        $results += [PSCustomObject]@{
        NetworkInternalCode = $_.NetworkInternalCode
        DataSource = $_.DataSource
        InitialCatalog = $_.InitialCatalog
        ReportingDataSource = $_.ReportingDataSource
        ReportingInitialCatalog = $_.ReportingInitialCatalog
        HostNode = $Srv.ComputerNamePhysicalNetBIOS
        }
}

Это дает мне массив

NetworkInternalCode     : coal
DataSource              : d03\dev
InitialCatalog          : devcoal
ReportingDataSource     : d03\dev
ReportingInitialCatalog : reporting_devcoal
HostNode                : SQLD03

NetworkInternalCode     : lemons
DataSource              : d02\dev
InitialCatalog          : devlemons
ReportingDataSource     : d02\dev
ReportingInitialCatalog : reporting_devlemons
HostNode                : SQLD06


NetworkInternalCode     : coal
DataSource              : d05\dev
InitialCatalog          : devoranges
ReportingDataSource     : d05\dev
ReportingInitialCatalog : reporting_devcoranges
HostNode                : SQLD07

NetworkInternalCode     : apples
DataSource              : d08\dev
InitialCatalog          : devapples
ReportingDataSource     : d08\dev
ReportingInitialCatalog : reporting_devcapples
HostNode                : SQLD09

Когда я запрашиваю его, я получаю 4 имени узла

$results | Select -ExpandProperty HostNode -Unique
SQLD03
SQLD06
SQLD09
SQLD07

1 Ответ

0 голосов
/ 18 июня 2020

Вы можете разделить переменную следующим образом

$1, $2, $3, $4 = $results

Тестирование:

$res = @()
$res += [PSCustomObject]@{
NetworkInternalCode = "coal" 
DataSource = "do3\dev"
InitialCatalog = "devcoal"
ReportingDataSource = "do3\dev"
ReportingInitialCatalog = "reporting_devcoal"
HostNode = "SQLD03"
}
$res += [PSCustomObject]@{
NetworkInternalCode = "lemons"
DataSource = "do2\dev"
InitialCatalog = "devlemons"
ReportingDataSource = "do2\dev"
ReportingInitialCatalog = "reporting_devlemons"
HostNode = "SQLD06"
}
$1, $2 = $res

Вывод

PS C:\Users\Neko> $1

NetworkInternalCode     : coal
DataSource              : do3\dev
InitialCatalog          : devcoal
ReportingDataSource     : do3\dev
ReportingInitialCatalog : reporting_devcoal
HostNode                : SQLD03


PS C:\Users\Neko> $2


NetworkInternalCode     : lemons
DataSource              : do2\dev
InitialCatalog          : devlemons
ReportingDataSource     : do2\dev
ReportingInitialCatalog : reporting_devlemons
HostNode                : SQLD06


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...