সিনেটিকন-ডিজে-র উত্তরের কমান্ডটি কাজ করে না, কারণ সাধারণ উন্নত প্রশাসকের কী-তে লেখার অ্যাক্সেস নেই। মন্তব্যগুলিতে উল্লেখ করা হয়েছে যে আপনাকে অনুমতিগুলি পরিবর্তন করতে হবে। তবে এতে 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
এটি প্রথমে কীটিতে অনুমতিগুলি পরিবর্তন করে এবং তারপরে পাওয়ারশেলটিকে শেল হিসাবে সেট করে।
লক্ষ্য করুন এটি কেবল একটি ইংরেজী ওএসে কাজ করতে পারে, কারণ এটি 'প্রশাসকগণ' গোষ্ঠীটিকে বোঝায়।
AvailableShells
চাবিটিতে লেখার অ্যাক্সেস রয়েছে বলে মনে হয় না , কেবল ট্রাস্টিডইনস্টলারই তা করেন। আমি কীটির মালিকানা না নিয়ে অনুমতি পরিবর্তন করতে পারি না। আপনি কি মনে করেন যে কোনও সিস্টেম কীটির মালিকানা নেওয়া কোনও সমস্যা উপস্থিত করবে? আমার রেজিস্ট্রিটির এসিএলগুলি