স্বয়ংক্রিয়ভাবে সার্ভার কোরটিতে পাওয়ারশেল ব্যবহার করুন


18

আমি যখন স্থানীয়ভাবে কোনও সার্ভার ২০১২ কোর ইনস্টলে লগইন করি, প্রতিবারpowershell সরল অল 'সেমিডির পরিবর্তে পাওয়ারশেল কমান্ড লাইনে যেতে টাইপ করতে হয়।

ধরে নিচ্ছি যে আমি পাওয়ারশেল উইন্ডোজ ফিচারটি কখনই মুছে ফেলব না, আমি কীভাবে সার্ভারকে ঠিক আমাকে সিএমডি পরিবর্তে পাওয়ারশেল প্রম্পটে আনতে কনফিগার করব?

উত্তর:


8

কেবলমাত্র আপনার পাওয়ারশেল কমান্ড লাইনটিকে একটি "মেশিন-ওয়াইড সেটিং হিসাবে রাখার জন্য" উপলভ্য শেলস "রেজিটিতে নতুন মান হিসাবে যুক্ত করুন:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AlternateShells\AvailableShells" /v "90000" /t REG_SZ /d "%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\Powershell.exe"

তথ্যসূত্র: http://andrewmorgan.ie/2012/03/30/changing-the-default-shell-of-windows-server-8-core/

সম্পাদনা: নোট করুন যে "উপলভ্য শেলস" কী এর জন্য ডিফল্ট রেজিস্ট্রি অনুমতিগুলি পরিবর্তনের অনুমতি দেবে না। আপনার অ্যাকাউন্ট (বা "প্রশাসক" গোষ্ঠী) এই পরিবর্তন সম্পাদনের অনুমতি দেওয়ার জন্য আপনাকে আগেই অনুমতিগুলি (যেমন "রিজেডিট" এর মাধ্যমে ম্যানুয়ালি) পরিবর্তন করতে হবে।


2
এটি আশাব্যঞ্জক বলে মনে হচ্ছে তবে অ্যাডমিনিস্ট্রেটর গোষ্ঠীর সেই AvailableShellsচাবিটিতে লেখার অ্যাক্সেস রয়েছে বলে মনে হয় না , কেবল ট্রাস্টিডইনস্টলারই তা করেন। আমি কীটির মালিকানা না নিয়ে অনুমতি পরিবর্তন করতে পারি না। আপনি কি মনে করেন যে কোনও সিস্টেম কীটির মালিকানা নেওয়া কোনও সমস্যা উপস্থিত করবে? আমার রেজিস্ট্রিটির এসিএলগুলি
vcsjones

ঠিক আছে, ভাল আমি VM স্ন্যাপশট এবং যাইহোক চেষ্টা করার সিদ্ধান্ত নিয়েছে, এটি কাজ করে বলে মনে হচ্ছে। কেবলমাত্র অন্য জিনিসটি হ'ল মান 90000 হওয়া উচিত 9000 নয় If মানটি যদি খুব কম হয় তবে প্রথমে সেন্টিমিডি কিক করুন।
vcsjones

@vcsjones যতক্ষণ আপনি বিশ্বাসযোগ্য ইনস্টললারকে কীটির উপরে ফুলকন্ট্রোল রাখতে দেবেন ততক্ষণ কোনও সমস্যা উপস্থাপন করা উচিত নয়। নিরাপদ দিকে থাকতে, আপনি সম্পন্ন করার পরে আপনি কেবল মালিকানা পুনরায় TrustedInstaller এ পুনরায় সেট করতে পারেন। ওহ এবং সংখ্যার সংশোধনের জন্য আপনাকে ধন্যবাদ - সত্যই আমি এটি আমার reg addউদাহরণটিতে ভুল টাইপ করেছি ।
দ্য ওয়াববিট

2
অথবা এটি যুক্ত অটোমেশন জয়ের জন্য একটি গ্রুপ পলিসির মাধ্যমে মোতায়েন করুন এবং কোনও অনুমতি সংশোধন করার প্রয়োজনীয়তা রোধ করুন;)
অ্যাশলে

আমি এটি আবার চেষ্টা করেছি, কাজ করে না। অ্যাক্সেস অস্বীকৃত। -1
পিটার হানডরফ

4

