نصب روی همهٔ سرورهای دامین با GPO

در این آموزش
  1. پیش از شروع
  2. گام ۱: ساخت توکن مخصوص GPO
  3. گام ۲: ساختن فایل اسکریپت
  4. گام ۳: ساخت GPO
  5. گام ۴: منتظر شبکه ماندن هنگام بوت
  6. گام ۵: اعمال و بررسی
  7. نکته‌های امنیتی که باید بدانید
  8. اگر سروری ظاهر نشد

اگر ده‌ها سرور ویندوز عضو Active Directory دارید، لازم نیست روی تک‌تک آنها وارد شوید. همان دستور نصب ویندوز را می‌شود به‌عنوان Computer Startup Script در یک GPO گذاشت تا هر سرور در ریبوت بعدی سنسور را نصب کند. اسکریپت نصب idempotent است: روی سروری که سنسور همان نسخه را دارد کاری نمی‌کند، روی نسخهٔ قدیمی‌تر فقط فایل را به‌روز می‌کند و روی سرور تازه نصب کامل انجام می‌دهد. پس GPO را می‌شود همیشه فعال نگه داشت.

پیش از شروع

  • همهٔ سرورهای هدف Windows Server 2016 یا جدیدتر باشند. اگر 2012 R2 هم در OU دارید، نصب روی آنها شکست می‌خورد؛ بهتر است آنها را با WMI Filter یا جدا کردن OU کنار بگذارید.
  • سرورها به نشانی ingest و https://app.servermug.ir دسترسی خروجی HTTPS داشته باشند.
  • دسترسی ساخت و لینک GPO در Group Policy Management داشته باشید.

گام ۱: ساخت توکن مخصوص GPO

  1. در داشبورد «+ افزودن سرور» را بزنید.
  2. اگر می‌خواهید این سرورها در یک گروه بروند (مثلاً «سرورهای دامین»)، گروه را انتخاب کنید.
  3. «حداکثر دفعات استفاده» را کمی بیشتر از تعداد سرورها بگذارید؛ مثلاً برای ۳۲ سرور، ۴۰.
  4. «مدت اعتبار (روز)» را به اندازهٔ دورهٔ پخش بگذارید؛ حداکثر ۳۰ روز است.
  5. «ساخت توکن و دستور نصب» را بزنید و زبانهٔ «چند سرور ویندوز با GPO» را باز کنید. دستور این زبانه همان دستور ویندوز است.

گام ۲: ساختن فایل اسکریپت

یک فایل متنی به نام install-servermug.ps1 بسازید و دستور نصب را به‌تنهایی در آن بگذارید:

& ([scriptblock]::Create((irm 'https://app.servermug.ir/dl/install.ps1'))) -Server 'https://INGEST_HOST' -Token 'sm_enroll_TOKEN' -Pin 'sha256:FINGERPRINT' -Dl 'https://app.servermug.ir/dl'

گام ۳: ساخت GPO

  1. Group Policy Management را باز کنید. روی OUای که سرورها در آن هستند راست‌کلیک کنید و Create a GPO in this domain, and Link it here را بزنید. نامی مثل ServerMug Agent بدهید.
  2. GPO را Edit کنید و به این مسیر بروید: Computer Configuration › Policies › Windows Settings › Scripts (Startup/Shutdown)
  3. روی Startup دوبار کلیک کنید و زبانهٔ Scripts (نه PowerShell Scripts) را باز کنید.
  4. Show Files را بزنید و install-servermug.ps1 را در پوشه‌ای که باز می‌شود (داخل SYSVOL همین GPO) کپی کنید.
  5. Add را بزنید و این مقدارها را وارد کنید:
    • Script Name: powershell.exe
    • Script Parameters: -NoProfile -ExecutionPolicy Bypass -File "\\corp.local\SYSVOL\corp.local\Policies\{GUID}\Machine\Scripts\Startup\install-servermug.ps1"

    مسیر دقیق را از نوار نشانی پنجرهٔ Show Files بردارید و corp.local و {GUID} را با مقدار خودتان عوض کنید.

چرا از زبانهٔ PowerShell Scripts استفاده نمی‌کنیم؟ آنجا Execution Policy سرور اعمال می‌شود و اگر روی سرورها AllSigned تنظیم شده باشد، اسکریپت امضانشده اجرا نمی‌شود. اجرای صریح powershell.exe با -ExecutionPolicy Bypass فقط برای همین یک اجرا سیاست را کنار می‌گذارد و به تنظیم کلی سرور دست نمی‌زند.

گام ۴: منتظر شبکه ماندن هنگام بوت

اسکریپت استارتاپ پیش از ورود هر کاربری اجرا می‌شود و ممکن است شبکه هنوز آماده نباشد. در همان GPO این تنظیم را روشن کنید:

Computer Configuration › Policies › Administrative Templates › System › Logon
  Always wait for the network at computer startup and logon = Enabled

اسکریپت‌های GPO به‌طور پیش‌فرض حداکثر ۱۰ دقیقه وقت دارند؛ دانلود و نصب سنسور معمولاً کمتر از یک دقیقه طول می‌کشد.

گام ۵: اعمال و بررسی

  1. روی یکی از سرورها gpupdate /force را اجرا کنید و سرور را ریبوت کنید.
  2. بعد از بالا آمدن، بررسی کنید GPO اعمال شده: gpresult /r /scope computer
  3. وضعیت سرویس و لاگ نصب را ببینید:
Get-Service ServerMugAgent
Get-Content 'C:\ProgramData\ServerMug\install.log' -Tail 20

اگر این سرور در «نمای کلی» داشبورد ظاهر شد، بقیهٔ سرورها را در پنجرهٔ ریبوت عادی خودشان رها کنید؛ لازم نیست همه را یک‌جا ریبوت کنید. ستون «استفاده» در جدول «توکن‌های ثبت» نشان می‌دهد تا الان چند سرور ثبت شده‌اند.

نکته‌های امنیتی که باید بدانید

موضوع توضیح اقدام
توکن در SYSVOL هر کاربر احرازشدهٔ دامین می‌تواند SYSVOL را بخواند، پس توکن را هم می‌بیند و می‌تواند با آن یک ماشین دیگر را در سازمان شما ثبت کند «حداکثر دفعات استفاده» را نزدیک تعداد سرورها و مدت اعتبار را کوتاه بگذارید
پایان پخش بعد از اینکه همهٔ سرورها ثبت شدند، توکن دیگر لازم نیست در جدول «توکن‌های ثبت» روی «ابطال» بزنید؛ سرورهای ثبت‌شده کار می‌کنند و فقط ثبت تازه ممکن نیست
سرورهای آینده توکن منقضی‌شده روی سرورهای تازهٔ OU کار نمی‌کند هنگام افزودن سرور جدید، توکن تازه بسازید و فایل اسکریپت را عوض کنید
اسکریپت سفارشی اگر توکن را با اجازهٔ اسکریپت بسازید، روی همهٔ سرورهای OU این اجازه داده می‌شود فقط وقتی واقعاً لازم است؛ چک‌های سفارشی را ببینید

منقضی شدن یا ابطال توکن به سرورهایی که سنسور دارند آسیبی نمی‌زند: اسکریپت روی آنها قبل از رسیدن به مرحلهٔ ثبت کنار می‌رود و برای ارتقای نسخه هم توکن لازم ندارد. نصب دوباره روی سروری که قبلاً ثبت شده، همان سرور را با سابقه‌اش نگه می‌دارد.

اگر سروری ظاهر نشد

  • با gpresult /r /scope computer مطمئن شوید GPO روی آن سرور اعمال شده و Security Filtering گروه Domain Computers یا خود سرور را شامل می‌شود.
  • فایل C:\ProgramData\ServerMug\install.log را بخوانید؛ خطای دانلود، توکن یا پین در آن ثبت می‌شود.
  • نسخهٔ سیستم‌عامل را بررسی کنید؛ روی 2012 R2 نصب انجام نمی‌شود.
  • دستور را یک بار دستی در PowerShell با Run as Administrator اجرا کنید تا خطا را مستقیم ببینید. راهنمای خطاها در نصب روی ویندوز سرور است.

دستور نصب را از کجا بیاورید؟

در داشبورد، صفحهٔ «افزودن سرور» دستور آماده با توکن خودتان را می‌دهد. هنوز حساب ندارید؟ درخواست دمو بدهید.

ورود به داشبورد درخواست دمو