HKEY_USERS altındaki değerler gerçek kullanıcı adına bağlanmanın bir yolu var mı?
Bazı benzer sorular gördüm, ancak C# koduyla ilgili çoğu (hepsi olmasa bile) konuşmuyor ve ihtiyacım VBScript'te.Kullanıcı adının HKEY_USERS değerlerinden alınması
cevap
aşağıdaki tuşlardan birini bakarsak:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist
Onların adlarını içeren nerede onların "ev yolları" gibi çeşitli değerler, orada SID bir listesini bulabilirsiniz.
Bunun ne kadar güvenilir olduğundan emin değilim ve ne yaptığınızdan emin olmadığınız sürece bununla uğraşmanızı tavsiye etmem.
Bu bilgi WMI adresinden sorgulanabilir. Aşağıdaki komut, her kullanıcı için SID ile birlikte her kullanıcı için bir satır içeren bir tablo verecektir.
wmic useraccount get name,sid
Ayrıca CSV bu bilgileri verebilirsiniz: Vista üzerinde bu kullanılmış ve var
wmic useraccount get name,sid /format:csv > output.csv
fazla bilgi için 7. WMIC - Take Command-line Control over WMI bakın.
Maalesef, aldığım SID'ler Windows 7 x64'deki HKEY_USERS altındaki değerlerle eşleşmiyor. –
Yasal bir SID'nin görünmemesi mümkündür, çünkü o kullanıcının özel kovanı o anda tam olarak yüklenmemiştir.Runas/profile/user: requesteduser somearbitrarycommand' onu yükleyecektir. – amonroejj
Microsoft \ Windows \ ... o komik sayı tuşları için, yaratıcı programlama bir azar, HKEY_LOCAL_MACHINE \ SOFTWARE
Enum tuşları HKEY_USERS'ın içinde
Enum Keys de yapmıştım NT \ CurrentVersion \ ProfileList
ve aynı numaralar .... Şimdi o anahtarlarında dize değeri bakmak bulacaksınız \: ProfileImageP değerler ya vardır sporcudan = "birdeğer":
"% systemroot% \ system32 \ config \ SystemProfile" ... ... onun değil dizin yolu olarak bu bir ... ilgilenmiyor
% SystemDrive% \ Documents and Settings \ LocalService - "Yerel Hizmetler" % SystemDrive% \ Documents and Settings \ networkservice "AĞ HİZMETİ"
veya
% SystemDrive% \ Documents and çevirir Settings \ USER_NAME en çok değiştirilmemiş sistemlerde doğrudan "KULLANICI ADI" değerlerine, yani. Kullanıcı birkaç hafta sonra kullanıcı adını değiştirmediği ya da yolları açıkça değiştirdiği ...
Açık Reg HKEY_LOCAL_MACHINE \ SOFTWARE Microsoft \ Windows \ NT \ CurrentVersion \ ProfileList
Bunlarla başlatılır ile ilgilenen tüm alt anahtarlar
alt anahtarlarını almak için bir döngü yapmak \ [ S-1-5-21-] kullanıcı anlamına gelir (bkz. Anahtar adı [ProfileImagePath] her zaman bir yolla başlatılırlar: c Kullanıcıları)
[S-1-5-21-12] ile başlayanlar hepsi yerel kullanıcılar
[S-1-5-21-13] ile başlayanlar, daha önce makinede oturum açmış olan tüm ağ kullanıcılarının ( Alan Ağına katıldıysa) [].
3 bir hata ve akıllıca bir tavsiye içermiyor. [ProfileImagePath], bir c: \ Users yolu ile başlamak zorunda değil ... https://www.google.com/#hl=tr&tbo=d&output=search&sclient=psy-ab&q=move+windows+7+ adresine bakın. kullanıcı + dizin; Ayrıca, bu konu hakkında yorum yaptı ve @spade tarafından kullanıcı/yönetici kullanıcı adı post hesabı oluşturma ve oturum açma değiştirdiyse, profil dizini adı artık kullanıcı adıyla eşleşmeyecek (http://support.microsoft.com))/kb/2454362) – user66001
for /f "tokens=8 delims=\" %a in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist" ^| find "UsrClass.dat"') do echo %a
Bu kod örneğini biçimlendirmek için 'code' markup 'etiketlerini kullanmak isteyebilirsiniz :) – summea
Microsoft'un SysInternals ekibinden komut PsGetSid kullanabilirsiniz.
indir URL: http://technet.microsoft.com/en-gb/sysinternals/bb897417.aspx
Kullanımı:
psgetsid [\\computer[,computer[,...] | @file] [-u username [-p password]]] [account|SID]
-u Specifies optional user name for login to remote computer.
-p Specifies optional password for user name. If you omit this you will be prompted to enter a hidden password.
Account PsGetSid will report the SID for the specified user account rather than the computer.
SID PsGetSid will report the account for the specified SID.
Computer Direct PsGetSid to perform the command on the remote computer or computers specified. If you omit the computer name PsGetSid runs the command on the local system, and if you specify a wildcard (\\*), PsGetSid runs the command on all computers in the current domain.
@file PsGetSid will execute the command on each of the computers listed in the file.
Örnek:
psgetsid S-1-5-21-583907252-682003330-839522115-63941
Not:
kullanıcı etki alanı/AD ise- (LDAP) kullanıcı , bunu herhangi bir yüklü bilgisayarda çalıştırıyor Alandaki aynı sonuçları vermelidir.
- Kullanıcının makineye yerel olması durumunda, komut ya o makinede çalıştırılmalı ya da bilgisayarı isteğe bağlı parametre ile belirtmelisiniz.
Güncelleme
PowerShell kullanırsanız, aşağıdaki herhangi AD kullanıcıların listelenen çözmek için yararlı olabilir:
#create a drive for HKEY USERS:
New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS -ErrorAction SilentlyContinue
#List all immediate subfolders
#where they're a folder (not a key)
#and they's an SID (i.e. exclude .DEFAULT and SID_Classes entries)
#return the SID
#and return the related AD entry (should one exist).
Get-ChildItem -Path 'HKU:\' `
| ?{($_.PSIsContainer -eq $true) `
-and ($_.PSChildName -match '^S-[\d-]+$')} `
| select @{N='SID';E={$_.PSChildName}} `
, @{N='Name';E={Get-ADUser $_.PSChildName | select -expand Name}}
Ayrıca SID sadece daha fazla filtre hassaslaştırarak Dilerseniz bir AD hesabına çözülecek olan SID'leri geri çekin; Burada SID yapısı hakkında daha fazla: https://technet.microsoft.com/en-us/library/cc962011.aspx
kayıt benim kimliği ararken, ben Tam olarak ne gerekli
HKEY_CURRENT_USER\Volatile Environment\Username
- 1. ProjectName.deploy.cmd site adının geçirilmesi
- 2. Girdi değerlerinden veritabanına değerler nasıl eklenir?
- 3. ZSH: Bilgisayar adının terminale gizlenmesi
- 4. alt çizgi, textarea değerlerinden nasıl kaldırılır?
- 5. Bir LongListSelector Öğesinin SelectedIndex'inin Alınması
- 6. WebConfigurationManager.AppSettings'in önbelleğe alınması nedir?
- 7. Görev pidinin alınması
- 8. XML belgesine döngüye alınması
- 9. AD OU listesinin alınması
- 10. RavenDB'de Koleksiyon Adının Belirlenmesi
- 11. Versiyon Adının Install4j'de Otomatikleştirilmesi
- 12. Klasik ASP'de ortam değişkenleri alınması
- 13. Bir UITableViewCell çerçevesinin geri alınması
- 14. Belirli bir kişinin grubunun alınması
- 15. Belirli örnek sınıflarının geri alınması
- 16. bilgi alınması JesseMonroy650 isteğine göre,
- 17. Bir bitişik listedeki elemanların alınması
- 18. Çekirdek dökümünden yığın yığınının alınması
- 19. JFileChooser.showSaveDialog (...) - önerilen dosya adının nasıl ayarlanacağı
- 20. Uygulama adının görünmesi için alan nasıl kaldırılır
- 21. linq ifadesinden yöntem adının çıkarılması
- 22. Rake'de görev adının diğer adı
- 23. Bir parametre adının önünde @ nedir?
- 24. Dosya adının bir kısmını python
- 25. GCD kuyruk adının/etiketinin edinilmesi
- 26. Ara tablo adının JPA OneToMany ilişkisinde belirtilmesi
- 27. UITableView pagingEnabled içinden görünen hücre alınması
- 28. Git kısayol: kullanıcı adından kullanıcı bilgisine ulaş
- 29. Kullanıcı Adı Rails'de Yönlendirme
- 30. Bir NSDictionary öğesini kendi değerlerinden biri olarak nasıl seçebilirim?
bulundu. Teşekkürler! – modz0r
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ falcı yalnızca şu anda her sistemde oturum açmış kullanıcı gibi görünüyor (Xp - 7) Ben baktım ... Ve ben düşünmüyordum HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList \ \ ProfileImageYeni bir kullanıcı adı belirleme yöntemi güvenilir bir yoludur (Bkz. Http://support.microsoft.com/kb/2454362). –
user66001