0

我目前使用此脚本从 AD 获取用户的 SID。并不是说每次我需要一个 SID 时,我都必须打开脚本并输入个人用户名,当我有 100 个需要做的时候可能会令人沮丧。当前脚本如下:

    $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 格式?

干杯,

4

1 回答 1

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
于 2013-11-11T11:28:57.733 回答