0

В настоящее время я использую этот скрипт для получения SID пользователя из AD. Не то чтобы каждый раз, когда мне нужен SID, я должен открыть скрипт и ввести имя пользователя, в котором мне нужно 100, может быть неприятно. Текущий сценарий выглядит следующим образом:Скрипт Powershell для пользователей AD SID

$name = "username" 
(New-Object System.Security.Principal.NTAccount($name)).Translate([System.Security.Principal.SecurityIdentifier]).Value 
    $x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") 

Есть ли способ, что я могу использовать один и тот же сценарий, но положить имена пользователей AD в текстовый файл и вывести их в PowerShell, и есть выход выйти, как так я получить имя пользователя и SID. Идеально в формате CSV?

Приветствия,

+0

Какую версию Powershell вы используете? – mjolinor

+0

@mjolinor Стандартная оболочка питания, которая поставляется с Windows 8 в минуту. –

+0

@IbrahiemRafiq Запустите '(get-host) .version' или просто' get-host' в Powershell, чтобы увидеть номер версии. – vonPryz

ответ

0

Если у вас есть список имен пользователей, каждый на отдельной строке в userlist.txt, этот процесс не является слишком сложным.

# Array for name&sid tuples 
$users = @() 

cat C:\temp\userlist.txt | % { 
    # Syntax sugar 
    $spSid = [Security.Principal.SecurityIdentifier] 
    # Custom object for name, sid tuple 
    $user = new-object psobject 
    $user | Add-Member -MemberType noteproperty -name Name -value $null 
    $user | Add-Member -MemberType noteproperty -name Sid -value $null 
    $user.Name = $_ 
    $user.Sid = (New-Object Security.Principal.NTAccount($_)).Translate($spSid).Value 
    # Add user data tuple to array 
    $users += $user 
} 
# Export array contents into a CSV file 
$users | Select-Object -Property Name,Sid | Export-Csv -NoTypeInformation C:\temp\sidlist.txt 
+0

Работало! Ура! –