Я пытаюсь запустить этот скрипт, который нашел на сайте Microsoft: https://gallery.technet.microsoft.com/scriptcenter/PowerShell-script-to-find-6fc15ecb/view/Discussions#content
Ошибка, которую я получаю:
? : You cannot call a method on a null-valued expression.
At C:\serviceaccounts\report-service-accounts.ps1:57 char:36
+ ... ceList = $data | ? { $_.StartName.toUpper().contains($currentDomain)}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Where-Object], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull,Microsoft.PowerShell.Commands.WhereObjectCommand
Вот раздел I полагаю, что ошибка в моей модифицированной версии возникла после нескольких попыток решить мою проблему: (Извините, что впервые публикую здесь, и не смог заставить весь скрипт написать правильно)
function processCompletedJobs(){
$jobs = Get-Job -State Completed
foreach( $job in $jobs ) {
$data = Receive-Job $job
Remove-Job $job
if ( $data.GetType() -eq [Object[]] ){
$serviceList = $data | ? { $_.StartName.toUpper().contains($currentDomain)}
foreach( $service in $serviceList ){
$account = $service.StartName
$occurance = "`"$($service.Name)`" service on $($service.SystemName)"
if ( $script:serviceAccounts.Contains( $account ) ){
$script:serviceAccounts.Item($account) += $occurance
}
else {
$script:serviceAccounts.Add( $account, @( $occurance ) )
}
}
}
elseif ( $data.GetType() -eq [String] ) {
$script:warnings += $data
Write-warning $data
}
}