2016-10-04 2 views
0

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

$days = -0 
$date = (get-date).adddays($days) 
$lastboot = (Get-WmiObject Win32_OperatingSystem).LastBootUpTime 
$Computer = Get-ADComputer -SearchBase 'OU=______,OU=______,DC=______,DC=______' ` -Filter '*' | Select -EXP Name 

$lastbootconverted = ([WMI]'').ConvertToDateTime($lastboot) 

write-host $date 

write-host $lastboot 

write-host $lastbootconverted 

if($date -gt $lastbootconverted) 
{ 
write-host Need to reboot 
(Stop-Computer -$Computer -Force) 
} 
else 
{ 
write-host no need to reboot 
} 

Когда я запускаю его он говорит «СРП-сервер не доступен (Exception HRESULT: 0x800706BA).» Но если я просто поставить PC Name вместо «$ Computer», он закрывает ПК, как я хочу. Что это за ошибка RPC-сервера? Я не активирован брандмауэр, так что я невежественный ...

НУ = _____ и DC = ______ частные названия компаний

+0

Вы - $ Компьютер должен быть, что не $ Компьютер –

+0

@Taylor Гибб Я не думаю, что это так, но я попробовал это, и это не изменилось. – Gunter

+0

Каков результат работы компьютера? – BenH

ответ

0

У меня не окружение AD, чтобы проверить свою Get-ADComputer запрос, но это сработало для меня с помощью всего лишь массива компьютеров, поэтому должно быть хорошо для вас.

function Get-LastBootUpTime {    
param (
    $ComputerName 
) 
    $OperatingSystem = Get-WmiObject Win32_OperatingSystem -ComputerName $ComputerName    
    [Management.ManagementDateTimeConverter]::ToDateTime($OperatingSystem.LastBootUpTime)    
} 

$Days = -2 
$ShutdownDate = (Get-Date).adddays($days) 

$ComputerList = Get-ADComputer -SearchBase 'OU=______,OU=______,DC=______,DC=______' ` -Filter '*' | Select -EXP Name 

$ComputerList | foreach { 
    $Bootup = Get-LastBootUpTime -ComputerName $_ 

    Write-Host "$_ last booted: $Bootup" 

    if ($ShutdownDate -gt $Bootup) { 
     Write-Host "Rebooting Computer: $_" -ForegroundColor Red 
     Restart-Computer $_ -Force 
    } 
    else { 
     Write-Host "No need to reboot: $_" -ForegroundColor Green 
    } 
} 
+0

Эй, решение ниже не помогло мне больше, это не по-другому. наш, похоже, работает. Одна вещь не работает, хотя: $ Компьютер не перезагружается .... Я думаю, что bc не указано, что такое компьютер. Любые решения? – Gunter

+0

Я обновил _Stop-Computer_ до _Restart-Computer_, чтобы он теперь перезагрузился, а не выключился. Можете ли вы попробовать еще раз и сообщить мне, что происходит. –

+0

Проблема была в $ Computers :), которую вы тоже отредактировали, поэтому я думаю, что ваш скрипт должен работать нормально, спасибо вам большое – Gunter

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