OU = _는 개인 회사 이름입니다. 나는 그것이 재시동되고 있다는 것을 안다. 이것은 실제 hutdown 과정에 들어가기 전에 테스트하기위한 것이다.PowerShell 원격 PC 종료, 단일 PC
function Get-LastBootUpTime {
param (
$ComputerName
)
$OperatingSystem = Get-WmiObject Win32_OperatingSystem -ComputerName $ComputerName
[Management.ManagementDateTimeConverter]::ToDateTime($OperatingSystem.LastBootUpTime)
}
$Days = -0
$ShutdownDate = (Get-Date).adddays($days)
$ComputerList = Get-ADComputer -SearchBase 'OU=TEST-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 $Computer -Force
}
else {
Write-Host "No need to reboot: $_" -ForegroundColor Green
}
}
회사에서 2 일 이상 실행되는 모든 PC를 종료하려고합니다. 스크립트가 가지 수행하지만,이 점에 관해서는 오류를 보여줍니다 :
이restart-Computer $Computer -Force
내가 $ 컴퓨터 대신 입력하면 $ COMPUTERLIST 스크립트들은 일부러 경우에도 해당 OU의 모든 PC를 종료 2 일 이상 경과하십시오. 그래서 전체 회사를 폐쇄하기 위해 1 대의 PC 만 2 일 이상 실행해야합니다. 이는 내가 원하는 것이 아닙니다. 스크립트가 이미 2 일 이상 실행 된 경우에만 PC를 끄도록하려면 어떻게해야합니까?
를 좋아하는 경우에
당신은 주위에 좀 더 로깅을 추가 할 수 있습니다. 나는 내가 끝내고 자하는 PC가 충분히 길지 않기 때문에 시간을두고 테스트하지는 않았다. 그러나 월요일에 좀 더 철저히 테스트 할 것이다. 작동하지 않는 경우 다른 솔루션을 사용해 보겠습니다. 감사합니다. – Gunter