Dapatkan grup Active Directory pengguna yang tidak terpotong dari baris perintah

90

Saya sering menggunakan net userperintah untuk melihat grup AD untuk pengguna:

net user /DOMAIN <username>

Ini berfungsi dengan baik, namun nama grup dipotong menjadi sekitar 20 karakter. Dan di organisasi saya, kebanyakan nama grup lebih panjang dari ini.

Adakah yang tahu cara untuk mendapatkan grup AD yang tidak terpotong melalui baris perintah?

Ben
sumber
1
Berdasarkan tanggal pertanyaan ini, saya kira bahwa pemotongan 20 karakter tidak lagi menjadi masalah karena menjalankan perintah itu mengembalikan grup dengan nama yang lebih besar. Jawaban di bawah whoami /groupsini juga bagus. Tetapi itu hanya mencantumkan grup pengguna yang saat ini masuk. Peniruan identitas dan pemrograman yang apik bisa menyiasatinya;)
Richard Barker
2
Menjalankannya untuk pengguna di domain di org saya; Pemotongan 20 karakter masih menjadi masalah.
SherlockSpreadsheets
Pertanyaan bagus, Aguado!
Bart

Jawaban:

-9

Anda dapat mengurai output dari perintah GPRESULT.

serialhobbyist
sumber
68
Tanpa contoh, ini adalah jawaban yang tidak berguna
qujck
8
Tapi itu adalah jawaban tidak berguna yang benar ... rupanya.
Warlord 099
Itu tidak menunjukkan grup AD. Ini menunjukkan BANYAK hal lain, tetapi bukan grup AD.
John Rocha
Teman-teman, pada saat itu (ditanya, dan dijawab pada 2009), ini mungkin satu-satunya cara untuk benar-benar melakukan apa yang dibutuhkan OP. Perhatikan dia menyebutkan pemotongan setelah 20 karakter dalam nama grup.
Richard Barker
@RichardBarker: Pemotongan masih terjadi dengan NET USER pada 2019.
Ross Presser
109

GPRESULTadalah perintah yang benar, tetapi tidak dapat dijalankan tanpa parameter. /vatau opsi verbose sulit untuk dikelola tanpa juga menghasilkan output ke file teks. EG saya sarankan menggunakan

gpresult /user myAccount /v > C:\dev\me.txt--Pastikan C: \ Dev \ me.txt ada

Pilihan lainnya adalah menampilkan informasi ringkasan saja yang mungkin seluruhnya terlihat di jendela perintah:

gpresult /user myAccount /r

Akun-akun tersebut terdaftar di bawah judul:

The user is a part of the following security groups
---------------------------------------------------
P. Brian.Mackey
sumber
6
Yang ini harus menjadi jawabannya
LT
1
Jika Anda mencari string tertentu, Anda dapat menggunakan findstralih-alih mengarahkan output ke file dan kemudian mencari file tersebut. Misalnya gpresult /user myAccount /r | findstr mySearchString,.
Jesse
2
Ketika saya menjalankan ini untuk akun pengguna saya, itu bagus dan saya dapat melihat grup keamanan. Ketika saya menjalankannya untuk akun pengguna lain, perintah kembali: Pengguna "userNameHere" tidak memiliki data RSOP.
SherlockSpreadsheets
60

Pos sedikit basi, tapi saya pikir apa sih. Apakah "whoami" memenuhi kebutuhan Anda?

Saya baru mengetahuinya hari ini (sebenarnya dari pencarian Google yang sama yang membawa saya ke sini). Windows telah memiliki alat whoami sejak XP (bagian dari alat tambahan) dan telah terpasang sejak Vista.

whoami /groups

Mencantumkan semua grup AD untuk pengguna yang saat ini masuk. Saya percaya itu memang mengharuskan Anda untuk masuk sebagai pengguna itu, jadi ini tidak akan membantu jika kasus penggunaan Anda memerlukan kemampuan untuk menjalankan perintah untuk melihat pengguna lain.

Nama grup saja:

whoami /groups /fo list |findstr /c:"Group Name:"
Doug
sumber
Saya telah menggunakan WhoAmIuntuk mendapatkan nama pengguna saya untuk waktu yang sangat lama hanya untuk menyadari HARI INI bahwa Anda dapat melakukan lebih banyak dengan itu! Terima kasih.
MaYaN
3
daftar hanya nama grup: for /f "tokens=1 delims=," %g in ('whoami /groups /fo csv /nh') do @echo "%~g"(catatan: gunakan %%bukan %dalam file batch)
Lectrode
sempurna! Jangan ragu untuk menawarkan jawaban baru untuk postingan basi!
Bart
5

Atau Anda bisa menggunakan dsquery dan dsget :

dsquery user domainroot -name <userName> | dsget user -memberof

Untuk mendapatkan kembali keanggotaan grup seperti ini:

Tue 09/10/2013 13:17:41.65
C:\
>dsquery user domainroot -name jqpublic | dsget user -memberof
"CN=Technical Support Staff,OU=Acme,OU=Applications,DC=YourCompany,DC=com"
"CN=Technical Support Staff,OU=Contosa,OU=Applications,DC=YourCompany,DC=com"
"CN=Regional Administrators,OU=Workstation,DC=YourCompany,DC=com"

