Comment puis-je obtenir l'ID utilisateur Active Directory?

Tout d'abord, je ne sais même pas

"Utilisateur en ligne"

C'est le bon terme ici.

Le contexte est que j'utilise VisualSVN Server Pour conduire / Administrer les droits d'accès dans mes référentiels SVN Avec authentification Windows, et

authz-windows

Le fichier qu'il crée contient la longueur des chaînes 45 Symboles à la place "Supervisé" noms d'utilisateur ou groupes.

J'ai besoin d'éditer ce fichier manuellement, car je découvre quel type de chaîne magique est liée à un utilisateur ou à un groupe particulier?
Invité:

Blanche

Confirmation de:

DANS

authz-windows

Le fichier compare les identificateurs de sécurité utilisateur et le groupe Active Directory (

objectSid

Domaine LDAP).

Mais notez que les valeurs de ce champ dans AD stocké comme hexadécimal, vous pouvez donc utiliser
https://serverfault.com/questi ... g-sid
Déterminer les identificateurs d'utilisateur associés.

(
https://stackoverflow.com/a/9321291/895996
dans StackOverflow.)

Blanche

Confirmation de:

Mettre à jour 2016:

Suivez la mise à jour de la dernière version. VisualSVN Server. Commençant par VisualSVN Server 3.4, Le serveur est livré avec un certain nombre de cmdlets PowerShell. Certains d'entre eux comme
https://www.visualsvn.com/supp ... sRule
peut afficher une liste des règles d'accès attribuées aux comptes d'utilisateurs et aux groupes Active Directory / Windows.

Voici un exemple de création d'un rapport d'accès dans le fichier CSV AccessReport.csv:


Get-SvnAccessRule | Select Repository, Path, AccountName, Access | Export-Csv -NoTypeInformation AccessReport.csv

Informations complètes sur Celtes PowerShell pour VisualSVN Server Voir l'article
https://www.visualsvn.com/support/topic/00088/
.

Réponse obsolète:

Je suis d'accord avec la réponse

Gueule de bois

Et j'espère que vous trouverez ce qui suit VBScript Utile. Il crée une liste d'autorisations spécifiques et convertit correctement

SID

significatif et lisible

Domaine \ Nom d'utilisateur

.

'
' Print permissions in the form: user_name,path,level
'
strComputer = "."
Set wmi = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\VisualSVN")

Set win = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")

' Return text representation for the Access Level
Function AccessLevelToText(level)
If level = 0 Then
AccessLevelToText = "No Access"
ElseIf level = 1 Then
AccessLevelToText = "Read Only"
ElseIf level = 2 Then
AccessLevelToText = "Read/Write"
Else
AccessLevelToText = "Unknown"
End If
End Function

' Return repository path for the object
Function GetPath(obj)
cname = assoc.Path_.Class
If cname = "VisualSVN_Service" Then
GetPath = "Repositories Root"
ElseIf cname = "VisualSVN_Repository" Then
GetPath = assoc.Name
ElseIf cname = "VisualSVN_RepositoryEntry" Then
GetPath = assoc.RepositoryName & ": " & assoc.Path
Else
GetPath = "Unknown"
End If
End Function

' Convert SID to user name
Function SidToUserName(sid)
Set account = win.Get("Win32_SID.SID='" & sid & "'")
user = account.AccountName
domain = account.ReferencedDomainName
SidToUserName = domain & "\" & user
End Function

' Return user name associated with account
Function GetAccountName(account)
If account.Path_.Class = "VisualSVN_WindowsAccount" Then
GetAccountName = SidToUserName(account.SID)
Else
GetAccountName = account.Name
End If
End Function

' Iterate over all security descriptions
Set objs = wmi.ExecQuery("SELECT * FROM VisualSVN_SecurityDescriptor")
For Each obj In objs
Set assoc = wmi.Get(obj.AssociatedObject)

For Each perm in obj.Permissions
name = GetAccountName(perm.Account)
level = AccessLevelToText(perm.AccessLevel)

Wscript.Echo name & "," & GetPath(assoc) & "," & level
Next
Next

Pour répondre aux questions, connectez-vous ou registre