【问题标题】:Updating Active Directory user properties in Active Directory using Powershell使用 Powershell 更新 Active Directory 中的 Active Directory 用户属性
【发布时间】:2023-03-26 02:28:01
【问题描述】:

在 Windows Server 2003 R2 环境中,使用 Powershell v2.0,如何复制Set-QADUser 的功能来更新 Active Directory 中的用户属性,例如他们的电话号码和职务?

这里的窍门是,我想在不依赖 Set-QADUser 的情况下执行此操作,并且我还没有使用 Server 2008 的命令行开关的选项。

谢谢。

【问题讨论】:

    标签: windows powershell active-directory adsi


    【解决方案1】:

    从互联网上拼凑起来,我想出了这个......

    function Get-ADUser( [string]$samid=$env:username){
         $searcher=New-Object DirectoryServices.DirectorySearcher
         $searcher.Filter="(&(objectcategory=person)(objectclass=user)(sAMAccountname=$samid))"
         $user=$searcher.FindOne()
          if ($user -ne $null ){
              $user.getdirectoryentry()
         }
    }
    
    $user = Get-ADUser 'UserName'
    
    # Output all properties
    $user.psbase.properties
    
    # Change some properties
    $user.title = 'New Title'
    $user.telephoneNumber = '5555551212'
    $user.SetInfo()
    
    # Output the results
    $user.title
    $user.telephoneNumber
    

    更多信息

    【讨论】:

    • 您可以使用 ADSI 和 PowerShell 以及其他几种做事方式做很多事情。例如,如果您需要设置密码,您可以使用: $user.psbase.Invoke("SetPassword","PasswordGoesHere") $user.psbase.CommitChanges() 如果您想编写创建新用户帐户的脚本,这很有用。跨度>
    【解决方案2】:

    您将希望在 PowerShell 中使用 ADSI objects。语法看起来类似于 vbscript,因为您使用的是相同的组件。

    【讨论】: