Invoke-Command не работает

Я безуспешно пытался включить команду Invoke в этот скрипт. Какие-нибудь идеи?

Похоже, ваш пост - это в основном код пожалуйста, добавьте более подробную информацию. Вот мой код

$ServerListFile = "C:\Group 25.txt"
$OutputFile = "C:\Group 258.HTM"
$MAX_LOAD_THRESHOLD = 50

$Outputreport = "<HTML><TITLE>  Server Health Report </TITLE> 
<BODY background-color:peachpuff> 
<font color  = ""#99000"" face = ""Microsoft Tai le""> 
<H2> Exchange Server Health Report </H2></font> 
<Table border=1 cellpadding=0 cellspacing=0> 
<TR bgcolor=gray align=center> 
 <TD><B>Server Name</B></TD> 
 <TD><B>Avrg.CPU Utilization</B></TD> 
 <TD><B>Memory Utilization</B></TD> 
 <TD><B>C Drive Utilization</B></TD></TR>" 

$ServerList = Get-Content $ServerListFile -ErrorAction SilentlyContinue  

$Result = Invoke-Command -ComputerName USCDC01TWMSP001  { 
 try {
   $computername = $_

   $AVGProc = Get-CimInstance -computername $computername win32_processor |  
   Measure-Object -property LoadPercentage -Average | Select-Object Average 
   $OS = Get-CimInstance -computername $computername win32_operatingsystem | 
   Select-Object @{Name = "MemoryUsage"; Expression = { [System.Math]::Round(((($_.TotalVisibleMemorySize - $_.FreePhysicalMemory) * 100) / $_.TotalVisibleMemorySize), 2) } } 
   $vol = Get-CimInstance -ComputerName $computername win32_Volume -Filter "DriveLetter = 'C:'" | 
   Select-object @{Name = "C PercentFree"; Expression = { [System.Math]::Round( (($_.FreeSpace / $_.Capacity) * 100), 2) } }  

   #Return Good Data Object
   $result = [PSCustomObject] @{  
     ServerName = "$computername" 
     CPULoad    = $($AVGProc.Average) 
     MemLoad    = $($OS.MemoryUsage)
     CDrive     = $($vol.'C PercentFree') 
     HasError   = $false
   }
 }
 catch {
   #Return Bad Data Object
   $result = [PSCustomObject] @{  
     ServerName = "$computername" 
     CPULoad    = "Error" 
     MemLoad    = "Error" 
     CDrive     = "Error" 
     HasError   = $true
   }
 }

 return $result
} -ThrottleLimit 5
                         
Foreach ($Entry in $Result) {  
 if (($Entry.CpuLoad -gt $MAX_LOAD_THRESHOLD) -or ($Entry.memload -gt $MAX_LOAD_THRESHOLD)) {  
   $Outputreport += "<TR bgcolor=red>"; $I++  
 }  
 else { 
   $Outputreport += "<TR>"  
 } 
 $Outputreport += "<TD>$($Entry.Servername)</TD><TD align=center>$($Entry.CPULoad)%</TD><TD align=center>$($Entry.MemLoad)%</TD><TD align=center>$($Entry.Cdrive)%</TD></TR>"  
} 
 
$Outputreport += "</Table></BODY></HTML>"  

$Outputreport | out-file $OutputFile  

function Send-Report() {
 Invoke-Expression $OutputFile
 ##Send email functionality from below line, use it if you want    
 #$smtpServer = "webmail.bcdtravel.com" 
 #$smtpFrom = "[email protected]" 
 #$smtpTo = "[email protected]" 
 ##$messageSubject = "Exchange Server Health report" 
 #$message = New-Object System.Net.Mail.MailMessage $smtpfrom, $smtpto 
 #$message.Subject = $messageSubject 
 ##$message.IsBodyHTML = $true 
 #$message.Body = "<head><pre>$style</pre></head>" 
 ##$message.Body += Get-Content $OutputFile
 $smtp = New-Object Net.Mail.SmtpClient($smtpServer) 

 if ($I -ge 1) { 
   $smtp.Send($message)
 }
}

Remove-Variable * -ErrorAction SilentlyContinue

Спасибо. Похоже, ваш пост - это в основном код; пожалуйста, добавьте более подробную информацию.

Похоже, ваш пост - это в основном код пожалуйста, добавьте более подробную информацию.

В названии написано, что Invoke-Command «не работает» - не могли бы вы подробнее рассказать об этом? Он висит? Кидать сообщение об ошибке? Если да, то каковы сообщения об ошибках?

Mathias R. Jessen 30.03.2021 16:59

Я не получаю ошибку. Выполняет команду без ошибок или вывода.

Skeggjold 30.03.2021 17:01

Как вы определили, что он не возвращает никаких результатов? Вы удалили Remove-Variable * и проверили $Result после выполнения?

Mathias R. Jessen 30.03.2021 17:06

В своем блоке сценариев вы назначаете имя компьютера $ _ - в нем ничего не будет. Сделайте write-host $ _ в качестве первой строки в удаленном блоке сценариев, и вы увидите, что она пуста. Возможно, измените его на $ env: computername

Doug Maurer 30.03.2021 17:17
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
4
23
0

Другие вопросы по теме