Невозможно проверить аргумент параметра - PullRequest
0 голосов
/ 07 января 2019

Для создания пула я пытаюсь выбрать 4 диска из 6.

Я могу получить список уникальных идентификаторов, как показано ниже:

PS C:\> <b>Get-PhysicalDisk|? Canpool|ft UniqueId</b>

UniqueId
--------
{3b34bfc1-1022-11e9-9df0-806e6f6e6963}
{3b34bfc3-1022-11e9-9df0-806e6f6e6963}
{3b34bfc5-1022-11e9-9df0-806e6f6e6963}
{3b34bfc7-1022-11e9-9df0-806e6f6e6963}
{3b34bfc9-1022-11e9-9df0-806e6f6e6963}
{3b34bfcb-1022-11e9-9df0-806e6f6e6963}

Я также могу выбрать первые четыре:

PS C:\> <b>Get-PhysicalDisk |? CanPool|? HealthStatus| select -first 4</b>

FriendlyName  SerialNumber CanPool OperationalStatus HealthStatus Usage       Size
------------  ------------ ------- ----------------- ------------ -----       ----
VBOX HARDDISK              True    OK                Healthy      Auto-Select 5 GB
VBOX HARDDISK              True    OK                Healthy      Auto-Select 5 GB
VBOX HARDDISK              True    OK                Healthy      Auto-Select 5 GB
VBOX HARDDISK              True    OK                Healthy      Auto-Select 5 GB

Чего я хочу добиться, так это выбрать диски, которые я хочу, а не первые 4 или все, но, скажем, диски с номерами 1, 2, 4, 6 или UnıqueId, начиная с 3b34bfc1, 3b34bfc3, 3b34bfc7, 3b34bfcb.

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Я смог решить:

    PS C:\Users\Administrator> Get-PhysicalDisk|? Canpool|ft UniqueId

    UniqueId
    --------
    {78f3d471-15cb-11e9-9df3-806e6f6e6963}
    {78f3d472-15cb-11e9-9df3-806e6f6e6963}
    {78f3d473-15cb-11e9-9df3-806e6f6e6963}
    {78f3d474-15cb-11e9-9df3-806e6f6e6963}
    {78f3d475-15cb-11e9-9df3-806e6f6e6963}
    {78f3d476-15cb-11e9-9df3-806e6f6e6963}


    PS C:\Users\Administrator> Get-PhysicalDisk|? Canpool|? {"{78f3d471-15cb-11e9-        9df3-806e6f6e6963};{78f3d472-15cb-11e9-9df
    3-806e6f6e6963}".Contains($_.UniqueId)}

    FriendlyName  SerialNumber CanPool OperationalStatus HealthStatus Usage       Size
    ------------  ------------ ------- ----------------- ------------ -----       ----
    VBOX HARDDISK              True    OK                Healthy      Auto-Select 5 GB
    VBOX HARDDISK              True    OK                Healthy      Auto-Select 5 GB
0 голосов
/ 07 января 2019

Вы можете попробовать это:

$idFilter = '3b34bfc1', '3b34bfc3', '3b34bfc7', '3b34bfcb'
Get-PhysicalDisk -CanPool $true -HealthStatus 'Healthy' | 
     Where-Object { $idFilter -contains (($_.UniqueId).Substring(1, 8)) } | 
     Select -First 4

Используя ваши примеры, вы получите:

UniqueId                               FriendlyName  SerialNumber CanPool OperationalStatus HealthStatus Usage       Size
--------                               ------------  ------------ ------- ----------------- ------------ -----       ----
{3b34bfc1-1022-11e9-9df0-806e6f6e6963} VBOX HARDDISK              True    OK                Healthy      Auto-Select 5 GB
{3b34bfc3-1022-11e9-9df0-806e6f6e6963} VBOX HARDDISK              True    OK                Healthy      Auto-Select 5 GB
{3b34bfc7-1022-11e9-9df0-806e6f6e6963} VBOX HARDDISK              True    OK                Healthy      Auto-Select 5 GB
{3b34bfcb-1022-11e9-9df0-806e6f6e6963} VBOX HARDDISK              True    OK                Healthy      Auto-Select 5 GB
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...