Я пытаюсь создать сценарий powershell, который будет предлагать пользователю перезагрузить компьютер в зависимости от времени его работы. Желательно, чтобы он выдавал запрос на 5-й день и перезапускал на 7-й день.
Этот скрипт
(get-date)-([System.Management.ManagementDateTimeconverter]::ToDateTime((Get-WmiObject win32_operatingsystem).lastbootuptime))|select days
Дает мне дни безотказной работы, и если он возвращает сумму, превышающую 5, я хочучтобы запустить
$objForm = New-Object System.Windows.Forms.Form
$objForm.Text = "Shutdown | Restart"
$objForm.Size = New-Object System.Drawing.Size(300,300)
$objForm.StartPosition = "CenterScreen"
$objForm.FormBorderStyle = "FixedSingle"
$objForm.KeyPreview = $True
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape")
{$objForm.Close()}})
$SButton = New-Object System.Windows.Forms.Button
$SButton.Location = New-Object System.Drawing.Size(15,220)
$SButton.Size = New-Object System.Drawing.Size(75,25)
$SButton.Text = "Shutdown"
$SButton.Add_Click({Stop-Computer -Force})
$objForm.Controls.Add($SButton)
$RButton = New-Object System.Windows.Forms.Button
$RButton.Location = New-Object System.Drawing.Size(110,220)
$RButton.Size = New-Object System.Drawing.Size(75,25)
$RButton.Text = "Restart"
$RButton.Add_Click({Restart-Computer -Force})
$objForm.Controls.Add($RButton)
$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Size(205,220)
$CancelButton.Size = New-Object System.Drawing.Size(75,25)
$CancelButton.Text = "Cancel"
$CancelButton.Add_Click({$objForm.Close()})
$objForm.Controls.Add($CancelButton)
$outlook = @(Get-Process | ?{ $_.Name -eq "outlook" }).Count
$word = @(Get-Process | ?{ $_.Name -eq "winword" }).Count
$objLabel = New-Object System.Windows.Forms.Label
$objLabel.Location = New-Object System.Drawing.Size(10,20)
$objLabel.Size = New-Object System.Drawing.Size(280,120)
$objLabel.Text = "Please ensure you have saved your work before proceeding.`n`nYou currently have $outlook Outlook and $word Word windows open."
$objForm.Controls.Add($objLabel)
$objForm.Topmost = $True
$objForm.Add_Shown({$objForm.Activate()})
И, если возможно, я хочу, чтобы он принудительно перезапустился, если он больше 7