সুতরাং এখানে এই প্রশ্নের আমার সমাধান।

  • আমি AvailableShellsপথের অনুমতিগুলি পরিবর্তনের সাথে গোলযোগ করতে চাই না ।
  • আমি একটি সাধারণ গ্রুপ নীতি চেয়েছিলাম যা ডোমেনের সমস্ত সিস্টেমে নিরাপদে প্রয়োগ করা যেতে পারে।
  • আপনার কাছে ডাব্লুএমআই এর মাধ্যমে সার্ভার কোর রয়েছে কিনা তা সনাক্ত করা ২০০৮ আরআর থেকে ২০১২ এর মধ্যে আলাদা, তাই আমি এটি ব্যবহার করতে চাইনি।
  • আমি যতটা সম্ভব স্ক্রিপ্টগুলি এড়াতে চাই এবং কেবল নীতি এবং পছন্দগুলি ব্যবহার করি।

অনেকের মতো আমার সমাধানটি আপনি অনুসন্ধানে দেখতে পাবেন তা হল HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shellপাওয়ারশেলের মান পরিবর্তন করা । আমি এক্সপ্লোরার এক্সেক্স ছাড়াই সিস্টেমে এই মানটি সংশোধন করতে আইটেম স্তর লক্ষ্যবস্তু ব্যবহার করেছি। আফাইক, একটি স্ট্যান্ডার্ড ডেস্কটপ সহ সিস্টেম থেকে সার্ভার কোর সিস্টেমগুলি বাছাই করার সবচেয়ে সহজ পরীক্ষা of

আমি ( powershell.exe -noexit -Command "Set-Location ${Env:USERPROFILE} ;start sconfig ; start runonce.exe /AlternativeShellStartup") ব্যবহার করা কমান্ড লাইনটি পাওয়ারশেল শুরু করবে, রাননের কাজগুলি বন্ধ করবে, আমার বর্তমান ডিরেক্টরিটি সেট করবে এবং অন্য উইন্ডোতে স্কোনফিগ শুরু করবে।

সার্ভার কোরে ডিফল্ট পাওয়ারশেল সেট করুন


2

সিনেটিকন-ডিজে-র উত্তরের কমান্ডটি কাজ করে না, কারণ সাধারণ উন্নত প্রশাসকের কী-তে লেখার অ্যাক্সেস নেই। মন্তব্যগুলিতে উল্লেখ করা হয়েছে যে আপনাকে অনুমতিগুলি পরিবর্তন করতে হবে। তবে এতে regedit.exe এ ক্লিক করা প্রচুর পরিমাণে জড়িত এবং স্ক্রিপ্টযুক্ত ইনস্টলেশনগুলির জন্য কাজ করে না।

আমি নিম্নলিখিত পাওয়ারশেল স্ক্রিপ্টটি ব্যবহার করি:

 $definition = @"
 using System;
 using System.Runtime.InteropServices;
 namespace Win32Api
 {
    public class NtDll
    {
       [DllImport("ntdll.dll", EntryPoint="RtlAdjustPrivilege")]
       public static extern int RtlAdjustPrivilege(ulong Privilege, bool Enable, bool CurrentThread, ref bool Enabled);
    }
 }
 "@

 Add-Type -TypeDefinition $definition -PassThru  | out-null

 $bEnabled = $false

 # Enable SeTakeOwnershipPrivilege
 $res = [Win32Api.NtDll]::RtlAdjustPrivilege(9, $true, $false, [ref]$bEnabled)

 $key = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AlternateShells\AvailableShells", [Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree,[System.Security.AccessControl.RegistryRights]::takeownership)
 $acl = $key.GetAccessControl()
 $acl.SetOwner([System.Security.Principal.NTAccount]"Administrators")
 $key.SetAccessControl($acl)

 $rule = New-Object System.Security.AccessControl.RegistryAccessRule ("BUILTIN\Administrators","FullControl","Allow")
 $acl.SetAccessRule($rule)
 $key.SetAccessControl($acl)

 New-ItemProperty -path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AlternateShells\AvailableShells" -name 90000 -value "%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\Powershell.exe" -propertyType String

এটি প্রথমে কীটিতে অনুমতিগুলি পরিবর্তন করে এবং তারপরে পাওয়ারশেলটিকে শেল হিসাবে সেট করে।

লক্ষ্য করুন এটি কেবল একটি ইংরেজী ওএসে কাজ করতে পারে, কারণ এটি 'প্রশাসকগণ' গোষ্ঠীটিকে বোঝায়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.