Я пытаюсь найти способ сохранить свойства оператора select
в PowerShell, но он не работает. Я не нашел способа сделать весь оператор литералом, чтобы он не проверялся до тех пор, пока переменная не будет открыта.
Вот что работает:
$wsus.GetSummariesPercomputerTarget($CurrentMonthUpdateScope, $ComputerScope) |
Select-Object @{L="WSUSServer";E={$Server}},
@{L="FromDate";E={$($CurrentMonthUpdateScope.FromCreationDate).ToString("MM/dd/yyyy")}},
@{L="ToDate";E={$($CurrentMonthUpdateScope.ToCreationDate).ToString("MM/dd/yyyy")}},
@{L='Computer';E={($wsus.GetComputerTarget([guid]$_.ComputerTargetID)).FullDomainName}},
DownloadedCount,
NotInstalledCount,
InstalledPendingRebootCount,
FailedCount,
Installedcount |
Sort-Object -Property "Computer"
и я пытаюсь поместить упомянутые свойства (начиная сразу после оператора Select-Object
и заканчивая непосредственно перед последним каналом) в переменную, чтобы я мог использовать одни и те же свойства несколько раз с разными областями.
Я пробовал это:
$Properties = '@{L="WSUSServer";E={$Server}},
@{L="FromDate";E={$($CurrentMonthUpdateScope.FromCreationDate).ToString("MM/dd/yyyy")}},
@{L="ToDate";E={$($CurrentMonthUpdateScope.ToCreationDate).ToString("MM/dd/yyyy")}},
@{L="Computer";E={($wsus.GetComputerTarget([guid]$_.ComputerTargetID)).FullDomainName}},
DownloadedCount,
NotInstalledCount,
InstalledPendingRebootCount,
FailedCount,
Installedcount'
$wsus.GetSummariesPercomputerTarget($CurrentMonthUpdateScope, $ComputerScope) |
Select-Object $Properties |
Sort-Object -Property "Computer"
Пока он работает, он не дает никаких данных, и я думаю, что это сбивает с толку PowerShell.
Это дает тот же ответ:
$Properties = "@{L=`"WSUSServer`";E={$Server}},
@{L=`"FromDate`";E={$($CurrentMonthUpdateScope.FromCreationDate).ToString(`"MM/dd/yyyy`")}},
@{L=`"ToDate`";E={$($CurrentMonthUpdateScope.ToCreationDate).ToString(`"MM/dd/yyyy`")}},
@{L=`"Computer`";E={($wsus.GetComputerTarget([guid]$_.ComputerTargetID)).FullDomainName}},
DownloadedCount,
NotInstalledCount,
InstalledPendingRebootCount,
FailedCount,
Installedcount"
Есть варианты, мысли и т.д.?
$Properties
, и вы сразу увидите проблему. Строки в одинарных кавычках не интерполируют выражения$(...)
. Вместо этого вам нужно будет использовать строку в двойных кавычках (и избегать встроенных кавычек с помощью обратных кавычек). - person Joe White   schedule 15.12.2016"MM/dd/yyyy
)}'; } Я не уверен, что это работает. Дополнительные сведения о сплаттинге см. здесь: technet.microsoft.com /en-us/library/ Спасибо, Тим. - person Tim Haintz   schedule 15.12.2016