я пытаюсь распечатать всех пользователей группы "Студенты" к Текстовому файлу "Students.txt".
Я не нахожусь в домене, таким образом, это не работает:
net group "Students" >> students.txt
потому что я получаю следующее:
This command can be used only on a Windows Domain Controller.
Заранее спасибо
Если кто-либо интересуется решением VB.Net, я запрограммировал решение Winform с многострочным Текстовым полем скопировать/вставить участникам (так или иначе, спасибо за Вашу справку):
Imports System.DirectoryServices 'first add a refernce to it from .Net Tab'
....
Public Function MembersOfGroup(ByVal GroupName As String) As List(Of DirectoryServices.DirectoryEntry)
Dim members As New List(Of DirectoryServices.DirectoryEntry)
Try
Using search As New DirectoryServices.DirectoryEntry("WinNT://./" & GroupName & ",group")
For Each member As Object In DirectCast(search.Invoke("Members"), IEnumerable)
Dim memberEntry As New DirectoryEntry(member)
members.Add(memberEntry)
Next
End Using
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
Return members
End Function
Private Sub TxtGroup_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtGroup.KeyDown
If e.KeyCode = Keys.Enter Then
Me.TxtGroupMembers.Text = String.Empty
If Me.TxtGroup.Text.Length <> 0 Then
Dim members As List(Of DirectoryServices.DirectoryEntry) = MembersOfGroup(Me.TxtGroup.Text)
For Each member As DirectoryServices.DirectoryEntry In members
Me.TxtGroupMembers.Text &= member.Name & vbCrLf
Next
End If
End If
End Sub
Если можно использовать PowerShell затем, это должно добиться цели (работы над локальным компьютером, измениться $GroupName
переменный и выходной файл соединяет каналом согласно Вашим потребностям):
$GroupName = "Administrators"
$GroupMembers = @()
$Server = $env:computername
$Group= [ADSI]"WinNT://$Server/$GroupName,group"
$Members = @($Group.psbase.Invoke("Members"))
$Members | ForEach-Object { $GroupMembers += $_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null) }
Write-Output $GroupMembers | out-File "C:\somefolder\somefile.txt"