Meskipun saya tidak dapat menemukan bukti bahwa saya pernah menginstal paket ini di komputer saya, Anda mungkin perlu menginstal Alat Administrasi Server Jarak Jauh untuk Windows 7 .

Kerusakan Besar
sumber
1

Cara yang jauh lebih mudah di PowerShell:

Get-ADPrincipalGroupMembership <username>

Persyaratan: akun yang Anda jalankan sendiri harus menjadi anggota domain yang sama dengan pengguna target, kecuali Anda menentukan -Credentialdan -Server(belum teruji).

Selain itu, Anda harus menginstal modul Active Directory Powershell, yang seperti yang dikatakan @ dave-lucre dalam komentar ke jawaban lain, tidak selalu merupakan pilihan.

Hanya untuk nama grup, coba salah satu dari ini:

(Get-ADPrincipalGroupMembership <username>).Name
Get-ADPrincipalGroupMembership <username> |Select Name
Ross Presser
sumber
1
Jawaban yang bagus! Ini berhasil, namun saya tidak terlalu yakin ini membuatnya lebih mudah :). Anda harus mengurai hasilnya untuk mendapatkan daftar nama grup (saya akan mengembangkannya dengan itu!). Itu bukan tantangan bagi teknisi ahli PS, tetapi lompatan dari batch DOS ke PS tidak pernah mudah!
hector-j-rivas
0

Gunakan Powershell: Windows Powershell Bekerja dengan Direktori Aktif

Tip Cepat - Menentukan Keanggotaan Grup AD Menggunakan Powershell

Mitch Wheat
sumber
1
Anda tidak dapat melakukan ini tanpa menginstal modul Active Directory Powershell (yang tidak selalu menjadi pilihan)
Dave Lucre
1
Meskipun tautan ini mungkin menjawab pertanyaan, lebih baik menyertakan bagian penting dari jawaban di sini dan menyediakan tautan untuk referensi. Jawaban link saja bisa menjadi tidak valid jika halaman tertaut berubah. - Dari Ulasan
Zulan
@ Zulan: Anda membuang-buang waktu untuk jawaban yang berusia 7 tahun! Tidak hanya itu tetapi juga nampaknya tidak sesuai karena Anda belum mengomentari jawaban yang diterima dengan cara yang sama.
Mitch Wheat
@MitchWheat: Apakah Anda melihat From Reviewtautan di akhir komentarnya? Dia tidak mengomentari jawaban yang diterima karena dia tidak menemukannya dalam ulasan.
zondo
Aku melakukannya. Saya akan berpikir resensi setidaknya akan memeriksa jawaban yang diterima sekalipun.
Mitch Wheat
0

Berdasarkan jawaban P.Brian.Mackey-- Saya mencoba menggunakan gpresult /user <UserName> /rperintah, tetapi sepertinya hanya berfungsi untuk akun pengguna saya; untuk pengguna lain account saya mendapat hasil ini: The user "userNameHere" does not have RSOP data.

Jadi saya membaca blog ini-- https://blog.thesysadmins.co.uk/group-policy-gpresult-examples.html-- dan menemukan solusinya. Anda harus mengetahui nama komputer pengguna:

gpresult /s <UserComputer> /r /user:<UserName>

Setelah menjalankan perintah, Anda harus ENTERbeberapa kali untuk menyelesaikan program karena akan berhenti di tengah-tengah ouput. Selain itu, hasil memberikan sekumpulan data termasuk bagian untuk " COMPUTER SETTINGS> Applied Group Policy Objects" dan kemudian " COMPUTER SETTINGS> Security groups" dan terakhir " USER SETTINGS> security groups" (inilah yang kami cari dengan grup AD yang terdaftar dengan deskripsi yang tidak terpotong!).

Menarik untuk dicatat bahwa GPRESULT memiliki beberapa anggota tambahan yang tidak terlihat di perintah NET USER. Selain itu, urutan sortir tidak cocok dan tidak sesuai abjad. Siapa pun yang bisa menambahkan lebih banyak wawasan di komentar itu akan sangat bagus.

HASIL: gpresult (with ComputerName, UserName)

Untuk alasan keamanan, saya hanya menyertakan sebagian dari hasil keanggotaan. (36 TOTAL, 12 SAMPEL)

The user is a part of the following security groups
---------------------------------------------------
..
 Internet Email 
 GEVStandardPSMViewers  
 GcoFieldServicesEditors    
 AnimalWelfare_Readers  
 Business Objects   
 Zscaler_Standard_Access    
..
 GCM    
..
 GcmSharesEditors   
 GHVStandardPSMViewers  
 IntranetReportsViewers 
 JetDWUsers     -- (NOTE: this one was deleted today, the other "Jet" one was added)
..
 Time and Attendance Users  
..

HASIL: net user /DOMAIN (with UserName)

Untuk alasan keamanan, saya hanya menyertakan sebagian dari hasil keanggotaan. (23 TOTAL, 12 SAMPEL)

Local Group Memberships  
Global Group memberships    ...
                             *Internet Email       *GEVStandardPSMViewers
                             *GcoFieldServicesEdito*AnimalWelfare_Readers
                             *Business Objects     *Zscaler_Standard_Acce
                             ...
                             *Time and Attendance U*GCM
                             ...
                             *GcmSharesEditors     *GHVStandardPSMViewers
                             *IntranetReportsViewer*JetPowerUsers
The command completed successfully.
SherlockSpreadsheets
sumber