🐍 فصل سیزدهم — پایتون مقدماتی Error Handling
—————————————-
رسیدیم به یکی از مباحث مهم پایتون که هم در برنامهنویسی روزمره و هم در توسعه ابزارهای امنیتی خیلی کاربرد داره.
فرض کن کاربر باید یک عدد وارد کنه، اما بهجای عدد، حروف وارد میکنه. اگر برنامه ما مدیریت خطا نداشته باشه، ممکنه متوقف بشه و یک پیام خطای فنی نمایش بده.
با Error Handling میتونیم خطاهای قابلپیشبینی رو مدیریت کنیم تا برنامه بهجای متوقف شدن ناگهانی، رفتار مناسبی داشته باشه.
——————-
۱. خطا (Error / Exception) چیست؟
هنگام اجرای برنامه ممکنه اتفاقی بیفته که اجرای عادی برنامه رو مختل کنه.
مثلاً:
این برنامه دو مشکل احتمالی داره:
اگر کاربر بهجای عدد، متن وارد کنه، با
اگر کاربر عدد صفر وارد کنه، با
در حالت عادی، این خطاها میتونن اجرای برنامه رو متوقف کنن.
————————
۲. دستور try و except
برای مدیریت خطاها از
ساختار کلی:
یعنی پایتون کد داخل
مثال ساده
حالا اگر کاربر ورودی نامعتبر وارد کنه یا عدد صفر بده، برنامه بهجای نمایش خطای خام، پیام خودمون رو نمایش میده.
اما یک نکته مهم: استفاده از
————————-
۳. مدیریت ValueError
خطای
مثلاً:
پایتون نمیتونه رشته
مثال کاربردی
اگر کاربر بهجای عدد، مثلاً
در این مثال، خطای
—————————
۴. مدیریت چند خطای مختلف
میتونیم برای هر نوع خطا، پیام جداگانهای نمایش بدیم.
—————————
۶. مدیریت خطای FileNotFoundError
فرض کن برنامه ما میخواد یک فایل رو بخونه، اما فایل وجود نداره.
اگر فایل
روش بهتر، استفاده از
——————
۷. استفاده از else و finally
علاوه بر
بخش else
بخش
بخش finally
بخش
—————————————-
رسیدیم به یکی از مباحث مهم پایتون که هم در برنامهنویسی روزمره و هم در توسعه ابزارهای امنیتی خیلی کاربرد داره.
فرض کن کاربر باید یک عدد وارد کنه، اما بهجای عدد، حروف وارد میکنه. اگر برنامه ما مدیریت خطا نداشته باشه، ممکنه متوقف بشه و یک پیام خطای فنی نمایش بده.
با Error Handling میتونیم خطاهای قابلپیشبینی رو مدیریت کنیم تا برنامه بهجای متوقف شدن ناگهانی، رفتار مناسبی داشته باشه.
——————-
۱. خطا (Error / Exception) چیست؟
هنگام اجرای برنامه ممکنه اتفاقی بیفته که اجرای عادی برنامه رو مختل کنه.
مثلاً:
number = int(input("Enter a number: "))
result = 100 / number
print(result)این برنامه دو مشکل احتمالی داره:
اگر کاربر بهجای عدد، متن وارد کنه، با
ValueError مواجه میشیم.اگر کاربر عدد صفر وارد کنه، با
ZeroDivisionError مواجه میشیم.در حالت عادی، این خطاها میتونن اجرای برنامه رو متوقف کنن.
————————
۲. دستور try و except
برای مدیریت خطاها از
try و except استفاده میکنیم.ساختار کلی:
try:
# کدی که ممکن است خطا ایجاد کند
except:
# کدی که هنگام بروز خطا اجرا میشود
یعنی پایتون کد داخل
try رو اجرا میکنه. اگر خطایی رخ بده که با except مطابقت داشته باشه، وارد بخش except میشه.مثال ساده
try:
number = int(input("Enter a number: "))
result = 100 / number
print(result)
except:
print("An error occurred!")
حالا اگر کاربر ورودی نامعتبر وارد کنه یا عدد صفر بده، برنامه بهجای نمایش خطای خام، پیام خودمون رو نمایش میده.
اما یک نکته مهم: استفاده از
except خالی معمولاً پیشنهاد نمیشه؛ چون ممکنه خطاهای غیرمنتظره رو هم پنهان کنه. بهتره خطاهای مشخص رو مدیریت کنیم.————————-
۳. مدیریت ValueError
خطای
ValueError زمانی رخ میده که نوع داده از نظر کلی قابلقبوله، اما مقدار ارائهشده برای عملیات موردنظر معتبر نیست.مثلاً:
number = int("hello")پایتون نمیتونه رشته
"hello" رو به عدد صحیح تبدیل کنه؛ بنابراین ValueError ایجاد میشه.مثال کاربردی
try:
number = int(input("Enter a number: "))
result = 100 / number
print(result)
except ValueError:
print("Lotfan adad vared konid!")
اگر کاربر بهجای عدد، مثلاً
hello وارد کنه، پیام زیر نمایش داده میشه:Lotfan adad vared konid!
در این مثال، خطای
ValueError مدیریت میشه؛ اما اگر کاربر صفر وارد کنه، همچنان ZeroDivisionError رخ میده.—————————
۴. مدیریت چند خطای مختلف
میتونیم برای هر نوع خطا، پیام جداگانهای نمایش بدیم.
try:
number = int(input("Enter a number: "))
result = 100 / number
print(result)
except ValueError:
print("Lotfan adad sahih vared konid!")
except ZeroDivisionError:
print("Adad nemitavanad sefr bashad!")
—————————
۶. مدیریت خطای FileNotFoundError
فرض کن برنامه ما میخواد یک فایل رو بخونه، اما فایل وجود نداره.
try:
file = open("data.txt", "r")
content = file.read()
print(content)
file.close()
except FileNotFoundError:
print("File not found!")
اگر فایل
data.txt وجود نداشته باشه، بهجای نمایش خطای خام، پیام مناسب نمایش داده میشه.روش بهتر، استفاده از
with هست تا فایل بهصورت خودکار بسته بشه:try:
with open("data.txt", "r") as file:
content = file.read()
print(content)
except FileNotFoundError:
print("File not found!")
——————
۷. استفاده از else و finally
علاوه بر
try و except، دو بخش دیگه هم داریم.بخش else
بخش
else زمانی اجرا میشه که داخل try هیچ خطایی رخ نداده باشه.try:
number = int(input("Enter a number: "))
except ValueError:
print("Invalid input!")
else:
print("Your number is:", number)
بخش finally
بخش
finally در پایان اجرای ساختار مدیریت خطا اجرا میشه؛ چه خطا رخ داده باشه، چه رخ نداده باشه.try:
number = int(input("Enter a number: "))
except ValueError:
print("Invalid input!")
finally:
print("Program finished!")
finally برای کارهایی مثل آزادسازی منابع یا پاکسازی وضعیت برنامه کاربرد داره.
My folder vip
🐍 فصل سیزدهم — پایتون مقدماتی Error Handling —————————————- رسیدیم به یکی از مباحث مهم پایتون که هم در برنامهنویسی روزمره و هم در توسعه ابزارهای امنیتی خیلی کاربرد داره. فرض کن کاربر باید یک عدد وارد کنه، اما بهجای عدد، حروف وارد میکنه. اگر برنامه…
نکته امنیتی مهم 🔐
درسته که مدیریت خطا میتونه از نمایش جزئیات فنی ناخواسته به کاربر جلوگیری کنه؛ اما پنهان کردن خطا بهتنهایی به معنی امن شدن برنامه نیست.
برای مثال، در یک برنامه تحت وب، نمایش جزئیات خطا مثل مسیرهای داخلی سرور، اطلاعات اتصال دیتابیس یا Stack Trace ممکنه اطلاعات غیرضروری در اختیار مهاجم قرار بده.
روش اصولی:
به کاربر پیام ساده و غیرحساس نمایش بده.
خطای فنی رو در لاگ داخلی ثبت کن.
اطلاعات محرمانه مثل رمز عبور، توکن و کلیدهای API رو در لاگ ذخیره نکن.
خطاهای مشخص رو مدیریت کن؛ از
مثلاً:
این روش هم تجربه کاربر رو بهتر میکنه و هم از پنهان شدن ناخواسته خطاهای غیرمنتظره جلوگیری میکنه.
درسته که مدیریت خطا میتونه از نمایش جزئیات فنی ناخواسته به کاربر جلوگیری کنه؛ اما پنهان کردن خطا بهتنهایی به معنی امن شدن برنامه نیست.
برای مثال، در یک برنامه تحت وب، نمایش جزئیات خطا مثل مسیرهای داخلی سرور، اطلاعات اتصال دیتابیس یا Stack Trace ممکنه اطلاعات غیرضروری در اختیار مهاجم قرار بده.
روش اصولی:
به کاربر پیام ساده و غیرحساس نمایش بده.
خطای فنی رو در لاگ داخلی ثبت کن.
اطلاعات محرمانه مثل رمز عبور، توکن و کلیدهای API رو در لاگ ذخیره نکن.
خطاهای مشخص رو مدیریت کن؛ از
except خالی برای پنهان کردن همه خطاها استفاده نکن.مثلاً:
try:
number = int(input("Enter a number: "))
result = 100 / number
except ValueError:
print("Please enter a valid number.")
except ZeroDivisionError:
print("Number cannot be zero.")
این روش هم تجربه کاربر رو بهتر میکنه و هم از پنهان شدن ناخواسته خطاهای غیرمنتظره جلوگیری میکنه.
🐍 فصل چهاردهم — پایتون مقدماتی OOP
—————————————-
برنامهنویسی شیگرا
رسیدیم به یکی از مفاهیم مهم برنامهنویسی پایتون! 😎
برنامهنویسی شیگرا (OOP) روشی برای طراحی برنامه است که در اون کدها رو بر اساس کلاسها (Class) و اشیا (Object) سازماندهی میکنیم.
برای اینکه بهتر متوجه بشی، مثال رو با موضوعی مرتبط با شبکه و امنیت پیش میبریم.
———————————
۱. برنامهنویسی شیگرا (OOP) چیست؟
فرض کن میخوایم یک برنامه برای مدیریت سرورها بنویسیم.
هر سرور میتونه ویژگیهایی داشته باشه، مثل:
نام سرور
آدرس IP
سیستمعامل
همچنین میتونه کارهایی انجام بده، مثل:
نمایش اطلاعات سرور
روشن یا خاموش شدن
بررسی وضعیت
در OOP، ما این ویژگیها و رفتارها رو داخل یک ساختار به نام Class قرار میدیم.
————————
۲. کلاس (Class) چیست؟
کلاس مثل یک نقشه یا قالب برای ساخت اشیاست.
مثلاً نقشه یک خودرو مشخص میکنه خودرو چه ویژگیهایی داره؛ اما خود نقشه، یک خودرو واقعی نیست.
در پایتون هم کلاس مشخص میکنه اشیایی که از اون ساخته میشن چه ویژگیها و رفتارهایی داشته باشن.
مثال: ساخت کلاس Server
بیا قسمتهای مختلف رو بررسی کنیم.
با کلمه کلیدی
این کلاس قالبی برای ساخت اشیای سرور خواهد بود.
این متد هنگام ساخت یک شیء جدید اجرا میشه و معمولاً برای مقداردهی اولیه ویژگیهای اون استفاده میشه.
مثلاً وقتی یک سرور میسازیم، میتونیم نام، IP و سیستمعاملش رو مشخص کنیم.
کلمه
مثلاً:
یعنی مقدار
این یک متد (Method) است؛ یعنی تابعی که داخل کلاس تعریف شده و اطلاعات سرور رو نمایش میده.
———————-
۳. شیء (Object) و اینستنس (Instance) چیست؟
وقتی از روی یک کلاس، یک شیء واقعی میسازیم، به اون شیء یک Instance از کلاس میگیم.
به زبان ساده:
Class = قالب یا نقشه
Object / Instance = نمونه ساختهشده از روی قالب
حالا از کلاس
در اینجا:
هر Instance ویژگیهای خودش رو داره.
برای مثال:
خروجی:
میتونیم متد کلاس رو هم اجرا کنیم:
خروجی:
نکته: در پایتون، ساخت شیء از روی کلاس رو معمولاً Instantiation میگن.
——————-
۴. ارثبری (Inheritance) چیست؟
ارثبری یکی از قابلیتهای مهم OOP است.
با استفاده از Inheritance میتونیم یک کلاس جدید بسازیم که ویژگیها و متدهای کلاس دیگهای رو به ارث ببره.
مثلاً فرض کن کلاس
LinuxServer
WindowsServer
هر دو سرور ویژگیهای عمومی مثل نام، IP و سیستمعامل دارن؛ پس لازم نیست همه کدها رو از اول بنویسیم.
میتونیم از کلاس
در این حالت:
————————
—————————————-
برنامهنویسی شیگرا
رسیدیم به یکی از مفاهیم مهم برنامهنویسی پایتون! 😎
برنامهنویسی شیگرا (OOP) روشی برای طراحی برنامه است که در اون کدها رو بر اساس کلاسها (Class) و اشیا (Object) سازماندهی میکنیم.
برای اینکه بهتر متوجه بشی، مثال رو با موضوعی مرتبط با شبکه و امنیت پیش میبریم.
———————————
۱. برنامهنویسی شیگرا (OOP) چیست؟
فرض کن میخوایم یک برنامه برای مدیریت سرورها بنویسیم.
هر سرور میتونه ویژگیهایی داشته باشه، مثل:
نام سرور
آدرس IP
سیستمعامل
همچنین میتونه کارهایی انجام بده، مثل:
نمایش اطلاعات سرور
روشن یا خاموش شدن
بررسی وضعیت
در OOP، ما این ویژگیها و رفتارها رو داخل یک ساختار به نام Class قرار میدیم.
————————
۲. کلاس (Class) چیست؟
کلاس مثل یک نقشه یا قالب برای ساخت اشیاست.
مثلاً نقشه یک خودرو مشخص میکنه خودرو چه ویژگیهایی داره؛ اما خود نقشه، یک خودرو واقعی نیست.
در پایتون هم کلاس مشخص میکنه اشیایی که از اون ساخته میشن چه ویژگیها و رفتارهایی داشته باشن.
مثال: ساخت کلاس Server
class Server:
def __init__(self, name, ip, os):
self.name = name
self.ip = ip
self.os = os
def show_info(self):
print(f"Server: {self.name}")
print(f"IP: {self.ip}")
print(f"OS: {self.os}")
بیا قسمتهای مختلف رو بررسی کنیم.
class Server:با کلمه کلیدی
class یک کلاس به نام Server تعریف میکنیم.این کلاس قالبی برای ساخت اشیای سرور خواهد بود.
__init__()این متد هنگام ساخت یک شیء جدید اجرا میشه و معمولاً برای مقداردهی اولیه ویژگیهای اون استفاده میشه.
مثلاً وقتی یک سرور میسازیم، میتونیم نام، IP و سیستمعاملش رو مشخص کنیم.
selfکلمه
self به شیء فعلی اشاره میکنه.مثلاً:
self.name = name
یعنی مقدار
name رو داخل ویژگی name همین شیء ذخیره کن.show_info()این یک متد (Method) است؛ یعنی تابعی که داخل کلاس تعریف شده و اطلاعات سرور رو نمایش میده.
———————-
۳. شیء (Object) و اینستنس (Instance) چیست؟
وقتی از روی یک کلاس، یک شیء واقعی میسازیم، به اون شیء یک Instance از کلاس میگیم.
به زبان ساده:
Class = قالب یا نقشه
Object / Instance = نمونه ساختهشده از روی قالب
حالا از کلاس
Server دو سرور مختلف میسازیم:server1 = Server("Web-Server", "192.168.1.10", "Ubuntu")
server2 = Server("DB-Server", "192.168.1.20", "Windows")در اینجا:
Server کلاس ماست.server1 یک Instance از کلاس Server است.server2 هم یک Instance دیگر از همون کلاس است.هر Instance ویژگیهای خودش رو داره.
برای مثال:
print(server1.name)
print(server2.name)
خروجی:
Web-Server
DB-Server
میتونیم متد کلاس رو هم اجرا کنیم:
server1.show_info()
خروجی:
Server: Web-Server
IP: 192.168.1.10
OS: Ubuntu
نکته: در پایتون، ساخت شیء از روی کلاس رو معمولاً Instantiation میگن.
——————-
۴. ارثبری (Inheritance) چیست؟
ارثبری یکی از قابلیتهای مهم OOP است.
با استفاده از Inheritance میتونیم یک کلاس جدید بسازیم که ویژگیها و متدهای کلاس دیگهای رو به ارث ببره.
مثلاً فرض کن کلاس
Server رو داریم؛ حالا میخوایم دو نوع سرور تعریف کنیم:LinuxServer
WindowsServer
هر دو سرور ویژگیهای عمومی مثل نام، IP و سیستمعامل دارن؛ پس لازم نیست همه کدها رو از اول بنویسیم.
میتونیم از کلاس
Server ارثبری کنیم.در این حالت:
Server = کلاس والد (Parent / Base Class)LinuxServer = کلاس فرزند (Child / Derived Class)WindowsServer = کلاس فرزند (Child / Derived Class)————————
۵. مثال کامل ارثبری در پایتون
حالا از کلاس فرزند، یک Instance میسازیم:
خروجی:
این کد چطور کار میکنه؟
۱.
با قرار دادن نام کلاس والد داخل پرانتز، مشخص میکنیم که
۲.
با
در این مثال، متد
۳.
این ویژگی مخصوص کلاس فرزند است و توزیع لینوکس سرور رو ذخیره میکنه.
۴.
چون
پس لازم نیست اون متد رو دوباره بنویسیم!
——————
۶. چرا ارثبری مهم است؟
فرض کن برای هر نوع سرور، تمام ویژگیها و متدهای مشترک رو دوباره تعریف کنیم.
با زیاد شدن تعداد کلاسها، کدمون تکراری و نگهداریش سخت میشه.
Inheritance کمک میکنه:
کدهای مشترک رو فقط یک بار بنویسیم.
کلاسهای تخصصیتر بسازیم.
کدها رو مرتبتر و قابل نگهداریتر کنیم.
قابلیتهای کلاس والد رو در کلاس فرزند گسترش بدیم.
البته هر جا کلاسها رابطه منطقی والد و فرزندی ندارن، استفاده از ارثبری لزوماً انتخاب مناسبی نیست.
class Server:
def __init__(self, name, ip):
self.name = name
self.ip = ip
def show_info(self):
print(f"Name: {self.name}")
print(f"IP: {self.ip}")
class LinuxServer(Server):
def __init__(self, name, ip, distro):
super().__init__(name, ip)
self.distro = distro
def show_linux_info(self):
self.show_info()
print(f"Distro: {self.distro}")
حالا از کلاس فرزند، یک Instance میسازیم:
linux1 = LinuxServer(
"Web-Server",
"192.168.1.10",
"Ubuntu"
)
linux1.show_linux_info()
خروجی:
Name: Web-Server
IP: 192.168.1.10
Distro: Ubuntu
این کد چطور کار میکنه؟
۱.
class LinuxServer(Server):با قرار دادن نام کلاس والد داخل پرانتز، مشخص میکنیم که
LinuxServer از Server ارثبری میکنه.۲.
super().__init__(name, ip)با
super() به پیادهسازی کلاس والد دسترسی پیدا میکنیم.در این مثال، متد
__init__() کلاس Server رو اجرا میکنیم تا ویژگیهای name و ip مقداردهی بشن.۳.
self.distro = distroاین ویژگی مخصوص کلاس فرزند است و توزیع لینوکس سرور رو ذخیره میکنه.
۴.
self.show_info()چون
LinuxServer از Server ارثبری کرده، میتونه از متد show_info() کلاس والد استفاده کنه.پس لازم نیست اون متد رو دوباره بنویسیم!
——————
۶. چرا ارثبری مهم است؟
فرض کن برای هر نوع سرور، تمام ویژگیها و متدهای مشترک رو دوباره تعریف کنیم.
با زیاد شدن تعداد کلاسها، کدمون تکراری و نگهداریش سخت میشه.
Inheritance کمک میکنه:
کدهای مشترک رو فقط یک بار بنویسیم.
کلاسهای تخصصیتر بسازیم.
کدها رو مرتبتر و قابل نگهداریتر کنیم.
قابلیتهای کلاس والد رو در کلاس فرزند گسترش بدیم.
البته هر جا کلاسها رابطه منطقی والد و فرزندی ندارن، استفاده از ارثبری لزوماً انتخاب مناسبی نیست.
🐍 فصل پانزدهم — پایتون مقدماتی regex
—————————————-
خب رسیدیم به یکی از مباحث بسیار کاربردی پایتون، مخصوصاً برای امنیت شبکه، پنتست، تحلیل لاگ و پردازش دادهها. 🔐
فقط اول یک اصلاح مهم: Regex مربوط به رمزنگاری (Encryption) نیست. ریجکس ابزاری برای جستوجو، شناسایی و بررسی الگوهای متنیه.
——————————
۱. Regex چیست؟
Regex مخفف Regular Expression است.
به زبان ساده، Regex به ما اجازه میده داخل متن، دنبال یک الگوی مشخص بگردیم.
مثلاً فرض کن یک فایل لاگ داریم که داخلش هزاران خط اطلاعات وجود داره. میخوایم تمام آدرسهای IP یا ایمیلها رو از داخلش پیدا کنیم.
بهجای اینکه تکتک خطوط رو بررسی کنیم، با Regex میتونیم الگوی موردنظر رو مشخص کنیم و پایتون اون رو جستوجو کنه.
کاربردهای Regex
جستوجو در متن
اعتبارسنجی ایمیل و شماره تلفن
استخراج آدرسهای IP از لاگها
بررسی فرمت رمز عبور
پیدا کردن الگوهای مشکوک در لاگهای امنیتی
پردازش و پاکسازی دادههای متنی
در پایتون، ماژول داخلی
—————-
۲. جستوجو در متن با
متد
مثال جزوه
خروجی:
چرا؟
چون کلمه
مثال دوم
خروجی:
——————
۳. آشنایی با نمادهای مهم Regex
حالا بریم سراغ نمادهایی که در جزوهات نوشتی.
مثال:
خروجی:
اگر بخوایم اعداد چندرقمی رو یکجا پیدا کنیم:
خروجی:
—————-
مثال:
خروجی:
علامت
نکته: در پایتون،
—————————
علامت
اگر بخوایم خود علامت
خروجی:
نقطه (
مثال:
خروجی:
چون نقطه میتونه با کاراکتر
مثالهای دیگه:
اما
——————
مثال ترکیبی
خروجی:
چون تمام حروف و اعداد پشت سر هم، با الگوی
———————
۵. اعتبارسنجی ایمیل با Regex
حالا بریم سراغ مثال ایمیل که در جزوهات نوشتی.
هدف اینه که بررسی کنیم آیا ایمیل واردشده، با یک الگوی مشخص مطابقت داره یا نه.
نسخه اصلاحشده کد
مثال ورودی و خروجی
ورودی:
خروجی:
ورودی:
خروجی:
چون در ایمیل دوم علامت
——————-
—————————————-
خب رسیدیم به یکی از مباحث بسیار کاربردی پایتون، مخصوصاً برای امنیت شبکه، پنتست، تحلیل لاگ و پردازش دادهها. 🔐
فقط اول یک اصلاح مهم: Regex مربوط به رمزنگاری (Encryption) نیست. ریجکس ابزاری برای جستوجو، شناسایی و بررسی الگوهای متنیه.
——————————
۱. Regex چیست؟
Regex مخفف Regular Expression است.
به زبان ساده، Regex به ما اجازه میده داخل متن، دنبال یک الگوی مشخص بگردیم.
مثلاً فرض کن یک فایل لاگ داریم که داخلش هزاران خط اطلاعات وجود داره. میخوایم تمام آدرسهای IP یا ایمیلها رو از داخلش پیدا کنیم.
بهجای اینکه تکتک خطوط رو بررسی کنیم، با Regex میتونیم الگوی موردنظر رو مشخص کنیم و پایتون اون رو جستوجو کنه.
کاربردهای Regex
جستوجو در متن
اعتبارسنجی ایمیل و شماره تلفن
استخراج آدرسهای IP از لاگها
بررسی فرمت رمز عبور
پیدا کردن الگوهای مشکوک در لاگهای امنیتی
پردازش و پاکسازی دادههای متنی
در پایتون، ماژول داخلی
re برای کار با Regex استفاده میشه و نیازی به نصب جداگانه نداره.import re
—————-
۲. جستوجو در متن با
re.search()متد
re.search() در یک متن، دنبال اولین تطابق با الگوی مشخصشده میگرده.مثال جزوه
import re
text = "hi"
pattern = "rain"
match = re.search(pattern, text)
if match:
print("Find")
print(f"From character {match.start()} to {match.end()}")
else:
print("Not found")
خروجی:
Not found
چرا؟
چون کلمه
rain داخل متن hi وجود نداره.مثال دوم
import re
text = "Hello rain world"
pattern = "rain"
match = re.search(pattern, text)
if match:
print("Find")
print(f"From character {match.start()} to {match.end()}")
else:
print("Not found")
خروجی:
Find
From character 6 to 10
——————
۳. آشنایی با نمادهای مهم Regex
حالا بریم سراغ نمادهایی که در جزوهات نوشتی.
\d — پیدا کردن عدد\d هر رقم عددی رو شناسایی میکنه.مثال:
import re
text = "My age is 25"
result = re.findall(r"\d", text)
print(result)
خروجی:
['2', '5']
اگر بخوایم اعداد چندرقمی رو یکجا پیدا کنیم:
print(re.findall(r"\d+", text))
خروجی:
['25']
—————-
\w — کاراکترهای کلمهای\w معمولاً حروف، اعداد و زیرخط (_) رو شناسایی میکنه.مثال:
import re
text = "ali_123!"
result = re.findall(r"\w", text)
print(result)
خروجی:
['a', 'l', 'i', '_', '1', '2', '3']
علامت
! پیدا نمیشه؛ چون جزو کاراکترهای \w نیست.نکته: در پایتون،
\w بهصورت پیشفرض کاراکترهای حرفی Unicode، از جمله بسیاری از حروف فارسی، رو هم شامل میشه.—————————
\+ — پیدا کردن علامت + بهصورت واقعیعلامت
+ در Regex یک معنی ویژه داره؛ یعنی «یک یا چند بار تکرار».اگر بخوایم خود علامت
+ رو جستوجو کنیم، باید قبلش بکاسلش بذاریم:import re
text = "5+3"
result = re.search(r"\+", text)
if result:
print("Plus found")
خروجی:
Plus found
. — هر کاراکترنقطه (
.) در Regex معمولاً به معنی هر کاراکتری بهجز خط جدید (\n) است.مثال:
import re
text = "cat"
result = re.findall(r"c.t", text)
print(result)
خروجی:
['cat']
چون نقطه میتونه با کاراکتر
a تطبیق پیدا کنه.مثالهای دیگه:
c.t → cat
c.t → cot
c.t → c7t
اما
c.t با ct تطبیق پیدا نمیکنه؛ چون نقطه باید با یک کاراکتر تطبیق داشته باشه.——————
مثال ترکیبی
import re
text = "Ali123"
result = re.findall(r"\w+", text)
print(result)
خروجی:
['Ali123']
چون تمام حروف و اعداد پشت سر هم، با الگوی
\w+ تطبیق پیدا میکنن.———————
۵. اعتبارسنجی ایمیل با Regex
حالا بریم سراغ مثال ایمیل که در جزوهات نوشتی.
هدف اینه که بررسی کنیم آیا ایمیل واردشده، با یک الگوی مشخص مطابقت داره یا نه.
نسخه اصلاحشده کد
import re
def is_valid_email(email):
pattern = r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
return re.fullmatch(pattern, email) is not None
email = input("Enter email: ")
if is_valid_email(email):
print("Valid email")
else:
print("Invalid email")
مثال ورودی و خروجی
ورودی:
ali123@gmail.com
خروجی:
Valid email
ورودی:
ali123gmail.com
خروجی:
Invalid email
چون در ایمیل دوم علامت
@ وجود نداره.——————-
My folder vip
🐍 فصل پانزدهم — پایتون مقدماتی regex —————————————- خب رسیدیم به یکی از مباحث بسیار کاربردی پایتون، مخصوصاً برای امنیت شبکه، پنتست، تحلیل لاگ و پردازش دادهها. 🔐 فقط اول یک اصلاح مهم: Regex مربوط به رمزنگاری (Encryption) نیست. ریجکس ابزاری برای جستوجو،…
چرا از
چون نقطه در Regex معنای خاصی داره و تقریباً هر کاراکتری رو تطبیق میده.
اما ما در ایمیل به یک نقطه واقعی نیاز داریم؛ بنابراین مینویسیم:
چرا از
مثلاً:
حرف
این کار باعث میشه بکاسلشها در رشته، بهصورت خام نگه داشته بشن و برای نوشتن Regex خواناتر باشن.
نکته مهم: این الگو یک بررسی مقدماتی برای فرمت ایمیله، نه اعتبارسنجی کامل استاندارد ایمیل. ممکنه بعضی آدرسهای معتبر رو رد کنه یا بعضی آدرسهای نامعتبر رو بپذیره. برای اطمینان از واقعی بودن ایمیل، معمولاً باید تأییدیه ارسال بشه.
—————
مثال
خروجی:
——————
\. استفاده کردیم؟چون نقطه در Regex معنای خاصی داره و تقریباً هر کاراکتری رو تطبیق میده.
اما ما در ایمیل به یک نقطه واقعی نیاز داریم؛ بنابراین مینویسیم:
\.
چرا از
r قبل از رشته استفاده کردیم؟مثلاً:
pattern = r"\d+"
حرف
r یعنی Raw String.این کار باعث میشه بکاسلشها در رشته، بهصورت خام نگه داشته بشن و برای نوشتن Regex خواناتر باشن.
نکته مهم: این الگو یک بررسی مقدماتی برای فرمت ایمیله، نه اعتبارسنجی کامل استاندارد ایمیل. ممکنه بعضی آدرسهای معتبر رو رد کنه یا بعضی آدرسهای نامعتبر رو بپذیره. برای اطمینان از واقعی بودن ایمیل، معمولاً باید تأییدیه ارسال بشه.
—————
مثال
findall():import re
text = "User1 logged in. User2 logged in."
users = re.findall(r"User\d", text)
print(users)
خروجی:
['User1', 'User2']
——————
My folder vip
چرا از \. استفاده کردیم؟ چون نقطه در Regex معنای خاصی داره و تقریباً هر کاراکتری رو تطبیق میده. اما ما در ایمیل به یک نقطه واقعی نیاز داریم؛ بنابراین مینویسیم: \. چرا از r قبل از رشته استفاده کردیم؟ مثلاً: pattern = r"\d+" حرف r یعنی Raw String. این کار…
کاربرد Regex در امنیت سایبری 🔐
فرض کن در یک فایل لاگ، آدرسهای IP زیادی وجود داره و میخوایم اونها رو استخراج کنیم.
خروجی:
این Regex ظاهری شبیه IPv4 رو پیدا میکنه، اما بهتنهایی معتبر بودن IP رو تضمین نمیکنه؛ برای اعتبارسنجی دقیق IPv4 بهتره از ماژول
در تحلیل لاگها، Regex میتونه به استخراج IP، شناسایی الگوهای درخواست مشکوک و فیلتر کردن دادهها کمک کنه.
فرض کن در یک فایل لاگ، آدرسهای IP زیادی وجود داره و میخوایم اونها رو استخراج کنیم.
import re
text = """
Login from 192.168.1.10
Login from 10.0.0.5
"""
ips = re.findall(r"\b\d{1,3}(?:\.\d{1,3}){3}\b", text)
print(ips)
خروجی:
['192.168.1.10', '10.0.0.5']
این Regex ظاهری شبیه IPv4 رو پیدا میکنه، اما بهتنهایی معتبر بودن IP رو تضمین نمیکنه؛ برای اعتبارسنجی دقیق IPv4 بهتره از ماژول
ipaddress استفاده کنیم.در تحلیل لاگها، Regex میتونه به استخراج IP، شناسایی الگوهای درخواست مشکوک و فیلتر کردن دادهها کمک کنه.
پایتون مقدماتی هم با موفقیت تموم شد!
تا اینجا مسیر:
به امید موفقیتت توی ادامه مسیر؛ بریم برای MCSA! 🚀
تا اینجا مسیر:
| دوره | وضعیت |
| --------------| ----------- |
| ✅ Network+ | تکمیل شد
| ✅ Python Basic | تکمیل شد
| ✅ LPIC-1 | تکمیل شد
| 🚀 MCSA | در حال شروع
| 🔜 CEH | باقیمانده
| 🔜 SANS 504 | باقیمانده
به امید موفقیتت توی ادامه مسیر؛ بریم برای MCSA! 🚀
🖥 فصل اول دوره MCSA — قسمت اول
Windows Server vs Azure
━━━━━━━━━━━━━━━━━━
1) Windows Server چیست؟
Windows Server یک سیستمعامل سروری از شرکت مایکروسافت است که برای راهاندازی و مدیریت سرویسهای شبکه استفاده میشود.
برخلاف Windows 10/11 که بیشتر برای کاربر نهایی طراحی شده، Windows Server برای محیطهای سازمانی ساخته شده است.
در این دوره هدف ما یادگیری سرویسهایی است که روی Windows Server اجرا میشوند.
مثلاً:
Active Directory → مدیریت کاربران و کامپیوترهای سازمان
DNS → مدیریت نامها و تبدیل Name به IP
DHCP → اختصاص خودکار IP
File Server → اشتراکگذاری فایلها
Group Policy → اعمال قوانین و تنظیمات روی کاربران
WSUS → مدیریت آپدیتهای ویندوز
Hyper-V → مجازیسازی
یعنی ما یک Windows Server نصب میکنیم و بعد سرویسهای مورد نیاز سازمان را روی آن فعال میکنیم.
————————
2) Azure چیست؟
Microsoft Azure پلتفرم Cloud شرکت مایکروسافت است.
در گذشته شرکتها برای راهاندازی سرویسهای خودشان باید:
سرور فیزیکی خریداری میکردند
رک تهیه میکردند
دیتاسنتر ایجاد میکردند
اینترنت و برق پایدار فراهم میکردند
تجهیزات شبکه و امنیت را مدیریت میکردند
اما با Cloud این مدل تغییر کرد.
شرکتهایی مثل مایکروسافت دیتاسنترهای بسیار بزرگی در نقاط مختلف دنیا ایجاد کردند و آنها را به هم متصل کردند.
حالا یک شرکت میتواند از هر جای دنیا:
یک سرور مجازی بسازد
فضای ذخیرهسازی دریافت کند
سرویس شبکه استفاده کند
بدون خرید سختافزار، منابع را اجاره کند
———————
3) مفهوم On-Premises (On-Prem)
On-Premises یعنی زیرساخت داخل محل خود سازمان باشد.
مثال:
یک شرکت ۲۰۰ کارمند دارد.
خود شرکت:
سرور خریداری میکند
Windows Server نصب میکند
Active Directory راهاندازی میکند
شبکه و امنیت را خودش مدیریت میکند
این مدل میشود:
مزایا:
کنترل کامل روی تجهیزات
اطلاعات داخل سازمان باقی میماند
شخصیسازی بیشتر
معایب:
هزینه خرید تجهیزات
هزینه نگهداری
نیاز به نیروی متخصص
مسئولیت خرابی سختافزار با خود سازمان است
————————-
4) Cloud چیست؟
در مقابل On-Prem، مفهوم Cloud قرار دارد.
در Cloud شما مالک سختافزار نیستید، بلکه منابع را از یک شرکت ارائهدهنده اجاره میکنید.
مثلاً:
مایکروسافت Azure:
شما فقط به اندازه نیازتان منابع دریافت میکنید.
مثلاً:
4 Core CPU
16GB RAM
200GB Storage
و هزینه همان مقدار را پرداخت میکنید.
———————————
5) SLA چیست؟
SLA = Service Level Agreement
یعنی توافقنامه سطح خدمات.
این قراردادی است که شرکت ارائهدهنده سرویس (مثل Azure) درباره کیفیت سرویس خود ارائه میدهد.
مثلاً:
"ما تضمین میکنیم سرویس شما 99.9% در دسترس باشد."
یعنی شرکت متعهد میشود سرورها تا درصد مشخصی فعال باشند.
مثال:
99.9% Uptime یعنی حدود:
حداکثر چند ساعت قطعی در سال.
هرچه SLA بالاتر باشد، معمولاً هزینه سرویس بیشتر میشود.
————————
6) مدلهای Cloud Computing
سه مدل اصلی داریم:
1) IaaS
Infrastructure as a Service
یعنی زیرساخت بهعنوان سرویس.
در این مدل شما سختافزار مجازی دریافت میکنید.
مثال:
Azure VM
مایکروسافت به شما میدهد:
CPU
RAM
Storage
Network
ولی مدیریت سیستمعامل با شماست.
مثال واقعی:
یک Windows Server روی Azure میسازید و خودتان:
AD نصب میکنید
DNS نصب میکنید
تنظیمات امنیتی انجام میدهید
————-
2) PaaS
Platform as a Service
یعنی پلتفرم آماده.
اینجا شما دیگر درگیر مدیریت سیستمعامل نیستید.
مثال:
یک برنامهنویس میخواهد یک سایت اجرا کند.
به جای اینکه:
سرور بخرد
ویندوز نصب کند
وبسرور نصب کند
فقط برنامه خود را روی سرویس آماده قرار میدهد.
————————-
3) SaaS
Software as a Service
نرمافزار آماده بهصورت سرویس.
کاربر فقط استفاده میکند.
مثال:
Gmail
Microsoft 365
سرویسهای آنلاین مدیریت سازمان
شما فقط وارد میشوید و استفاده میکنید.
——————
🧠 مثال سازمانی
فرض کنیم یک شرکت فروشگاهی داریم:
حالت اول: On-Prem
شرکت خودش:
سرور میخرد
Windows Server نصب میکند
AD و Database راهاندازی میکند
حالت دوم: Azure
شرکت:
یک VM از Azure میگیرد
سرویسها را روی آن اجرا میکند
بابت منابع مصرفی هزینه میدهد
———————————————-
نکات مهم مصاحبهای ⭐️
✅ تفاوت اصلی On-Prem و Cloud چیست؟
→ در On-Prem تجهیزات متعلق به سازمان است، در Cloud منابع از Provider اجاره میشود.
✅ SLA چیست؟
→ تعهد ارائهدهنده سرویس برای میزان دسترسی و کیفیت سرویس.
✅ تفاوت IaaS و SaaS؟
→ در IaaS زیرساخت میگیریم و مدیریت بیشتری داریم؛ در SaaS نرمافزار آماده دریافت میکنیم.
Windows Server vs Azure
━━━━━━━━━━━━━━━━━━
1) Windows Server چیست؟
Windows Server یک سیستمعامل سروری از شرکت مایکروسافت است که برای راهاندازی و مدیریت سرویسهای شبکه استفاده میشود.
برخلاف Windows 10/11 که بیشتر برای کاربر نهایی طراحی شده، Windows Server برای محیطهای سازمانی ساخته شده است.
در این دوره هدف ما یادگیری سرویسهایی است که روی Windows Server اجرا میشوند.
مثلاً:
Active Directory → مدیریت کاربران و کامپیوترهای سازمان
DNS → مدیریت نامها و تبدیل Name به IP
DHCP → اختصاص خودکار IP
File Server → اشتراکگذاری فایلها
Group Policy → اعمال قوانین و تنظیمات روی کاربران
WSUS → مدیریت آپدیتهای ویندوز
Hyper-V → مجازیسازی
یعنی ما یک Windows Server نصب میکنیم و بعد سرویسهای مورد نیاز سازمان را روی آن فعال میکنیم.
————————
2) Azure چیست؟
Microsoft Azure پلتفرم Cloud شرکت مایکروسافت است.
در گذشته شرکتها برای راهاندازی سرویسهای خودشان باید:
سرور فیزیکی خریداری میکردند
رک تهیه میکردند
دیتاسنتر ایجاد میکردند
اینترنت و برق پایدار فراهم میکردند
تجهیزات شبکه و امنیت را مدیریت میکردند
اما با Cloud این مدل تغییر کرد.
شرکتهایی مثل مایکروسافت دیتاسنترهای بسیار بزرگی در نقاط مختلف دنیا ایجاد کردند و آنها را به هم متصل کردند.
حالا یک شرکت میتواند از هر جای دنیا:
یک سرور مجازی بسازد
فضای ذخیرهسازی دریافت کند
سرویس شبکه استفاده کند
بدون خرید سختافزار، منابع را اجاره کند
———————
3) مفهوم On-Premises (On-Prem)
On-Premises یعنی زیرساخت داخل محل خود سازمان باشد.
مثال:
یک شرکت ۲۰۰ کارمند دارد.
خود شرکت:
سرور خریداری میکند
Windows Server نصب میکند
Active Directory راهاندازی میکند
شبکه و امنیت را خودش مدیریت میکند
این مدل میشود:
Company Office
|
|
Physical Server
|
Windows Server
|
Network Services
مزایا:
کنترل کامل روی تجهیزات
اطلاعات داخل سازمان باقی میماند
شخصیسازی بیشتر
معایب:
هزینه خرید تجهیزات
هزینه نگهداری
نیاز به نیروی متخصص
مسئولیت خرابی سختافزار با خود سازمان است
————————-
4) Cloud چیست؟
در مقابل On-Prem، مفهوم Cloud قرار دارد.
در Cloud شما مالک سختافزار نیستید، بلکه منابع را از یک شرکت ارائهدهنده اجاره میکنید.
مثلاً:
مایکروسافت Azure:
Microsoft Datacenter
Server
Storage
Network
Security
↓
Customer
شما فقط به اندازه نیازتان منابع دریافت میکنید.
مثلاً:
4 Core CPU
16GB RAM
200GB Storage
و هزینه همان مقدار را پرداخت میکنید.
———————————
5) SLA چیست؟
SLA = Service Level Agreement
یعنی توافقنامه سطح خدمات.
این قراردادی است که شرکت ارائهدهنده سرویس (مثل Azure) درباره کیفیت سرویس خود ارائه میدهد.
مثلاً:
"ما تضمین میکنیم سرویس شما 99.9% در دسترس باشد."
یعنی شرکت متعهد میشود سرورها تا درصد مشخصی فعال باشند.
مثال:
99.9% Uptime یعنی حدود:
حداکثر چند ساعت قطعی در سال.
هرچه SLA بالاتر باشد، معمولاً هزینه سرویس بیشتر میشود.
————————
6) مدلهای Cloud Computing
سه مدل اصلی داریم:
1) IaaS
Infrastructure as a Service
یعنی زیرساخت بهعنوان سرویس.
در این مدل شما سختافزار مجازی دریافت میکنید.
مثال:
Azure VM
مایکروسافت به شما میدهد:
CPU
RAM
Storage
Network
ولی مدیریت سیستمعامل با شماست.
مثال واقعی:
یک Windows Server روی Azure میسازید و خودتان:
AD نصب میکنید
DNS نصب میکنید
تنظیمات امنیتی انجام میدهید
————-
2) PaaS
Platform as a Service
یعنی پلتفرم آماده.
اینجا شما دیگر درگیر مدیریت سیستمعامل نیستید.
مثال:
یک برنامهنویس میخواهد یک سایت اجرا کند.
به جای اینکه:
سرور بخرد
ویندوز نصب کند
وبسرور نصب کند
فقط برنامه خود را روی سرویس آماده قرار میدهد.
————————-
3) SaaS
Software as a Service
نرمافزار آماده بهصورت سرویس.
کاربر فقط استفاده میکند.
مثال:
Gmail
Microsoft 365
سرویسهای آنلاین مدیریت سازمان
شما فقط وارد میشوید و استفاده میکنید.
——————
🧠 مثال سازمانی
فرض کنیم یک شرکت فروشگاهی داریم:
حالت اول: On-Prem
شرکت خودش:
سرور میخرد
Windows Server نصب میکند
AD و Database راهاندازی میکند
حالت دوم: Azure
شرکت:
یک VM از Azure میگیرد
سرویسها را روی آن اجرا میکند
بابت منابع مصرفی هزینه میدهد
———————————————-
نکات مهم مصاحبهای ⭐️
✅ تفاوت اصلی On-Prem و Cloud چیست؟
→ در On-Prem تجهیزات متعلق به سازمان است، در Cloud منابع از Provider اجاره میشود.
✅ SLA چیست؟
→ تعهد ارائهدهنده سرویس برای میزان دسترسی و کیفیت سرویس.
✅ تفاوت IaaS و SaaS؟
→ در IaaS زیرساخت میگیریم و مدیریت بیشتری داریم؛ در SaaS نرمافزار آماده دریافت میکنیم.
🖥 فصل اول دوره MCSA — قسمت دوم
Microsoft Roadmap
━━━━━━━━━━━━━━━━━━
MCSA چیست؟
MCSA = Microsoft Certified Solutions Associate
یک سطح از مدارک قدیمی مایکروسافت بود که بیشتر روی مهارتهای زیرساختی و محصولات Microsoft مثل Windows Server تمرکز داشت.
—————————
MCSE چیست؟
MCSE = Microsoft Certified Solutions Expert
سطح بالاتر از MCSA بود و برای نشان دادن مهارت تخصصیتر در محصولات و زیرساختهای مایکروسافت استفاده میشد.
مسیر قدیمی:
———————————-
🚀 ساختار جدید Microsoft Certifications
مایکروسافت مسیر مدارک را به چهار سطح اصلی تقسیم کرده:
1️⃣ Fundamentals — پایه
برای شروع و آشنایی با مفاهیم پایه.
مثال:
AZ-900 → Azure Fundamentals
AI-900 → AI Fundamentals
DP-900 → Data Fundamentals
2️⃣ Associate — پیکربندی و کار عملی
سطح متوسط برای یادگیری و پیادهسازی سرویسها.
یعنی از حالت «فقط شناخت مفاهیم» وارد مرحله کار و Configuration میشویم.
3️⃣ Expert — متخصص حرفهای
سطح پیشرفته برای افراد متخصص.
مثالهایی که در کلاس گفته شد:
AZ-305
AZ-400
4️⃣ Specialty — تخصصهای خاص
دورهها و مدارک تخصصی برای یک حوزه یا سرویس خاص.
Microsoft Roadmap
━━━━━━━━━━━━━━━━━━
MCSA چیست؟
MCSA = Microsoft Certified Solutions Associate
یک سطح از مدارک قدیمی مایکروسافت بود که بیشتر روی مهارتهای زیرساختی و محصولات Microsoft مثل Windows Server تمرکز داشت.
—————————
MCSE چیست؟
MCSE = Microsoft Certified Solutions Expert
سطح بالاتر از MCSA بود و برای نشان دادن مهارت تخصصیتر در محصولات و زیرساختهای مایکروسافت استفاده میشد.
مسیر قدیمی:
MCSA
↓
MCSE
در مسیر جدید، مایکروسافت ساختار مدارک قدیمی MCSA/MCSE را کنار گذاشت و مسیر Certification را به سمت نقشهای شغلی و Azure برد.
———————————-
🚀 ساختار جدید Microsoft Certifications
مایکروسافت مسیر مدارک را به چهار سطح اصلی تقسیم کرده:
1️⃣ Fundamentals — پایه
برای شروع و آشنایی با مفاهیم پایه.
مثال:
AZ-900 → Azure Fundamentals
AI-900 → AI Fundamentals
DP-900 → Data Fundamentals
2️⃣ Associate — پیکربندی و کار عملی
سطح متوسط برای یادگیری و پیادهسازی سرویسها.
یعنی از حالت «فقط شناخت مفاهیم» وارد مرحله کار و Configuration میشویم.
3️⃣ Expert — متخصص حرفهای
سطح پیشرفته برای افراد متخصص.
مثالهایی که در کلاس گفته شد:
AZ-305
AZ-400
4️⃣ Specialty — تخصصهای خاص
دورهها و مدارک تخصصی برای یک حوزه یا سرویس خاص.
🖥 فصل اول دوره MCSA — قسمت سوم
Windows Server Editions & Installation
━━━━━━━━━━━━━━━━━━
1️⃣ ادیشنهای Windows Server
در این مبحث با ۳ ادیشن اصلی مواجه میشویم:
🔹 Standard
برای سازمانها و سرورهای معمولی.
🔹 Datacenter
برای محیطهای بزرگتر و دیتاسنتری، مخصوصاً زمانی که قابلیتهای پیشرفته مجازیسازی و دیتاسنتر مورد نیاز باشد.
🔹 Datacenter: Azure Edition
نسخهای از Windows Server که برای محیطهای Azure و Hybrid Cloud طراحی شده و قابلیتهای مخصوص Azure را ارائه میکند.
————————
2️⃣ حداقل سختافزار Windows Server
برای نصب Windows Server باید منابع سختافزاری مناسبی در اختیار سیستم قرار دهیم.
مهمترین منابع:
CPU
RAM
Storage
Network
اما یک نکته مهم:
مثلاً سروری که فقط برای یک Lab و یادگیری استفاده میکنیم با سروری که قرار است Domain Controller + DNS + DHCP + File Server باشد، منابع یکسانی نیاز ندارد.
—————————-
3️⃣ نصب Windows Server روی VMware Workstation
برای دوره MCSA بهتر است Windows Server را بهصورت Virtual Machine نصب کنیم.
ساختار Lab:
مراحل کلی:
1. VMware Workstation را باز میکنیم.
2. یک Virtual Machine جدید میسازیم.
3. فایل ISO مربوط به Windows Server را انتخاب میکنیم.
4. منابع VM را مشخص میکنیم:
5. VM را Boot میکنیم.
6. در Windows Setup نسخه موردنظر را انتخاب میکنیم.
مثلاً:
7. نوع نصب را انتخاب میکنیم.
8. دیسک مقصد را انتخاب و نصب را شروع میکنیم.
——————————-
Windows Server Editions & Installation
━━━━━━━━━━━━━━━━━━
1️⃣ ادیشنهای Windows Server
در این مبحث با ۳ ادیشن اصلی مواجه میشویم:
🔹 Standard
برای سازمانها و سرورهای معمولی.
🔹 Datacenter
برای محیطهای بزرگتر و دیتاسنتری، مخصوصاً زمانی که قابلیتهای پیشرفته مجازیسازی و دیتاسنتر مورد نیاز باشد.
🔹 Datacenter: Azure Edition
نسخهای از Windows Server که برای محیطهای Azure و Hybrid Cloud طراحی شده و قابلیتهای مخصوص Azure را ارائه میکند.
————————
2️⃣ حداقل سختافزار Windows Server
برای نصب Windows Server باید منابع سختافزاری مناسبی در اختیار سیستم قرار دهیم.
مهمترین منابع:
CPU
RAM
Storage
Network
اما یک نکته مهم:
مقدار RAM و CPU موردنیاز واقعی، به نسخه Windows Server، سرویسهایی که قرار است اجرا شوند و تعداد کاربران بستگی دارد.
مثلاً سروری که فقط برای یک Lab و یادگیری استفاده میکنیم با سروری که قرار است Domain Controller + DNS + DHCP + File Server باشد، منابع یکسانی نیاز ندارد.
—————————-
3️⃣ نصب Windows Server روی VMware Workstation
برای دوره MCSA بهتر است Windows Server را بهصورت Virtual Machine نصب کنیم.
ساختار Lab:
VMware Workstation
│
└── Windows Server VM
│
├── Active Directory
├── DNS
├── DHCP
└── سایر سرویسها
مراحل کلی:
1. VMware Workstation را باز میکنیم.
2. یک Virtual Machine جدید میسازیم.
3. فایل ISO مربوط به Windows Server را انتخاب میکنیم.
4. منابع VM را مشخص میکنیم:
CPU
RAM
Hard Disk
Network Adapter
5. VM را Boot میکنیم.
6. در Windows Setup نسخه موردنظر را انتخاب میکنیم.
مثلاً:
Windows Server Standard
Windows Server Datacenter
7. نوع نصب را انتخاب میکنیم.
8. دیسک مقصد را انتخاب و نصب را شروع میکنیم.
——————————-
❤2
فصل اول دوره MCSA — قسمت جهارم
Windows Server Core
━━━━━━━━━━━━━━━━━━
1️⃣ Windows Server Core چیست؟
Windows Server Core نسخهای از Windows Server است که محیط گرافیکی کامل (GUI) را ندارد.
یعنی بعد از نصب، با محیطی شبیه این مواجه میشویم:
و بیشتر مدیریت سرور از طریق Command Line انجام میشود.
در نتیجه:
——————
2️⃣ چرا از Server Core استفاده میکنیم؟
چون بخش زیادی از اجزای گرافیکی Windows حذف شده است، معمولاً:
منابع کمتری مصرف میکند.
RAM کمتری نیاز دارد.
فضای دیسک کمتری مصرف میکند.
سطح حمله کمتری دارد.
برای اجرای سرویسهای سروری مناسب است.
مثلاً اگر یک سرور فقط قرار است یک سرویس مشخص را اجرا کند، همیشه لازم نیست محیط گرافیکی کامل Windows را داشته باشد.
————————
3️⃣ نصب Server Core روی VMware Workstation
در Lab خودمان میتوانیم Server Core را داخل VMware نصب کنیم.
ساختار:
در هنگام نصب Windows Server، نسخه Server Core را انتخاب میکنیم.
بعد از نصب، برخلاف نسخه Desktop Experience، محیط گرافیکی کامل Windows را نخواهیم داشت.
Windows Server Core
━━━━━━━━━━━━━━━━━━
1️⃣ Windows Server Core چیست؟
Windows Server Core نسخهای از Windows Server است که محیط گرافیکی کامل (GUI) را ندارد.
یعنی بعد از نصب، با محیطی شبیه این مواجه میشویم:
C:\>
و بیشتر مدیریت سرور از طریق Command Line انجام میشود.
در نتیجه:
Windows Server GUI
→ محیط گرافیکی کامل
Windows Server Core
→ بدون GUI کامل، مدیریت با Command Line
——————
2️⃣ چرا از Server Core استفاده میکنیم؟
چون بخش زیادی از اجزای گرافیکی Windows حذف شده است، معمولاً:
منابع کمتری مصرف میکند.
RAM کمتری نیاز دارد.
فضای دیسک کمتری مصرف میکند.
سطح حمله کمتری دارد.
برای اجرای سرویسهای سروری مناسب است.
مثلاً اگر یک سرور فقط قرار است یک سرویس مشخص را اجرا کند، همیشه لازم نیست محیط گرافیکی کامل Windows را داشته باشد.
————————
3️⃣ نصب Server Core روی VMware Workstation
در Lab خودمان میتوانیم Server Core را داخل VMware نصب کنیم.
ساختار:
VMware Workstation
↓
Create New VM
↓
Windows Server ISO
↓
انتخاب Server Core
↓
Installation
↓
Command Line
در هنگام نصب Windows Server، نسخه Server Core را انتخاب میکنیم.
بعد از نصب، برخلاف نسخه Desktop Experience، محیط گرافیکی کامل Windows را نخواهیم داشت.
فصل اول دوره MCSA — قسمت پنجم
Windows Server Upgrade
━━━━━━━━━━━━━━━━━━
1️⃣ Upgrade چیست؟
Upgrade یعنی سیستمعامل فعلی را به نسخه جدیدتر منتقل کنیم، بدون اینکه از ابتدا سیستمعامل را کاملاً پاک و نصب کنیم.
مثلاً:
یا:
در Upgrade معمولاً تنظیمات، برنامهها و اطلاعات موجود تا حد امکان حفظ میشوند.
———————
2️⃣ Clean Installation چیست؟
Clean Installation یعنی سیستمعامل را از ابتدا نصب کنیم.
در این روش معمولاً سیستمعامل قبلی را کنار گذاشته و یک Windows Server جدید نصب میکنیم.
مثلاً:
——————-
3️⃣ مسیر Upgrade
در مثالی که در کلاس مطرح شد، نسخههای Windows Server بهصورت زنجیرهای مطرح میشوند:
⚠️ نکته: امکان Upgrade واقعی به Edition، نسخه و سناریوی نصب بستگی دارد؛ بنابراین این زنجیره را نباید بهمعنای مجاز بودن هر ترکیب Upgrade در همه شرایط در نظر گرفت.
————————
4️⃣ مشاهده نسخه Windows Server
یکی از سادهترین دستورات:
با اجرای آن، اطلاعات نسخه Windows نمایش داده میشود.
مثلاً میتوانیم متوجه شویم:
Version
Build
Windows Edition
چیست.
همچنین اطلاعات سیستمعامل را میتوان از بخشهای مدیریتی Windows نیز مشاهده کرد.
—————————
5️⃣ روش کلی Upgrade
فرض کنیم الان روی سرور:
داریم و میخواهیم آن را Upgrade کنیم.
مراحل کلی:
در محیط VMware هم میتوانیم ISO نسخه جدید را به CD/DVD Drive ماشین مجازی متصل کنیم.
مثلاً:
سپس وارد DVD مربوط به Windows Server میشویم و فرآیند Setup را اجرا میکنیم.
Windows Server Upgrade
━━━━━━━━━━━━━━━━━━
1️⃣ Upgrade چیست؟
Upgrade یعنی سیستمعامل فعلی را به نسخه جدیدتر منتقل کنیم، بدون اینکه از ابتدا سیستمعامل را کاملاً پاک و نصب کنیم.
مثلاً:
Windows Server 2012
↓
Windows Server 2016
یا:
2016 → 2019
2019 → 2022
2022 → 2025
در Upgrade معمولاً تنظیمات، برنامهها و اطلاعات موجود تا حد امکان حفظ میشوند.
———————
2️⃣ Clean Installation چیست؟
Clean Installation یعنی سیستمعامل را از ابتدا نصب کنیم.
در این روش معمولاً سیستمعامل قبلی را کنار گذاشته و یک Windows Server جدید نصب میکنیم.
مثلاً:
Server 2012
↓
پاک/جایگزین
↓
Server 2025
——————-
3️⃣ مسیر Upgrade
در مثالی که در کلاس مطرح شد، نسخههای Windows Server بهصورت زنجیرهای مطرح میشوند:
2012
↓
2016
↓
2019
↓
2022
↓
2025
⚠️ نکته: امکان Upgrade واقعی به Edition، نسخه و سناریوی نصب بستگی دارد؛ بنابراین این زنجیره را نباید بهمعنای مجاز بودن هر ترکیب Upgrade در همه شرایط در نظر گرفت.
————————
4️⃣ مشاهده نسخه Windows Server
یکی از سادهترین دستورات:
winver
با اجرای آن، اطلاعات نسخه Windows نمایش داده میشود.
مثلاً میتوانیم متوجه شویم:
Version
Build
Windows Edition
چیست.
همچنین اطلاعات سیستمعامل را میتوان از بخشهای مدیریتی Windows نیز مشاهده کرد.
—————————
5️⃣ روش کلی Upgrade
فرض کنیم الان روی سرور:
Windows Server 2019
داریم و میخواهیم آن را Upgrade کنیم.
مراحل کلی:
Windows Server جدید
↓
ISO / DVD
↓
Mount در سرور
↓
باز کردن DVD Drive
↓
Setup.exe
↓
Upgrade
↓
انتخاب گزینه حفظ اطلاعات
↓
Installation
در محیط VMware هم میتوانیم ISO نسخه جدید را به CD/DVD Drive ماشین مجازی متصل کنیم.
مثلاً:
VMware
↓
VM Settings
↓
CD/DVD
↓
Use ISO Image File
↓
Windows Server 2025 ISO
سپس وارد DVD مربوط به Windows Server میشویم و فرآیند Setup را اجرا میکنیم.
فصل اول دوره MCSA — قسمت ششم
Windows Server Environment
━━━━━━━━━━━━━━━━━━
1️⃣ Server Manager چیست؟
Server Manager ابزار مدیریتی اصلی Windows Server است که برای مدیریت Role، Feature و وضعیت سرور استفاده میشود.
بعد از ورود به Windows Server معمولاً Server Manager را میبینیم.
از اینجا میتوانیم:
Role اضافه کنیم.
Feature اضافه کنیم.
وضعیت Server را بررسی کنیم.
سرویسها و وضعیتهای مختلف را مدیریت کنیم.
سرورهای دیگر را نیز در بعضی سناریوها مدیریت کنیم.
————————
2️⃣ Add Roles and Features چیست؟
در Server Manager گزینه:
Add Roles and Features
برای اضافه کردن قابلیتها و سرویسهای مختلف Windows Server استفاده میشود.
Role چیست؟
Role یعنی یک وظیفه یا سرویس اصلی که سرور انجام میدهد.
مثلاً:
DNS Server
DHCP Server
File Server
Active Directory Domain Services (AD DS)
مثلاً اگر بخواهیم سرورمان DHCP Server شود:
Server Manager
↓
Add Roles and Features
↓
DHCP Server
↓
Install
————————
3️⃣ Add Feature چیست؟
Feature قابلیتهایی هستند که میتوانیم به Windows Server اضافه کنیم، اما الزاماً یک Role اصلی محسوب نمیشوند.
پس:
————————
4️⃣ Add Other Server چیست؟
در Server Manager میتوانیم سرورهای دیگر را نیز به محیط مدیریتی اضافه کنیم تا وضعیت و بعضی تنظیمات آنها را از یک محل مشاهده و مدیریت کنیم.
مثلاً:
این قابلیت در محیطهای سازمانی که چندین Windows Server داریم بسیار کاربردی است.
—————-
5️⃣ اتصال به Cloud
Windows Server میتواند در محیطهای Cloud و Hybrid نیز مورد استفاده قرار گیرد.
در محیطهای مایکروسافت، ارتباط Windows Server با سرویسهای Cloud مانند Azure میتواند امکان مدیریت و استفاده از قابلیتهای Cloud را فراهم کند.
یعنی سرور الزاماً فقط روی سختافزار فیزیکی سازمان نیست و میتواند در محیطهای Cloud نیز اجرا یا مدیریت شود.
———————-
6️⃣ بخش Local Server
در Server Manager بخشی به نام:
Local Server
داریم.
در این قسمت اطلاعات و وضعیت سرور فعلی را میبینیم.
مثلاً مواردی مانند:
Computer Name
Domain / Workgroup
Windows Update
Remote Management
Firewall
Network
Remote Desktop
از این قسمت قابل مشاهده و مدیریت هستند.
——————————
7️⃣ بخش Services
در محیط مدیریت Windows Server، وضعیت سرویسها را میتوان بررسی کرد.
مثلاً:
اگر یک سرویس دچار مشکل شده باشد یا اجرا نشده باشد، میتوانیم وضعیت آن را بررسی کنیم.
مثلاً:
اگر سرویس موردنظر اجرا نشده باشد، باید علت خطا را بررسی و در صورت نیاز سرویس را Start کنیم.
Windows Server Environment
━━━━━━━━━━━━━━━━━━
1️⃣ Server Manager چیست؟
Server Manager ابزار مدیریتی اصلی Windows Server است که برای مدیریت Role، Feature و وضعیت سرور استفاده میشود.
بعد از ورود به Windows Server معمولاً Server Manager را میبینیم.
از اینجا میتوانیم:
Role اضافه کنیم.
Feature اضافه کنیم.
وضعیت Server را بررسی کنیم.
سرویسها و وضعیتهای مختلف را مدیریت کنیم.
سرورهای دیگر را نیز در بعضی سناریوها مدیریت کنیم.
————————
2️⃣ Add Roles and Features چیست؟
در Server Manager گزینه:
Add Roles and Features
برای اضافه کردن قابلیتها و سرویسهای مختلف Windows Server استفاده میشود.
Role چیست؟
Role یعنی یک وظیفه یا سرویس اصلی که سرور انجام میدهد.
مثلاً:
DNS Server
DHCP Server
File Server
Active Directory Domain Services (AD DS)
مثلاً اگر بخواهیم سرورمان DHCP Server شود:
Server Manager
↓
Add Roles and Features
↓
DHCP Server
↓
Install
————————
3️⃣ Add Feature چیست؟
Feature قابلیتهایی هستند که میتوانیم به Windows Server اضافه کنیم، اما الزاماً یک Role اصلی محسوب نمیشوند.
پس:
Role
→ وظیفه اصلی سرور
Feature
→ قابلیت تکمیلی
————————
4️⃣ Add Other Server چیست؟
در Server Manager میتوانیم سرورهای دیگر را نیز به محیط مدیریتی اضافه کنیم تا وضعیت و بعضی تنظیمات آنها را از یک محل مشاهده و مدیریت کنیم.
مثلاً:
Server Manager
│
├── Server01
├── Server02
└── Server03
این قابلیت در محیطهای سازمانی که چندین Windows Server داریم بسیار کاربردی است.
—————-
5️⃣ اتصال به Cloud
Windows Server میتواند در محیطهای Cloud و Hybrid نیز مورد استفاده قرار گیرد.
در محیطهای مایکروسافت، ارتباط Windows Server با سرویسهای Cloud مانند Azure میتواند امکان مدیریت و استفاده از قابلیتهای Cloud را فراهم کند.
یعنی سرور الزاماً فقط روی سختافزار فیزیکی سازمان نیست و میتواند در محیطهای Cloud نیز اجرا یا مدیریت شود.
———————-
6️⃣ بخش Local Server
در Server Manager بخشی به نام:
Local Server
داریم.
در این قسمت اطلاعات و وضعیت سرور فعلی را میبینیم.
مثلاً مواردی مانند:
Computer Name
Domain / Workgroup
Windows Update
Remote Management
Firewall
Network
Remote Desktop
از این قسمت قابل مشاهده و مدیریت هستند.
——————————
7️⃣ بخش Services
در محیط مدیریت Windows Server، وضعیت سرویسها را میتوان بررسی کرد.
مثلاً:
DHCP
DNS
Windows Update
File services
اگر یک سرویس دچار مشکل شده باشد یا اجرا نشده باشد، میتوانیم وضعیت آن را بررسی کنیم.
مثلاً:
Service
↓
Running ✅
Stopped ❌
اگر سرویس موردنظر اجرا نشده باشد، باید علت خطا را بررسی و در صورت نیاز سرویس را Start کنیم.
🧪 مثال واقعی
فرض کن روی Server01، DHCP Server نصب کردهایم.
اما DHCP کار نمیکند.
اول وضعیت سرویس را بررسی میکنیم:
اگر سرویس Stopped باشد، مشکل میتواند از همین قسمت مشخص شود.
فرض کن روی Server01، DHCP Server نصب کردهایم.
اما DHCP کار نمیکند.
اول وضعیت سرویس را بررسی میکنیم:
Server Manager
↓
Local Server
↓
Services
↓
DHCP Server
اگر سرویس Stopped باشد، مشکل میتواند از همین قسمت مشخص شود.
My folder vip pinned «دوتا دوره تمام شده به ترتیب 👇👇👇👇 1️⃣: دوره نتورک پلاس از اول ——————————————————— ——————————————————— 2️⃣: دوره الپیک1 از اول ——————————————————— ——————————————————— 3️⃣: دوره پایتون مقدماتی ——————————————————— ——————————————————— 4️⃣: دوره MCSA»
فصل دوم دوره MCSA — قسمت هفتم
Remote Mgmt - RSAT
━━━━━━━━━━━━━━━━━━
1️⃣ Remote Management چیست؟
یعنی بتوانیم یک Windows Server را از یک سیستم یا سرور دیگر مدیریت کنیم، بدون اینکه مستقیماً پشت همان سرور باشیم.
مثلاً:
————-
2️⃣ بررسی IP سیستمها
برای مشاهده تنظیمات کارت شبکه میتوانیم در Run بزنیم:
در Lab مثلاً:
هر دو سیستم باید بتوانند با یکدیگر ارتباط شبکهای داشته باشند.
—————-
3️⃣ Firewall
در سناریوی Lab کلاس، برای تست ارتباط میتوانیم Firewall را موقتاً غیرفعال کنیم.
——————-
4️⃣ اضافه کردن Server به Server Manager
برای اضافه کردن سرور دیگر، چند روش داریم:
🔹 Active Directory
اگر سیستمها عضو Domain باشند، میتوانیم از Active Directory برای پیدا کردن و مدیریت سرورها استفاده کنیم.
———————-
🔹 DNS
میتوانیم نام Computer را جستوجو کنیم.
مثلاً:
اگر DNS درست تنظیم شده باشد، نام سیستم به IP مربوطه Resolve میشود.
——————-
🔹 Import
میتوانیم یک لیست از سرورها تهیه کنیم و اطلاعات آنها را وارد کنیم.
مثلاً:
سپس این لیست برای اضافه کردن سرورها استفاده میشود.
———————
5️⃣ اگر Remote Management کار نکرد چه کنیم؟
یکی از مواردی که باید بررسی کنیم WinRM است.
در Group Policy مسیر زیر را بررسی میکنیم:
در این قسمت میتوانیم Trusted Hosts را فعال کنیم و سیستم مورد اعتماد را مشخص کنیم.
———————
6️⃣ GPUpdate
بعد از تغییر Group Policy لازم نیست همیشه سیستم را Restart کنیم.
میتوانیم در CMD بزنیم:
این دستور باعث میشود Group Policyها دوباره اعمال شوند.
————————
7️⃣ Cmdkey
برای ذخیره Credential مربوط به یک سیستم میتوان از
مثلاً:
این کار برای سناریوهایی مفید است که سیستم مدیریتی نیاز به Credential مشخصی برای اتصال دارد.
———————
8️⃣ نصب RSAT
RSAT = Remote Server Administration Tools
با RSAT میتوانیم بسیاری از ابزارهای مدیریتی Windows Server را روی یک Windows Client نصب کنیم و سرورها را از راه دور مدیریت کنیم.
در نسخههای جدید Windows میتوان RSAT را از طریق:
اضافه کرد.
همچنین بستههای RSAT بسته به نسخه Windows میتوانند بهصورت جداگانه ارائه شوند.
——————-
Remote Mgmt - RSAT
━━━━━━━━━━━━━━━━━━
1️⃣ Remote Management چیست؟
یعنی بتوانیم یک Windows Server را از یک سیستم یا سرور دیگر مدیریت کنیم، بدون اینکه مستقیماً پشت همان سرور باشیم.
مثلاً:
Server 01
192.168.1.2
↕️
Remote Management
↕️
Server 02
192.168.1.3
————-
2️⃣ بررسی IP سیستمها
برای مشاهده تنظیمات کارت شبکه میتوانیم در Run بزنیم:
ncpa.cpl
در Lab مثلاً:
Server 01 → 192.168.1.2
Server 02 → 192.168.1.3
هر دو سیستم باید بتوانند با یکدیگر ارتباط شبکهای داشته باشند.
—————-
3️⃣ Firewall
در سناریوی Lab کلاس، برای تست ارتباط میتوانیم Firewall را موقتاً غیرفعال کنیم.
در محیط واقعی بهتر است Firewall را خاموش نکنیم و بهجای آن فقط Ruleهای موردنیاز Remote Management را مجاز کنیم.
——————-
4️⃣ اضافه کردن Server به Server Manager
برای اضافه کردن سرور دیگر، چند روش داریم:
🔹 Active Directory
اگر سیستمها عضو Domain باشند، میتوانیم از Active Directory برای پیدا کردن و مدیریت سرورها استفاده کنیم.
———————-
🔹 DNS
میتوانیم نام Computer را جستوجو کنیم.
مثلاً:
Server01
اگر DNS درست تنظیم شده باشد، نام سیستم به IP مربوطه Resolve میشود.
——————-
🔹 Import
میتوانیم یک لیست از سرورها تهیه کنیم و اطلاعات آنها را وارد کنیم.
مثلاً:
Server01 192.168.1.2
Server02 192.168.1.3
Server03 192.168.1.4
سپس این لیست برای اضافه کردن سرورها استفاده میشود.
———————
5️⃣ اگر Remote Management کار نکرد چه کنیم؟
یکی از مواردی که باید بررسی کنیم WinRM است.
در Group Policy مسیر زیر را بررسی میکنیم:
Computer Configuration
↓
Administrative Templates
↓
Windows Components
↓
Windows Remote Management
↓
WinRM Client
↓
Trusted Hosts
در این قسمت میتوانیم Trusted Hosts را فعال کنیم و سیستم مورد اعتماد را مشخص کنیم.
———————
6️⃣ GPUpdate
بعد از تغییر Group Policy لازم نیست همیشه سیستم را Restart کنیم.
میتوانیم در CMD بزنیم:
gpupdate /force
این دستور باعث میشود Group Policyها دوباره اعمال شوند.
————————
7️⃣ Cmdkey
برای ذخیره Credential مربوط به یک سیستم میتوان از
cmdkey استفاده کرد.مثلاً:
cmdkey /add:ComputerName /user:Username /pass:Password
این کار برای سناریوهایی مفید است که سیستم مدیریتی نیاز به Credential مشخصی برای اتصال دارد.
———————
8️⃣ نصب RSAT
RSAT = Remote Server Administration Tools
با RSAT میتوانیم بسیاری از ابزارهای مدیریتی Windows Server را روی یک Windows Client نصب کنیم و سرورها را از راه دور مدیریت کنیم.
در نسخههای جدید Windows میتوان RSAT را از طریق:
Settings
↓
Optional Features
↓
Add an optional feature
↓
RSAT
اضافه کرد.
همچنین بستههای RSAT بسته به نسخه Windows میتوانند بهصورت جداگانه ارائه شوند.
——————-
فصل دوم دوره MCSA — قسمت هشتم
WAC
━━━━━━━━━━━━━━━━━━
1️⃣ WAC چیست؟
WAC = Windows Admin Center
یک ابزار مدیریتی مایکروسافت برای مدیریت Windows Server از راه دور است.
مخصوصاً در محیطهایی که تعداد سرورها زیاد است، مثل Datacenter، بسیار کاربردی است.
بهجای اینکه برای مدیریت هر سرور مستقیماً وارد خود سرور شویم، میتوانیم از طریق WAC به آن متصل شویم.
——————-
2️⃣ نصب WAC
ابتدا برنامه Windows Admin Center را نصب میکنیم.
در مراحل نصب چند تنظیم مهم داریم:
🔹 Port
در ابتدا پورتی که WAC روی آن کار میکند را مشخص میکنیم.
🔹 Trusted Sites
گزینه مربوط به Trusted Sites را فعال میکنیم.
🔹 Desktop Shortcut
در صورت نیاز گزینه:
Create Desktop Shortcut
را فعال میکنیم تا Shortcut روی Desktop ساخته شود.
🔹 HTTPS
WAC را روی حالت:
HTTPS
قرار میدهیم.
——————-
3️⃣ اضافه کردن Server
بعد از نصب و اجرای WAC:
حالا نام یا IP سروری که میخواهیم مدیریت کنیم را وارد میکنیم.
مثلاً:
یا:
——————
4️⃣ اگر بخواهیم با Name سرور را پیدا کنیم
اگر بهجای IP بخواهیم نام سرور را وارد کنیم، سیستم مدیریتی باید بتواند Name Resolution انجام دهد.
یعنی مثلاً:
دو راه اصلی:
راه اول: استفاده از DNS Server
اگر DNS درست تنظیم شده باشد، نام Server به IP تبدیل میشود.
راه دوم: استفاده از Hosts File
مسیر:
فایل hosts را باز میکنیم و میتوانیم IP و نام سرور را در آن مشخص کنیم.
مثلاً:
در این حالت سیستم میتواند نام
———————
5️⃣ وارد کردن Username و Password
بعد از اضافه کردن Server، WAC برای اتصال به سرور به Credential نیاز دارد.
یعنی:
را وارد میکنیم.
بعد از اتصال موفق، WAC اطلاعات و امکانات مدیریتی سرور را در اختیارمان قرار میدهد.
———————-
🖥 6️⃣ مدیریت سرور با WAC
بعد از اتصال، میتوانیم وضعیت کلی Server را مشاهده و مدیریت کنیم.
یعنی تقریباً یک نمای مدیریتی از سرور داریم و میتوانیم موارد مختلف آن را بررسی کنیم.
مثلاً:
وضعیت سیستم
منابع
شبکه
Storage
سرویسها
Eventها
تنظیمات مختلف Server
بنابراین WAC یک پنل مدیریتی مرکزی و تحت وب برای Windows Server محسوب میشود.
WAC
━━━━━━━━━━━━━━━━━━
1️⃣ WAC چیست؟
WAC = Windows Admin Center
یک ابزار مدیریتی مایکروسافت برای مدیریت Windows Server از راه دور است.
مخصوصاً در محیطهایی که تعداد سرورها زیاد است، مثل Datacenter، بسیار کاربردی است.
بهجای اینکه برای مدیریت هر سرور مستقیماً وارد خود سرور شویم، میتوانیم از طریق WAC به آن متصل شویم.
——————-
2️⃣ نصب WAC
ابتدا برنامه Windows Admin Center را نصب میکنیم.
در مراحل نصب چند تنظیم مهم داریم:
🔹 Port
در ابتدا پورتی که WAC روی آن کار میکند را مشخص میکنیم.
🔹 Trusted Sites
گزینه مربوط به Trusted Sites را فعال میکنیم.
🔹 Desktop Shortcut
در صورت نیاز گزینه:
Create Desktop Shortcut
را فعال میکنیم تا Shortcut روی Desktop ساخته شود.
🔹 HTTPS
WAC را روی حالت:
HTTPS
قرار میدهیم.
——————-
3️⃣ اضافه کردن Server
بعد از نصب و اجرای WAC:
WAC
↓
Add
↓
Server
حالا نام یا IP سروری که میخواهیم مدیریت کنیم را وارد میکنیم.
مثلاً:
192.168.1.2
یا:
Server01
——————
4️⃣ اگر بخواهیم با Name سرور را پیدا کنیم
اگر بهجای IP بخواهیم نام سرور را وارد کنیم، سیستم مدیریتی باید بتواند Name Resolution انجام دهد.
یعنی مثلاً:
Server01
↓
DNS
↓
192.168.1.2
دو راه اصلی:
راه اول: استفاده از DNS Server
اگر DNS درست تنظیم شده باشد، نام Server به IP تبدیل میشود.
راه دوم: استفاده از Hosts File
مسیر:
C:\Windows\System32\drivers\etc\hosts
فایل hosts را باز میکنیم و میتوانیم IP و نام سرور را در آن مشخص کنیم.
مثلاً:
192.168.1.2 Server01
در این حالت سیستم میتواند نام
Server01 را به IP مربوطه Resolve کند.———————
5️⃣ وارد کردن Username و Password
بعد از اضافه کردن Server، WAC برای اتصال به سرور به Credential نیاز دارد.
یعنی:
Username
Password
را وارد میکنیم.
بعد از اتصال موفق، WAC اطلاعات و امکانات مدیریتی سرور را در اختیارمان قرار میدهد.
———————-
🖥 6️⃣ مدیریت سرور با WAC
بعد از اتصال، میتوانیم وضعیت کلی Server را مشاهده و مدیریت کنیم.
یعنی تقریباً یک نمای مدیریتی از سرور داریم و میتوانیم موارد مختلف آن را بررسی کنیم.
مثلاً:
وضعیت سیستم
منابع
شبکه
Storage
سرویسها
Eventها
تنظیمات مختلف Server
بنابراین WAC یک پنل مدیریتی مرکزی و تحت وب برای Windows Server محسوب میشود.
فصل دوم دوره MCSA — قسمت نهم
NIC Teaming
━━━━━━━━━━━━━━━━━━
1️⃣ NIC Teaming چیست؟
NIC Teaming یعنی چند کارت شبکه را با هم Team کنیم تا بهصورت یک تیم شبکهای کار کنند.
مهمترین کاربرد:
اگر یکی از کارتهای شبکه خراب شود، کارت دیگر میتواند ارتباط را حفظ کند.
بنابراین باعث افزایش:
Availability
Fault Tolerance
و در بعضی حالتها Load Balancing
میشود.
——————-
2️⃣ دو تنظیم مهم
هنگام ساخت Team دو مورد مهم داریم:
1. Teaming Mode
مشخص میکند کارتهای شبکه چگونه با Switch ارتباط داشته باشند.
2. Load Balancing Mode
مشخص میکند ترافیک چگونه بین کارتهای شبکه تقسیم شود.
—————-
3️⃣ Teaming Mode
سه حالت مهم داریم:
🔹 Switch Independent
هر کارت شبکه به یک Switch مستقل متصل میشود.
مزیت مهم:
اگر یکی از Switchها خراب شود، ارتباط از طریق Switch دیگر ادامه پیدا میکند.
🔹 Static Teaming
در این حالت تنظیمات Team باید روی Switch نیز انجام شود.
یعنی Switch باید بداند این چند پورت متعلق به یک Team هستند.
🔹 LACP
LACP = Link Aggregation Control Protocol
در این حالت نیز باید قابلیت/پروتکل LACP روی Switch پشتیبانی و فعال باشد.
————————
4️⃣ Load Balancing Mode
در این قسمت روش تقسیم ترافیک مشخص میشود.
حالتهایی که در این مبحث داریم:
🔹 Address Hash
بر اساس Hash مربوط به آدرسها، ترافیک بین NICها توزیع میشود.
🔹 Dynamic
بهصورت Dynamic ترافیک را بین کارتهای شبکه توزیع میکند.
🔹 Hyper-V Port
در محیط Hyper-V میتواند ترافیک را بر اساس Virtual Machine Port بین کارتهای شبکه تقسیم کند.
————————
5️⃣ Standby Adapter
میتوانیم یکی از کارتهای شبکه را بهصورت Standby قرار دهیم.
یعنی کارت فعلاً وارد مدار اصلی نباشد و اگر NIC اصلی دچار مشکل شد، کارت Standby وارد مدار شود.
مثلاً:
اگر یکی از NICهای فعال خراب شود، NIC Standby میتواند وارد مدار شود.
——————
🧪 6️⃣ ساخت Lab در VMware
برای تمرین NIC Teaming میتوانیم در VMware چند کارت شبکه به VM اضافه کنیم.
مرحله اول
در تنظیمات VM:
مثلاً 4 کارت شبکه اضافه میکنیم.
——————
مرحله دوم — ساخت LAN Segment
برای هر کارت یک LAN Segment در نظر میگیریم:
و کارتها را به ترتیب به Segmentهای مربوطه متصل میکنیم.
بعد از بالا آمدن Windows Server، در Network Connections باید چهار کارت شبکه را مشاهده کنیم.
———————
7️⃣ ساخت Team در Server Manager
در:
ابتدا NIC Teaming را از حالت Disabled خارج میکنیم.
بعد کارتهای شبکه را مشاهده میکنیم.
سپس:
یک نام برای Team انتخاب میکنیم:
سپس کارتهای شبکه موردنظر را انتخاب میکنیم.
بعد:
را مشخص میکنیم.
در صورت نیاز میتوانیم یک NIC را نیز بهعنوان:
Standby Adapter
انتخاب کنیم.
NIC Teaming
━━━━━━━━━━━━━━━━━━
1️⃣ NIC Teaming چیست؟
NIC Teaming یعنی چند کارت شبکه را با هم Team کنیم تا بهصورت یک تیم شبکهای کار کنند.
مهمترین کاربرد:
اگر یکی از کارتهای شبکه خراب شود، کارت دیگر میتواند ارتباط را حفظ کند.
NIC 1 ──┐
├── Team 1 ── Network
NIC 2 ──┘
بنابراین باعث افزایش:
Availability
Fault Tolerance
و در بعضی حالتها Load Balancing
میشود.
——————-
2️⃣ دو تنظیم مهم
هنگام ساخت Team دو مورد مهم داریم:
1. Teaming Mode
مشخص میکند کارتهای شبکه چگونه با Switch ارتباط داشته باشند.
2. Load Balancing Mode
مشخص میکند ترافیک چگونه بین کارتهای شبکه تقسیم شود.
—————-
3️⃣ Teaming Mode
سه حالت مهم داریم:
🔹 Switch Independent
هر کارت شبکه به یک Switch مستقل متصل میشود.
NIC 1 ── Switch 1
NIC 2 ── Switch 2
مزیت مهم:
اگر یکی از Switchها خراب شود، ارتباط از طریق Switch دیگر ادامه پیدا میکند.
🔹 Static Teaming
در این حالت تنظیمات Team باید روی Switch نیز انجام شود.
یعنی Switch باید بداند این چند پورت متعلق به یک Team هستند.
🔹 LACP
LACP = Link Aggregation Control Protocol
در این حالت نیز باید قابلیت/پروتکل LACP روی Switch پشتیبانی و فعال باشد.
————————
4️⃣ Load Balancing Mode
در این قسمت روش تقسیم ترافیک مشخص میشود.
حالتهایی که در این مبحث داریم:
🔹 Address Hash
بر اساس Hash مربوط به آدرسها، ترافیک بین NICها توزیع میشود.
🔹 Dynamic
بهصورت Dynamic ترافیک را بین کارتهای شبکه توزیع میکند.
🔹 Hyper-V Port
در محیط Hyper-V میتواند ترافیک را بر اساس Virtual Machine Port بین کارتهای شبکه تقسیم کند.
————————
5️⃣ Standby Adapter
میتوانیم یکی از کارتهای شبکه را بهصورت Standby قرار دهیم.
یعنی کارت فعلاً وارد مدار اصلی نباشد و اگر NIC اصلی دچار مشکل شد، کارت Standby وارد مدار شود.
مثلاً:
NIC 1 → Active ✅
NIC 2 → Active ✅
NIC 3 → Standby ⏸️
اگر یکی از NICهای فعال خراب شود، NIC Standby میتواند وارد مدار شود.
——————
🧪 6️⃣ ساخت Lab در VMware
برای تمرین NIC Teaming میتوانیم در VMware چند کارت شبکه به VM اضافه کنیم.
مرحله اول
در تنظیمات VM:
VM Settings
↓
Add
↓
Network Adapter
مثلاً 4 کارت شبکه اضافه میکنیم.
——————
مرحله دوم — ساخت LAN Segment
برای هر کارت یک LAN Segment در نظر میگیریم:
LAN 1
LAN 2
LAN 3
LAN 4
و کارتها را به ترتیب به Segmentهای مربوطه متصل میکنیم.
NIC 1 → LAN 1
NIC 2 → LAN 2
NIC 3 → LAN 3
NIC 4 → LAN 4
بعد از بالا آمدن Windows Server، در Network Connections باید چهار کارت شبکه را مشاهده کنیم.
———————
7️⃣ ساخت Team در Server Manager
در:
Server Manager
↓
Local Server
↓
NIC Teaming
ابتدا NIC Teaming را از حالت Disabled خارج میکنیم.
بعد کارتهای شبکه را مشاهده میکنیم.
سپس:
Tasks
↓
New Team
یک نام برای Team انتخاب میکنیم:
Team 1
سپس کارتهای شبکه موردنظر را انتخاب میکنیم.
بعد:
Teaming Mode
+
Load Balancing Mode
را مشخص میکنیم.
در صورت نیاز میتوانیم یک NIC را نیز بهعنوان:
Standby Adapter
انتخاب کنیم.