خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


تبدیل SID به کاربر و گروه و بالعکس

تبدیل SID به کاربر و گروه و بالعکس
پیشتر خصوص SID یا Security Identifier در مقالات جداگانه ای صحبت کرده ایم. اساسا، کاربران، گروه ها، security objects ها همگی دارای یک شناسه منحصر به فرد یا SID هستند. مثلا کاربر یا گروهی که هر کدام SID مربوط به خودش را دارد، برای دسترسی به منابع شبکه ای و حتی لوکال مورد استفاده قرار می گیرد. شما اگر کاربر، گروهی را از سیستم تان حذف کنید، حتی اگر گروه یا کاربر با همان نام ایجاد کنید، باز هم SID های آنها یکسان نخواهد بود چون مبنای اعمال کنترل ها و دسترسی ها همین SID می باشد.

نرم افزار سامانه مودیان راهکار




برای تبدیل username به SID می توانید از ابزار Sysinternals toolset - PsGetSid استفاده کنید ولی مجبور خواهید شد که روی هر سیستم آن را نصب کنید. ولی اگر خواستید از این ابزار استفاده کنید، Syntax استفاده از این ابزار را در مثال های زیر می توانید مشاهده کنید:

PsGetSid PC1\jjsmith

یا در دستور زیر تبدیل username به Username است:

PsGetSid S-1-5-21-1175651296-1316133944-203321314-1005

یافتن SID یک کاربر Local با دستورات پاورشل

برای دریافت SID کاربران لوکال یک کامپیوتر می توانید از ابزار wmic استفاده کنید که به شما امکان می دهد WMI namespace کامپیوتر را جستجو کنید. برای دریافت SID کاربر لوکال مثلا test_user، می توانید از دستور WMIC استفاده کنید:

wmic useraccount where name='test_user' get sid

تبدیل SID به کاربر و گروه و بالعکس
همانطور که در خروجی دستور فوق مشاهه می کنید، SID آن کاربر لوکال برابر با S-1-5-21-1175659216-1321616944-201305354-1005 می باشد که احتمالا برای شما متفاوت از این است. اگر نیاز به نمایش SID کاربر جاری سیستم تان دارید، از دستور زیر می توانید استفاده کنید:

wmic useraccount where name='%username%' get sid

با استفاده از دو NET classes به نام های System.Security.Principal.SecurityIdentifier و System.Security.Principal.NTAccount می توانید SID کاربر لوکال را بدست آورید:

$objUser = New-Object System.Security.Principal.NTAccount("LOCAL_USER_NAME")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value

یافتن SID کاربران و گروه ها در اکتیو دایرکتوری

با کمک دستور زیر می توانید SID کاربر جاری دامین را بیابید:

whoami /user

تبدیل SID به کاربر و گروه و بالعکس
شما حتی می توانید SID سایر کاربران دامین را هم پیدا کنید. در دستور باید نام دامین و نام ان را کاربر را قید کنید:

wmic useraccount where (name='H.Mohammadi' and domain=′khoshamoz.ir′) get sid

اما راه ساده تری استفاده از دستور Get-ADUser است. شما باید نام دامنه خود را در دستور زیر مشخص کنید:

Get-ADUser -Identity 'jabrams' | select SID

تبدیل SID به کاربر و گروه و بالعکس
با کمک دستور Get-ADGroup هم می توانید SID یک گروه در اکتیو دایرکتوری را بیابید.

Get-ADGroup -Filter {Name -like "fr-sales-*"} | Select SID

تبدیل SID به کاربر و گروه و بالعکس

تبدیل SID به کاربر یا گروه

برای بدست آوردن نام کاربری از SID، می توانید از یکی از دستورات زیر استفاده کنید:

wmic useraccount where sid='S-1-3-12-12451234567-1234567890-1234567-1434' get name

بدست آوردن نام کاربری از روی SID با دستور Get-ADUser

Get-ADUser -Identity S-1-3-12-12451234567-1234567890-1234567-1434

بدست آوردن نام یگ گروه اکتیو دایرکتوری از روی SID با استفاده از دستور Get-ADGroup

Get-ADGroup -Identity S-1-5-21-247647651-3965464288-2949987117-23145222

جستجو در اکتیو دایرکتوری با SID

اگر نمی دانید یک SID خاص متعلق به چه شیئی در اکتیو دایرکتوری است دقیقاً برای یافتن آن می توانید ازGet-AdUser ، Get-ADComputer یا Get-ADGroup استفاده کنید. شما می توانید از universal method برای جستجوی object های اکتیو دایرکتوری با SID و دستور Get-ADObject استفاده کنید که به نظرم خروجی این دستور بسیار جالب تر است:

$sid = ‘S-1-5-21-4058294139-3471514954-3872061240-1132
Get-ADObject -IncludeDeletedObjects -Filter "objectSid -eq '$sid'" | Select-Object name, objectClass

در خروجی این دستور همانطور که مشاهده می کنید، این SID متعلق به یک computer جوین شده به دامین بود.

نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز