Daftar Keluaran Grup Pengguna

7

Meskipun mudah di Linux, tidak semudah di Windows dari apa yang saya dapat kumpulkan sejauh ini. Saya telah menemukan perintah yang agak melakukan apa yang saya inginkan yaitu:

net user username /domain

Namun saya ingin menghapus semua data kecuali daftar grup. Saya pikir findstr mungkin jawabannya, tetapi saya tidak yakin bagaimana menggunakan ini untuk melakukan itu. Pada dasarnya, saya kira skrip akan melakukan sesuatu seperti ini (kecuali ada perintah yang lebih spesifik yang akan luar biasa):

net user username /domain > temp.txt
findstr (or some other command) file.txt > groups.txt
del temp.txt

Output data akan menjadi daftar seperti ini:

grup 1; group2; grup3

Sekarang, saya bisa melakukan ini dengan cara yang rumit, jadi seperti yang saya sebutkan jika ada perintah yang dapat menampilkan HANYA kelompok keamanan pengguna yang akan fantastis.

Smitty
sumber
Apakah menulis alat khusus dengan Python atau C # dapat diterima?
grawity
Itu di luar kemampuan saya, tetapi jika Anda bisa mendapatkan saya sesuatu yang bisa saya kompilasi dan eksekusi, saya pasti akan sangat berterima kasih :)
Smitty
Ini bukan sesuatu yang biasanya ingin Anda lakukan di Windows. Bisakah Anda menjelaskan mengapa Anda ingin output dalam format khusus ini? Kami mungkin dapat menyarankan alternatif.
Harry Johnston

Jawaban:

2

Hmm.

net user paul /domain | find "Global Group memberships"

Akan memberi Anda grup, tetapi jika Anda tidak ingin tajuk Anda perlu sesuatu yang lebih terlibat:

for /f "tokens=4*" %f in ('net user paul /domain ^| find "Global Group memberships"') do echo %f

Jadi% f berisi grup.

Paul
sumber
Terima kasih, itu agak seperti apa yang saya cari tetapi contoh pertama hanya menampilkan data dari baris itu, jika ada yang mengatakan selusin grup, sebagian besar tidak akan ditampilkan dan contoh kedua yang Anda berikan memberi saya kesalahan "f tidak terduga pada saat ini "dari apa yang saya kumpulkan, itu tidak menyukai final"% f ", saya hanya seorang pemula dengan skrip batch ini :)
Smitty
1
Jika Anda menggunakannya dalam skrip, Anda harus menggunakan %% f. Ya, bagus, hasilnya akan terbungkus dan hilang. Apakah Anda memiliki output yang dapat Anda tempel, saya tidak memiliki pengaturan yang tepat untuk menguji. Mungkin perlu sesuatu yang lebih kuat daripada meretas bit dari net userperintah :)
Paul
Hmm .. tidak akan membiarkan saya mengedit komentar saya, lagipula: Dari mesin VM saya, output net user username / domaindasarnya sama dengan pekerjaan saya. Salinannya dapat ditemukan di sini
Smitty
2
dsquery user -name "My Full Name" | dsget user -memberof | dsget group -samid

Saya menemukan ini cukup memberi saya apa yang saya cari, kalau-kalau ada yang penasaran! :)

Smitty
sumber