خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


نمایش وضعیت Uptime تمامی سرورها در شبکه دامین

نمایش وضعیت Uptime تمامی سرورها در شبکه دامین
یکی از موارد بسیار مهم در ارائه سرویس ها به کلاینت ها درون سازمان و مشتریان بیرون سازمان، در دسترسی بودن شان است. فارق از کیفیت سرویس های ارائه شده، در دسترس بودن سرویس ها هم در اعتبار سازمان هایی مانند Data center ها نقش به سزایی دارد. ما در این مطلب میزان uptime بودن ویندوز سرور هایی که در مراکز داده خود داریم ر ایکجا نشان خواهیم داد. یعنی هر تعداد ویندوز سرور جوین شده به دامین که در Server room تان دارید را با استفاده از دستورات پاورشل می توانید مشاهده کنید.

نرم افزار سامانه مودیان راهکار
پیش از شروع کار یک اسکریپت پاورشل با نام Get-UpTimeAllServer باید ایجاد کنیم. ولی قبل از آنهم باید کار دیگری انجام دهید. باید وضعیت Set-ExecutionPolicy را در پاورشل سرورهای مقصد بصورت Unrestricted یا RemoteSigned تعریف کنید که این اسکریپت ها روی سرور لوکال و سرور مقصد قابل اجرا شدن باشد. در این خصوص به این لینک مراجعه کنید. ولی بصور کلی برای مجاز کردن اجرای این دستور روی سرورهای دیگر در شبکه دامین تان، دستور Set-ExecutionPolicy RemoteSigned را در پاورشل سرورهای مقصد اجرا کنید و سپس کار را ادامه دهید.


سپس Notepad را باز کرده و سپس اسکریپت زیر را در آن کپی کنید:

function Get-UpTimeAllServer {

# .SYNOPSIS
# Get-UpTimeAllServer is an advanced Powershell function. It shows the uptime of all domain joined and enabled Windows servers.

# .DESCRIPTION
# Uses Get-CimInstance and a Try/Catch block.

# .PARAMETER
# None

# .EXAMPLE
# Get-UpTimeAllServer

# .NOTES
# Author: Patrick Gruenauer
# Web: https://sid-500.com

$servers=(Get-ADComputer -Filter 'operatingsystem -like "*server*"-and enabled -eq "true"').Name
$result=@()

Foreach ($s in $servers) {

Try {

$up=(Get-CimInstance -ClassName win32_operatingsystem -ComputerName $s -ErrorAction Stop).LastBootUpTime
$uptime=((Get-Date) - $up)
$result+=New-Object -TypeName PSObject -Property ([ordered]@{
'Server'=$s
'LastBootUpTime'=$up
'Days'=$uptime.Days
'Hours'=$uptime.Hours
'Minutes'=$uptime.Minutes
'Seconds'=$uptime.Seconds
})
}
Catch {

$result+=New-Object -TypeName PSObject -Property ([ordered]@{
'Server'=$s
'LastBootUpTime'='Server could not be reached'
})

}
}
}

سپس از فایل Save as بگیرید. در فرم Save As ابتدا به مسیر C:\Program Files\WindowsPowerShell\Modules\Get-UpTimeAllServer بروید. فولدر Get-UpTimeAllServer وجود ندراد و خودتان باید آن را ایجاد کنید.
سپس در فیلد File name نام فایل را Get-UpTimeAllServer.psm1 تنظیم کرده و از کامبوباکس save as type گزینه All Files را انتخاب کنید.

نمایش وضعیت Uptime تمامی سرورها در شبکه دامین
سپس دکمه save را کلیک کنید تا فایل در مسیر مشخص شده ذخیره شود.

نمایش وضعیت Uptime تمامی سرورها در شبکه دامین
حالا می توانید از این Function برای بدست آوردن مدت زمان Uptime سرورها استفاده کنید.

Get-UpTimeAllServer

نمایش وضعیت Uptime تمامی سرورها در شبکه دامین
همانطور که در تصویر فوق مشاهده می کنید، تمامی سرورها در دسترس بودند و مدت زمان Uptime ای آنها نمایش داده شد. اگر سروری به دلیل خاموشی یا مشکلات شبکه ای دیگر در دسترس نباشد، در مقابل آن پیغام Server could not be reached درج می شود.

نمایش وضعیت Uptime تمامی سرورها در شبکه دامین
ضمنا WinRM هم باید روی سیستم ها فعال باشد. در ویندوز سرور 2012 و نسخ بعد از آن، بصورت پیشفرض WinRM روی ویندوزهای سرور فعال است ولی برای ویندوزهای کلاینتی باید خودتان آن را فعال کنید. در لینک زیر نحوه فعال کردن WinRM برای تمامی سیستم های جوین شده به دامین توضیح داده شده است.


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز