امیرحسین کریم پور
مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

3 روش کاربردی برای اجرای دستور gpupdate از راه دور در شبکه

مواقعی پیش می آید که یک GPO را به کامپیوتر های شبکه اعمال کردید و می خواهید هر چه زودتر این GPO روی کامپیوتر های شبکه اعمال شود. به صورت پیش فرض شما 90 دقیقه باید صبر کنید تا کامپیوتر های شبکه Policy های جدید را از روی سرور بصورت اتوماتیک دریافت کنند و Policy را روی خودشان اعمال کنند. در این آموزش ما 3 روش را به شما یاد میدهیم.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

روش اول : روش اول روش گرافیکی هست که توسط کنسول مدیریتی Group Policy Management Console یا GPMC و در سطح OU انجام می شود. زمانی که از این روش استفاده می کنید تا 10 دقیقه تاخیر GPO به کامپیوتر ها اعمال خواهد شد. این به این خاطر است که به یکباره ترافیک شبکه بالا نرود. همچنین شما نمی توانید مقدار این Delay را بوسیله کنسول گرافیکی GPMC کم یا زیاد کنید. در ویندوز سرور 2016 ، ویندوز سرور 2016 نسخه R2 ، ویندوز سرور 2012 و 2012 نسخه R2 ، ویندوز سرور 2008 و 2008 نسخه R2 ، ویندوز 8 و 8.1 و همچنین ویندوز 7 و ویستا نیز از این روش می توانید استفاده کنید.

برای انجام این کار وارد کنسول GPMC شوید و روی OU ای که Computer object ها درون آن قرار دارند راست کلیک کنید و گزینه Group Policy Update را بزنید. توجه کنید که این کار روی خود ویندوز سرور صورت نمیگیرد بلکه بصورت Remote روی سیستم های کلاینت یا سرور این کار انجام می شود. در واقع دستور GPUpdate از روی سیستم های کلاینت Invoke می شود. روی گزینه Yes کلیک کنید تا دستور اجرا شود. اگر دستور به درستی و بدون خطا اجرا شد پیغام Succeeded نمایش داده خواهد شد. این دستور روی تمام Object های درون آن OU و نیز Sub OU هایش اجرا خواهد شد.


روش دوم : این روش به ویندوز سرور 2016 ، ویندوز سرور 2012 و یا ویندوز های 10 و 8 که ابزار RSAT روی آنها نصب است نیاز دارد. دستور PowerShell ای زیر ابتدا Computer object ها را از OU ای به نام Server استخراج می کند و Invoke-GPUpdate را برای کامپیوتر های داخل آن OU اجرا می کند :

get-adcomputer -SearchBase "OU=Servers,DC=thesysadmins,DC=local" -Filter * | %{invoke-gpupdate -Computer $_.Name -RandomDelayInMinute 0; "Refreshing host $_."}

توجه کنید که زمانی که این دستور را اجرا کردید پنجره Command Prompt روی سیستم های کلاینت داخل آن OU باز شده و Updating Policy نمایش داده خواهد شد. پس حتما این را به خاطر داشته باشید که یوزر ها به سیستم هایشان لاگین کرده باشند.

روش سوم : نترسید! اگر از ویندوز سرور 2016 یا ویندوز سرور 2012 در شبکه استفاده نمی کنید و همچنان از ویندوز سرور 2008 یا 2008 نسخه R2 استفاده می کنید با استفاده از دستور زیر میتوانید لیستی از کامپیوتر های شبکه تان تهیه کنید و با استفاده از PSEXEC دستور GPUpdate را روی آن ها اجرا کنید. دستور زیر Computer object های درون OU ی Server را درون فایل متنی Servers.txt در درایو C خروجی میگیرد :

Add-Content -path C:\Servers.txt -Value Dummy ; Get-ADComputer -LDAPFilter "(name=*)" -SearchBase "OU=Servers,DC=thesysadmins,DC=local" | Select -expand Name | Out-File -Encoding utf8 "C:\Servers.txt" -append

حالا با دستور زیر gpupdate /force روی تمامی Computer های OU مورد نظر ما یعنی Server اجرا خواهد شد :

psexec @"C:\Servers.txt" gpupdate /force

اجرای کامل این دستور مدتی طول میکشد. امیدوارم مورد توجه شما قرار گرفته باشد.


امیرحسین کریم پور
امیرحسین کریم پور

مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

امیرحسین کریم پور ، مدیر ارشد توسینسو ، متخصص شبکه ، تخصص در حوزه سیستم عامل های کلاینت و سرور مایکروسافت و سرویس های مربوطه ، سیستم عامل لینوکس و... ، سابقه کار با سازمان ها و شرکت های مختلف در زمینه سرویس های مایکروسافت در قالب پروژه ، مشاوره و آموزش. علاقه مند به حوزه امنیت اطلاعات و تست نفوذ سنجی

نظرات