【问题标题】:Powershell Script for AD Users SIDAD 用户 SID 的 Powershell 脚本
【发布时间】:2013-11-23 02:54:06
【问题描述】:

我目前使用此脚本从 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 格式?

干杯,

【问题讨论】:

  • 你运行的是什么版本的 Powershell?
  • @mjolinor Windows 8 自带的默认power shell。
  • @IbrahiemRafiq 在 Powershell 中运行 (get-host).versionget-host 以查看版本号。
  • @mjolinor 版本 4.0

标签: powershell batch-file active-directory windows-server-2003 sid


【解决方案1】:

假设您有一个用户名列表,每个用户名在 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

【讨论】:

    猜你喜欢
    • 2022-10-24
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多