Kullanıcı SID'lerini aramıyorum. Bilgisayarı benzersiz bir şekilde tanımlamak için kullanacağım bilgisayar SID'sini arıyorum. Ayrıca aktif dizin sunucusunu sorgulamak istemiyorum, bilgisayarın kendisini sorgulamak istiyorum.WMI kullanarak Windows Bilgisayarın SID'sini nasıl alabilirim?
cevap
(Ooh, bu eğlenceli bir şeydi!) Dedikleri gibi, her zamanki InstancesOf veya Query yöntemleri tarafından numaralandırılamaz bir singleton olan Win32_SID örneğini almaya çalıştıklarında, vahşi bir kaz kovalamaca gittim ... yadda vesaire vesaire.)
Eh, ciddiye (istediğiniz bilgisayar SID bağlıdır!). yerel bilgisayar kendisi için kullandığı SID var ... Bunun için, sadece yerel yönetici kullanıcı SID almak ve bilgisayarın SID'ini almak için ucundan "-500" kaldırmak gerekir.
VBScript , bu şuna benzer:strComputer = "AFAPC001"
strUsername = "Administrator"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objAccount = objWMIService.Get("Win32_UserAccount.Name='" & strUsername & "',Domain='" & strComputer & "'")
WScript.Echo "Administrator account SID: " & objAccount.SID
WScript.Echo "Computer's SID: " & Left(objAccount.SID, Len(objAccount.SID) - 4)
PowerShell, bu gibi:
function get-sid
{
Param ($DSIdentity)
$ID = new-object System.Security.Principal.NTAccount($DSIdentity)
return $ID.Translate([System.Security.Principal.SecurityIdentifier]).toString()
}
> $admin = get-sid "Administrator"
> $admin.SubString(0, $admin.Length - 4)
yılında C# .NET 3.5 tarih:
using System;
using System.Security.Principal;
using System.DirectoryServices;
using System.Linq;
public static SecurityIdentifier GetComputerSid()
{
return new SecurityIdentifier((byte[])new DirectoryEntry(string.Format("WinNT://{0},Computer", Environment.MachineName)).Children.Cast<DirectoryEntry>().First().InvokeGet("objectSID"), 0).AccountDomainSid;
}
Bunların tümündenSonuçlar ben PsGetSid.exe aldığım yanıt maçı. ile biter one - Öte yandan
Active Directory her etki alanı üyesi bilgisayar tanımlamak için kullandığı SID ... Eğer etki alanında makine hesabının SID alarak getirme İşte bir tane var dolar işareti. "MÜŞTERİ" olarak adlandırılan bir alan üye için yukarıdaki PowerShell işlevini kullanarak
Ör, sen get-sid "CLIENT$"
yazabilirsiniz.
+1 Farklı örnekler sunmanın yanında güzel bir açıklama. – Garett
$ ID.Translate ([System.Security.Principal.SecurityIdentifier]) - zaten döndürür bilgisayar sid (AccountDomainSid) vardır, ben kullanıcı herhangi niteliğini ayırt edebilmek için-Sid Get dizeye kimliği dönüştürmek denemeyin öneririm - bu durumda AccountDomainSid. PowerShell sürümüne – shalomb
sadece bir yan not: '$ admin.SubString (0, $ admin.length() - 4)' '$ admin.SubString olmalıdır (0, $ admin.Length - 4)' sırayla çalışmak .. – Luke
Windows komut satırından reg query HKLM\SOFTWARE\Microsoft\Cryptography /v MachineGuid
'u çalıştırabilirsiniz.
set KEY_REGKEY=HKLM\SOFTWARE\Microsoft\Cryptography
set KEY_REGVAL=MachineGuid
REM Check for presence of key first.
reg query %KEY_REGKEY% /v %KEY_REGVAL% 2>nul || (echo No theme name present! & exit /b 1)
REM query the value. pipe it through findstr in order to find the matching line that has the value. only grab token 3 and the remainder of the line. %%b is what we are interested in here.
set KEY_NAME=
for /f "tokens=2,*" %%a in ('reg query %KEY_REGKEY% /v %KEY_REGVAL% ^| findstr %KEY_REGVAL%') do (
set KEY_NAME=%%b
)
echo %KEY_NAME%
aynı şey değil, bu GUID makine SID DEĞİLDİR. – Anders
kolayca
http://technet.microsoft.com/en-us/sysinternals/bb897417.aspx
Sadece dosya indirmek size SID'yi alabilirsiniz microsoft web sitesinden bir araç, bu, bir açıp halletmek Bulunan: Burada
Windows toplu dosya örneğidir komut istemi ve sonra psgetsid.exe dosyasını çalıştırın.microsoft web sitesinden SID üzerinde bazı iyi açıklama yanı vardır
http://blogs.msdn.com/b/aaron_margosis/archive/2009/11/05/machine-sids-and-domain-sids.aspx
- 1. Bilgisayarın benzersiz bir tanımlayıcısı nasıl edinilir?
- 2. Perl'yi kullanarak WMI Bellek Değerlerini Alın
- 3. Ruby ve WMI kullanarak sorgulama yapmadan USB yerleştirmeyi nasıl algılayabilirim?
- 4. WMI HDD'nin
- 5. WMI Sorguları?
- 6. WMI (C++)
- 7. WMI Sorgusu'na (WQL) katılma
- 8. WMI olayları nasıl tüketilir? C#
- 9. Bilgisayarın UTC ofsetini Python'da alma
- 10. Monitör bilgilerini nasıl alabilirim?
- 11. R bilgisayarın tüm çekirdeklerini nasıl kullanır?
- 12. Bilgisayarın toplam RAM miktarı nasıl bilinir?
- 13. Ana bilgisayarın ulaşılabilir olup olmadığını nasıl belirleyebilirim?
- 14. Bilgisayarın saatine bir sayı ekleme
- 15. WMI aracılığıyla veritabanı boyutu .NET'de
- 16. powershell wmi-object |
- 17. WMI .NET Geçersiz sorgu
- 18. WMI sorgusu tamamlanmamış sonuçları döndürüyor
- 19. WMI HDD Seri Numarası Transposed
- 20. Bir Windows Hizmeti tarafından açılan kapıları nasıl alabilirim?
- 21. c kullanarak uzak windows sunucuda yerel kullanıcılar oluşturma # #
- 22. DateTimeFormatInfo.MonthDayPattern, Windows Server 2012'de Değişti - Bunu nasıl geri alabilirim?
- 23. İşlemci ismini ve java'yı kullanarak bilgi kayıtlarını nasıl alabilirim?
- 24. Rpres markdown kullanarak dikey slaytları nasıl alabilirim
- 25. Async/wait kullanarak nasıl geri alabilirim?
- 26. Android: İsmini kullanarak kaynaklardan nasıl dize alabilirim?
- 27. GWT'yi kullanarak GMT'de saati nasıl alabilirim?
- 28. Node.js'yi kullanarak uzak git dallarını nasıl alabilirim?
- 29. PHP'yi kullanarak önceki URL'yi nasıl alabilirim?
- 30. facebook API kullanarak albüm resimlerini nasıl alabilirim?
Windows'un yeni yüklemesiyle bilgisayar SID değişiyor mu? yani, sistem örneğini özel mi, yoksa donanım tabanlı mı? – Cel