2015-01-16 3 views
0

начать мою командуФормата Powershell Command

Get-Clustergroup | ? { $_.groupType -eq "VirtualMachine" } 

который возвращает

Name   OwnerNode State 
----   --------- ----- 

TESTBED   NODE1  Online 
MACHINE01  NODE1  Online 

Так я запускаю следующую команду, чтобы возвращать только значения и раздеть белое пространство и пустые строки.

Get-Clustergroup | ? { $_.groupType -eq "VirtualMachine" } | foreach { $_Name } 

Который возвращает имена машин, как и ожидалось,

TESTBED 
MACHINE01 

У меня есть проблема, потому что я также хочу, чтобы вытащить статус (состояние) этой машины. Я пытался.

Get-Clustergroup | ? { $_.groupType -eq "VirtualMachine" } | foreach { $_Name,$_State } 

, но это не возвращает статус также просто имя. Я хотел получить что-то вроде.

TESTBED,Online 
MACHINE01,Online 

ответ

1

Вы можете использовать формат строку:

$timeframe = (get-date).AddMinutes(-80) 
$log | ? { $_.failures -like '*Denied*' -or $_.failures -like '*error*' -and [datetime]$_.'date-time' -ge $timeframe } 

Get-Clustergroup | ? { $_.groupType -eq "VirtualMachine" } | foreach { '{0},{1}' -f $_.Name,$_.State } 
1

Вы можете использовать

Get-ClusterGroup | 
    Where-Object { $_.groupType -eq "VirtualMachine" } | 
    Select-Object Name, State 

Чтобы запросить свойства, нужно и вернуть их в качестве объектов в командной строке, которая затем будет отображаться как:

Name   State 
----   ----- 
TESTBED   Online 
MACHINE01  Online 

Или вы могут использовать

Get-ClusterGroup | 
    Where-Object { $_.groupType -eq 'VirtualMachine' } | 
    ForEach-Object { '{0},{1}' -f $_.Name, $_.State } 

Чтобы вернуть значение строки точно так, как вы просили:

TESTBED,Online 
MACHINE01,Online 
+0

Я также хочу, чтобы лишить пробельные и заголовки. –

+0

@MattLeyland см. Мои правки –

+1

Вам не нужен backtick 'здесь, так как' '' уже требует дополнительный операнд. – PetSerAl

Смежные вопросы