نحوه مدیریت هاست Hyper-V از یک کلاینت ویندوز بدون دامنه
نحوه مدیریت هاست Hyper-V از یک کلاینت ویندوز بدون دامنه
چه یک حرفه ای فناوری اطلاعات باشید و چه از علاقه مندان به فناوری،
ممکن است به مکانی برای اجرا یا آزمایش پیکربندی های مختلف در سیستم عامل های مختلف نیاز داشته باشید.
یکی از راههای ایجاد محیطی که بتوانید چندین سیستم عامل را به راحتی اجرا کنید، روی یک هاست با سرویس Hyper-V مایکروسافت است.
با این حال، هنگامی که می خواهید به یک هاست Hyper-V در دامنه اکتیو دایرکتوری (AD) متصل شوید و کامپیوتر کلاینت شما در یک گروه کاری قرار دارد،
کار کردن این تنظیمات چندان ساده نیست.
متأسفانه، هنگام تلاش برای دسترسی به یک دامنه کامپیوتر از یک دامنه خارجی یا از طریق یک کامپیوتر workgroup،
معمولاً با مشکلات امنیتی و احراز هویت مختلفی مواجه می شوید.
اما، هنوز هم میتوانید کارها را با تعداد انگشت شماری از فرمانهای PowerShell برای پیکربندی ماشین کلاینت
برای برقراری ارتباط با Hyper-V Host متصل به دامنهای در همان شبکه انجام دهید.
در این مقاله، نحوه پیکربندی یک کلاینت ویندوز 10 workgroup را برای برقراری ارتباط با میزبان Hyper-V متصل به دامنه، یاد خواهید گرفت.
پیش نیازها
یک کلاینت Windows 10 Pro یا Enterprise 1903/1909 که به یک دامنه متصل نیست، بلکه در همان شبکه میزبان Hyper-V است.
Hyper-V Manager – اگر قبلاً این را نصب نکردهاید، حتماً Hyper-V Manager را روی Windows Client نصب کنید.
هر زمان که Hyper-V را روی ویندوز 10 نصب می کنید،
برنامه رابط کاربری گرافیکی مدیریت Hyper-V و ماژول PowerShell را دریافت خواهید کرد که به آن نیاز دارید.
یک محیط Active Directory با میزبان ویندوز سرور به عنوان عضو.
خطای اتصال معمولی که با آن مواجه خواهید شد
ممکن است در حال خواندن این مقاله باشید زیرا قبلاً سعی کرده اید یک کلاینت متصل به دامنه را به یک میزبان Hyper-V متصل به دامنه متصل کنید.
اگر چنین است، احتمالاً هنگام تلاش برای اتصال به هاست با Hyper-V Manager با خطای زیر مواجه شده اید.
اگر با خطای بالا مواجه شدید، خوش شانس هستید. بیایید درستش کنیم!
افزودن هاست Hyper-V به فایل Hosts
برای شروع، اولین قدم این است که اطمینان حاصل کنید که کلاینت ویندوز 10 شما می تواند نام هاست Hyper-V را از طریق شبکه حل کند.
برای کمک به وضوح نام میزبان، ویندوز یک فایل به نام C:\Windows\System32\hosts دارد.
این فایل میزبان یک فایل متنی ساده است که نام هاست را تعریف می کند
و آدرس های IP نام هاست ها باید به آن ها حل شود.
وقتی وضوح DNS در دسترس نباشد، ویندوز به فایل میزبان باز می گردد.
از آنجایی که کلاینت ویندوز 10 شما در یک دامنه نیست، احتمالاً به همان سرور DNS که حاوی رکورد DNS برای حل نام میزبان Hyper-V است اشاره نمی کند.
در قطعه کد زیر می توانید مشاهده کنید که فایل میزبان پیش فرض چگونه است.
برای اطمینان از اینکه ویندوز 10 می تواند نام هاست Hyper-V را حل کند، یک خط جدید در فایل میزبان با آدرس IP میزبان Hyper-V و نام میزبان ایجاد کنید.
می توانید از یک ویرایشگر متن برای ویرایش این فایل استفاده کنید،
اما این مقاله تماماً در مورد PowerShell است، بنابراین بیایید این فرآیند را خودکار کنیم.
اگر IP میزبان را نمیبینید، از Add-Content cmdlet برای ایجاد یک خط جدید استفاده کنید.
cmdlet Add-Content یک ردیف به فایل host اضافه می کند.
برای انجام این کار، Add-Content را با مشخص کردن مسیر فایل میزبان و خطی که میخواهید اضافه کنید، اجرا کنید.
مثال زیر فرض میکند که نام میزبان Hyper-V hypervhost.faraznetwork.ir و آدرس IP آن 10.10.10.10 است.
"WIN10PS> <span class="token function">Add-Content</span> <span class="token operator">-</span>Path <span class="token string">"C:\Windows\System32\drivers\etc\hosts"</span> <span class="token operator">-</span>Value <span class="token string">"10.10.10.10 hypervhost.faraznetwork.ir</span>
"WIN10PS> <span class="token function">Get-Content</span> <span class="token operator">-</span>Path <span class="token string">"C:\Windows\System32\drivers\etc\hosts</span>
<span class="token comment">.Copyright (c) 1993-2009 Microsoft Corp #</span>
<span class="token comment">#</span>
<span class="token comment">.This is a sample HOSTS file used by Microsoft TCP/IP for Windows #</span>
<span class="token comment">#</span>
<span class="token comment">This file contains the mappings of IP addresses to host names. Each #</span>
<span class="token comment">entry should be kept on an individual line. The IP address should #</span>
<span class="token comment">.be placed in the first column followed by the corresponding host name #</span>
<span class="token comment">The IP address and the host name should be separated by at least one #</span>
<span class="token comment">.space #</span>
<span class="token comment">#</span>
<span class="token comment">Additionally, comments (such as these) may be inserted on individual #</span>
<span class="token comment">.lines or following the machine name denoted by a '#' symbol #</span>
<span class="token comment">#</span>
<span class="token comment">:For example #</span>
<span class="token comment">#</span>
<span class="token comment"> 102.54.94.97 rhino.acme.com # source server #</span>
<span class="token comment"> 38.25.63.10 x.acme.com # x client host #</span>
<span class="token comment">.localhost name resolution is handled within DNS itself #</span>
<span class="token comment">127.0.0.1 localhost</span> #
<span class="token comment">::1 localhost</span> #
10<span class="token punctuation">.</span>10<span class="token punctuation">.</span>10<span class="token punctuation">.</span>10 hypervhost<span class="token punctuation">.faraznetwork.ir</span>
تنظیم پروفایل شبکه ویندوز
یکی دیگر از دلایل اصلی عدم ارتباط می تواند Profile اتصال نادرست تعریف شده در فایروال ویندوز میزبان Hyper-V باشد.
برای اطمینان از اینکه فایروال ویندوز هاست Hyper-V اجازه اتصال از کلاینت ویندوز 10 شما را می دهد،
باید مطمئن شوید که Profile شبکه روی Private تنظیم شده است.
برای انجام این کار، Get-NetConnectionProfile را اجرا کنید تا نوع شبکه کلاینت خود را بررسی کنید.
در زیر مشاهده خواهید کرد که نمایه اتصال شبکه این میزبان Hyper-V همانطور که توسط ویژگی NetworkCategory نشان داده شده است روی Private تنظیم شده است.
اگر Public مرتبط با NetworkCategory را مشاهده کردید، احتمالاً یکی از دلایل مسدود شدن ارتباط است.
اگر دیدید NetworkCategory روی Private تنظیم نشده است،
ادامه دهید و یا با استفاده از cmdlet Set-NetConnectionProfile آن را روی Private تنظیم کنید
و دوباره category پروفایل را با استفاده از دستور Get-NetConnectionProfile تأیید کنید.
فعال کردن PowerShell Remoting
Hyper-V از PowerShell Remoting برای ارتباطات زیاد استفاده می کند.
شما باید این را به طور پیش فرض فعال کنید،
وگرنه، همیشه می توانید cmdlet Enable-PSRemoting را اجرا کنید تا مطمئن شوید که فعال است و تمام قوانین مناسب فایروال ویندوز اضافه شده است.
HYPERVPS> Enable-PSRemoting
فعال کردن CredSSP
در مرحله بعد، بیایید CredSSP را فعال کنیم.
CredSSP یک روش احراز هویت است که به شما امکان می دهد مجوز را به رایانه های دیگر واگذار کنید.
در این مرحله، ابتدا مطمئن شوید که رایانه کلاینت شما می تواند اعتبارنامه هاست Hyper-V را واگذار کند.
برای انجام این کار، Get-WsManCredSSP را اجرا کنید.
WIN10PS> Get-WSManCredSSP
اگر خطایی دریافت کردید که میگوید «دستگاه برای اجازه دادن به اعتبارنامههای جدید پیکربندی نشده است.»
مرحله بعدی را دنبال کنید تا دامنه برای تفویض اختیار در لیست سفید قرار گیرد.
برای فعال کردن CredSSP در رایانه کلاینت خود و واگذاری اعتبار دامنه، از cmdlet Enable-WSManCredSSP استفاده کنید.
در زیر میتوانید ببینید که چگونه میتوانید Client را به عنوان نقش (از آنجایی که در رایانه کلاینت هستید)
و یک علامت عام برای تعیین همه رایانهها در دامنه faraznetwork.ir تعیین کنید.
“WIN10PS> PS C:\Users\singh> Enable-WSManCredSSP –Role Client –DelegateComputer “*.faraznetwork.ir
cfg : http://schemas.microsoft.com/wbem/wsman/1/config/client/auth
lang : en–US
Basic : true
Digest : true
Kerberos : true
Negotiate : true
Certificate : true
CredSSP : true
هنگامی که Enable-WsManCredSSP را اجرا کردید،
مطمئن شوید که Get-WSManCredSSP را دوباره اجرا کنید تا تأیید کنید که به درستی نمایندگی را اضافه کرده اید.
WIN10PS> Get-WSManCredSSP
The machine is configured to allow delegating fresh credentials to the following target(s): wsman/*.faraznetwork.ir
افزودن هاست Hyper-V به هاست های قابل اعتماد
PowerShell Remoting یک ویژگی امنیتی به نام TrustedHosts دارد.
این ویژگی به شما امکان میدهد رایانههای خاصی یا گروههایی از رایانههایی را که PowerShell Remoting تحت شرایط خاص به آنها متصل میشود، مشخص کنید.
از آنجایی که کلاینت محلی در یک دامنه نیست، باید هر میزبانی را که میخواهید به آن متصل شوید اضافه کنید تا کلاینت شما بتواند به رایانه راه دور «اعتماد» کند.
ابتدا لیست TrustedHosts را با استفاده از Get-Item مطابق شکل زیر بررسی کنید.
می توانید در این مثال مقدار * را ببینید.
این بدان معناست که رایانه کلاینت به همه رایانه ها اعتماد دارد. این تنظیم کار می کند اما کمی تا حدی مجاز است.
برای اطمینان از اینکه کلاینت محلی به هر رایانه ای که می خواهید در دامنه راه دور به آن متصل شوید اعتماد دارد، از Set-Item cmdlet مانند زیر استفاده کنید.
اگر دوباره لیست TrustedHosts را بررسی کنید، خواهید دید که اضافه شده است.
افزودن اعتبارات اتصال Hyper-V به Credential Manager
به طور معمول، هنگامی که به یک هاست Hyper-V با یک کامپیوتر کلاینت در همان دامنه متصل می شوید،
Kerberos کار احراز هویت را برای شما انجام می دهد.
اما اگر یکی از ماشین ها در دامنه نیست، باید با ایجاد یک اعتبار کش شده، اعتبارنامه ها را به صورت دستی مشخص کنید.
با ایجاد یک اعتبار کش، کلاینت می تواند با استفاده از مدیر اتصال به هاست Hyper-V متصل شود.
برای افزودن اعتبار کش، از ابزار cmdkey استفاده کنید
که FQDN هاست Hyper-V را به همراه نام کاربری و رمز عبور یک حساب محلی روی هاست مشخص می کند.
WIN10PS> cmdkey /add:hypervhost.faraznetwork.ir /user:Administrator /pass:P@ssw0rd
در نهایت، دوباره cmdkey را با استفاده از پارامتر list اجرا کنید و خواهید دید که اعتبار کش ایجاد شده است.
PS> cmdkey /list
:Currently stored credentials
Target: Domain:target=hypervhost.faraznetwork.ir
Type: Domain Password
User: administrator@faraznetwork.ir
اعتبار سنجی اتصالات
در این مرحله، کار سخت انجام می شود. بیایید ببینیم آیا میتوانید با برنامه Hyper-V Manager و PowerShell ارتباط برقرار کنید.
اعتبارسنجی اتصال مدیریت Hyper-V
Hyper-V Manager را در کامپیوتر کلاینت باز کنید و روی Connect To Server که نام میزبان را ارائه می دهد کلیک کنید و OK را فشار دهید.
اگر همه چیز خوب باشد، هاست Hyper-V شما باید مطابق شکل زیر نمایش داده شود.
اعتبارسنجی اجرای فرمان PowerShell
اگر تمام VM ها را در Hyper-V Manager می بینید، احتمالاً می توانید با استفاده از جلسه راه دور PowerShell نیز به هاست متصل شوید. بیایید دریابیم.
برای آزمایش اتصال از راه دور PowerShell، cmdlet Invoke-Command را اجرا کنید.
این cmdlet به سرعت به هاست Hyper-V متصل می شود و چند دستور ساده را اجرا می کند.
در زیر می توانید نمونه ای از اتصال به هاست hypervhost.faraznetwork.ir و اجرای برنامه های whoami و hostname در هاست راه دور را مشاهده کنید.
PS> Invoke-Command –ComputerName hypervhost.example.com –ScriptBlock {whoami; hostname}
faraznetwork\administrator
hypervhost.faraznetwork.ir
توجه داشته باشید که مجبور نیستید از پارامتر Credential استفاده کنید.
از آنجایی که شما اعتبار کش شده را قبلا ایجاد کرده اید، دستور Invoke-Command از آن برای احراز هویت به میزبان Hyper-V راه دور استفاده می کند.
سایر مطالب مرتبط:
هاست و سایت رایگان – هاستینگ فرازنتورک
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.