名稱
Set-ADUser
摘要
修改 Active Directory 用戶。
語法
Set-ADUser [-Identity] <ADUser> [-AccountExpirationDate <System.Nullable[System.DateTime]>] [-AccountNotDelegated <
System.Nullable[bool]>] [-Add <hashtable>] [-AllowReversiblePasswordEncryption <System.Nullable[bool]>] [-CannotCha
ngePassword <System.Nullable[bool]>] [-Certificates <hashtable>] [-ChangePasswordAtLogon <System.Nullable[bool]>] [
-City <string>] [-Clear <string[]>] [-Company <string>] [-Country <string>] [-Department <string>] [-Description <s
tring>] [-DisplayName <string>] [-Division <string>] [-EmailAddress <string>] [-EmployeeID <string>] [-EmployeeNumb
er <string>] [-Enabled <System.Nullable[bool]>] [-Fax <string>] [-GivenName <string>] [-HomeDirectory <string>] [-H
omeDrive <string>] [-HomePage <string>] [-HomePhone <string>] [-Initials <string>] [-LogonWorkstations <string>] [-
Manager <ADUser>] [-MobilePhone <string>] [-Office <string>] [-OfficePhone <string>] [-Organization <string>] [-Oth
erName <string>] [-PasswordNeverExpires <System.Nullable[bool]>] [-PasswordNotRequired <System.Nullable[bool]>] [-P
OBox <string>] [-PostalCode <string>] [-ProfilePath <string>] [-Remove <hashtable>] [-Replace <hashtable>] [-SamAcc
ountName <string>] [-ScriptPath <string>] [-ServicePrincipalNames <hashtable>] [-SmartcardLogonRequired <System.Nul
lable[bool]>] [-State <string>] [-StreetAddress <string>] [-Surname <string>] [-Title <string>] [-TrustedForDelegat
ion <System.Nullable[bool]>] [-UserPrincipalName <string>] [-AuthType {Negotiate | Basic}] [-Credential <PSCredenti
al>] [-Partition <string>] [-PassThru <switch>] [-Server <string>] [-Confirm] [-WhatIf] [<CommonParameters>]
Set-ADUser -Instance <ADUser> [-SamAccountName <string>] [-AuthType {Negotiate | Basic}] [-Credential <PSCredential
>] [-Partition <string>] [-PassThru <switch>] [-Server <string>] [-Confirm] [-WhatIf] [<CommonParameters>]
說明
Set-ADUser cmdlet 修改 Active Directory 用戶的屬性。 可以使用 cmdlet 參數來修改經常使用的屬性值。 不與 cmdlet 參數關聯的屬性值可以使用 Add、Replace、Clear 和
Remove 參數修改。
Identity 參數指定要修改的 Active Directory 用戶。 可以通過可分辨名稱 (DN)、GUID、安全標識符 (SID) 或安全帳戶管理器 (SAM) 帳戶名來標識用戶。 還可以將 Identity 參數設置爲
對象變量(例如 $<localUserObject>),或者可以通過管道將對象傳遞到 Identity 參數。 例如,可以使用 Get-ADUser cmdlet 檢索某個用戶對象,然後將該對象通過管道傳遞到 Set-ADUser
cmdlet。
Instance 參數提供了一種通過應用對用戶對象的副本所做的更改來更新用戶對象的方法。 如果將 Instance 參數設置爲某個經過修改的 Active Directory 用戶對象副本,則 Set-ADUser cmdlet
會對原始用戶對象進行同樣的更改。 要獲取需要修改的對象的副本,請使用 Get-ADUser 對象。 使用 Instance 參數時不允許使用 Identity 參數。 有關 Instance 參數的詳細信息,請參閱 Instanc
e 參數說明。 有關如何在 Active Directory cmdlet 中使用 Instance 概念的詳細信息,請參閱 about_ActiveDirectory_Instance。
下面的示例說明如何使用以下三種方法來修改用戶對象的 Manager 屬性:
- 通過指定 Identity 和 Manager 參數
- 通過經由管道傳遞用戶對象並指定 Manager 參數
- 通過指定 Instance 參數。
方法 1:使用 Identity 和 Manager 參數修改“saraDavis”用戶的 Manager 屬性。
Set-ADUser -Identity "saraDavis" -Manager "JimCorbin"
方法 2:通過經由管道傳遞“saraDavis”用戶並指定 Manager 參數來修改“saraDavis”用戶的 Manager 屬性。
Get-ADUser -Identity "saraDavis" | Set-ADUser -Manager "JimCorbin"
方法 3:使用 Windows PowerShell 命令行修改“saraDavis”用戶的本地實例,從而修改“saraDavis”用戶的 Manager 屬性。 然後將 Instance 參數設置爲本地實例。
$user = Get-ADUser -Identity "saraDavis"
$user.Manager = "JimCorbin"
Set-ADUser -Instance $user.
對於 AD LDS 環境,除下列兩種情況外,必須指定 Partition 參數:
-cmdlet 從 Active Directory 提供程序驅動器中運行。
-爲 AD LDS 環境定義了默認的命名上下文或分區。 要爲 AD LDS 環境指定默認的命名上下文,請設置 AD LDS 實例的 Active Directory 目錄服務代理 (DSA) 對象 (nTDSDSA) 的 ms
DS-defaultNamingContext 屬性。
參數
-AccountExpirationDate <System.Nullable[System.DateTime]>
指定帳戶的到期日期。將此參數設置爲 0 時,帳戶永不過期。此參數設置帳戶對象的 AccountExpirationDate 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“accountExpi
res”。
指定此參數時使用 DateTime 語法。除非指定了時間,否則假定時間爲當地時間。當未指定時間值時,該時間假定爲當地時間 12:00:00 AM。當未指定日期時,該日期假定爲當前日期。以下示例說明指定 DateTime 對
象的常用語法。
"4/17/2006"
"Monday, April 17, 2006"
"2:22:45 PM"
"Monday, April 17, 2006 2:22:45 PM"
這些示例指定相同的日期和時間,但不帶秒數。
"4/17/2006 2:22 PM"
"Monday, April 17, 2006 2:22 PM"
"2:22 PM"
以下示例說明如何使用 RFC1123 標準指定日期和時間。此示例使用格林威治標準時間 (GMT) 來定義時間。
"Mon, 17 Apr 2006 21:22:48 GMT"
以下示例說明如何將往返值指定爲協調世界時 (UTC)。此示例代表 UTC 時間 2006 年 4 月 17 日,星期一下午 2:22:48。
"2006-04-17T14:22:48.0000000"
以下示例說明如何將此參數設置爲 2012 年 5 月 1 日下午 5 點。
-AccountExpirationDate "05/01/2012 5:00:00 PM"
-AccountNotDelegated <System.Nullable[bool]>
指定用戶的安全上下文是否委派給服務。當此參數設置爲 true 時,不會將帳戶的安全上下文委派給服務,即使服務帳戶設置爲對於 Kerberos 委派受信任也是如此。此參數爲 Active Directory 帳戶設置 Acc
ountNotDelegated 屬性。此參數還設置 Active Directory 用戶帳戶控制 (UAC) 屬性的 ADS_UF_NOT_DELEGATED 標誌。此參數的可能值包括
$false 或 0
$true 或 1
以下示例說明如何設置此參數,使得帳戶的安全上下文不委派給服務。
-AccountNotDelegated $true
-Add <hashtable>
指定要爲對象屬性添加的值。使用此參數可爲無法使用 cmdlet 參數修改的屬性添加一個或多個值。要修改對象屬性,必須使用 LDAP 顯示名稱。可以通過指定逗號分隔的值列表來爲屬性指定多個值,並可以通過使用分號分隔各屬性來指
定多個屬性。此參數的格式爲
-Add @{Attribute1LDAPDisplayName=value1, value2, ...; Attribute2LDAPDisplayName=value1, value2, ...; Attribut
eNLDAPDisplayName=value1, value2, ...}
例如,如果要刪除值“555-222-2222”,將值“555-222-1111”和“555-222-3333”添加到 Phone-Office-Other 屬性(LDAP 顯示名稱“otherTelephone”),並將值
“555-222-9999”添加到 Phone-Mobile-Other(LDAP 顯示名稱“otherMobile”),請按如下方式設置 Add 和 Remove 參數。
-Add @{otherTelephone='555-222-1111', '555-222-3333'; otherMobile='555-222-9999' } -Remove @{otherTelephone='55
5-222-2222'}
同時使用 Add、Remove、Replace 和 Clear 參數時,將按以下順序執行這些操作:
..Remove
..Add
..Replace
-AllowReversiblePasswordEncryption <System.Nullable[bool]>
指定帳戶是否允許可逆的密碼加密。此參數設置帳戶的 AllowReversiblePasswordEncryption 屬性。此參數還設置 Active Directory 用戶帳戶控制 (UAC) 屬性的 ADS_UF_E
NCRYPTED_TEXT_PASSWORD_ALLOWED 標誌。此參數的可能值包括:
$false 或 0
$true 或 1
以下示例說明如何將此參數設置爲 true。
-AllowReversiblePasswordEncryption $true
-AuthType <ADAuthType>
指定要使用的身份驗證方法。此參數的可能值包括:
Negotiate 或 0
Basic 或 1
默認身份驗證方法爲 Negotiate。
基本身份驗證方法需要安全套接字層 (SSL) 連接。
以下示例說明如何將此參數設置爲 Basic。
-AuthType Basic
下面列出了此參數的可接受值:
-CannotChangePassword <System.Nullable[bool]>
指定是否可以更改帳戶密碼。此參數設置帳戶的 CannotChangePassword 屬性。此參數的可能值包括:
$false 或 0
$true 或 1
以下示例說明如何設置此參數,以便可以更改帳戶密碼。
-CannotChangePassword $false
-Certificates <hashtable>
修改帳戶的 DER 編碼的 X.509v3 證書。這些證書包括由 Microsoft 證書服務頒發給此帳戶的公鑰證書。此參數設置帳戶對象的 Certificates 屬性。此屬性的 LDAP 顯示名稱 (ldapDispl
ayName) 是“userCertificate”。
語法:
添加值:
-Certificates @{Add=value1,value2,...}
刪除值:
-Certificates @{Remove=value3,value4,...}
替換值:
-Certificates @{Replace=value1,value2,...}
清除所有值:
-Certificates $null
可以使用分號分隔的列表來指定多個操作。例如,使用下面的語法添加和刪除 Certificate 值
-Certificates @{Add=value1,value2,...};@{Remove=value3,value4,...}
將按以下順序應用運算符:
..Remove
..Add
..Replace
以下示例說明如何使用 New-Object cmdlet 創建證書,然後將它添加到用戶帳戶中。當此 cmdlet 運行時,<certificate password> 將替換爲用於添加證書的密碼。
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate certificate1.cer <certificate
password>
Set-ADUser saradavis -Certificates @{Add=$cert}
以下示例說明如何添加指定爲字節數組的證書。
Set-ADUser saradavis -Certificates @{Add= [Byte[]](0xC5,0xEE,0x53,...)}
-ChangePasswordAtLogon <System.Nullable[bool]>
指定在下次登錄嘗試期間是否必須更改密碼。此參數的可能值包括:
$false 或 0
$true 或 1
對於 PasswordNeverExpires 屬性設置爲 true 的帳戶,此參數不能設置爲 $true 或 1。
以下示例說明如何設置此參數,使得在登錄時必須更改密碼。
-ChangePasswordAtLogon $true
-City <string>
指定用戶所在的城鎮。此參數設置用戶的 City 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“l”。
以下示例說明如何設置此參數。
-City "Las Vegas"
-Clear <string[]>
指定要在目錄中清除的對象屬性序列。使用此參數可清除一個或多個無法使用 cmdlet 參數修改的屬性值。要修改對象屬性,必須使用 LDAP 顯示名稱。可以通過指定逗號分隔列表來修改多個屬性。此參數的格式爲
-Clear Attribute1LDAPDisplayName, Attribute2LDAPDisplayName
例如,如果要清除 Phone-Office-Other 屬性的值(LDAP 顯示名稱“otherTelephone”),請按如下方式設置 Clear 參數。
-Clear otherTelephone
同時使用 Add、Remove、Replace 和 Clear 參數時,將按以下順序執行這些操作:
..Remove
..Add
..Replace
..Clear
-Company <string>
指定用戶所在的公司。此參數設置用戶對象的 Company 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“company”。
以下示例說明如何設置此參數。
-Company "Contoso"
-Country <string>
指定用戶所選語言的國家或地區代碼。此參數設置用戶對象的 Country 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“c”。Windows 2000 不使用該值。
以下示例說明如何設置此參數。
-Country "IN"
-Credential <PSCredential>
指定用於執行此任務的用戶帳戶憑據。默認憑據是當前登錄用戶的憑據,除非 cmdlet 是從 Active Directory PowerShell 提供程序驅動器中運行的。如果 cmdlet 是從這樣的提供程序驅動器運行的,
則與該驅動器相關聯的帳戶爲默認帳戶。
要指定此參數,可以鍵入用戶名,如“User1”或“Domain01\User01”,也可以指定 PSCredential 對象。如果爲此參數指定用戶名,cmdlet 將提示您輸入密碼。
也可以使用腳本或使用 Get-Credential cmdlet 來創建 PSCredential 對象。然後可以將 Credential 參數設置爲 PSCredential 對象。以下示例說明如何創建憑據。
$AdminCredentials = Get-Credential "Domain01\User01"
下面說明如何將 Credential 參數設置爲這些憑據。
-Credential $AdminCredentials
如果現用憑據沒有執行任務的目錄級權限,Active Directory PowerShell 將返回終止錯誤。
-Department <string>
指定用戶所在的部門。此參數設置用戶的 Department 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“department”。
以下示例說明如何設置此參數。
-Department "Development"
-Description <string>
指定對象的說明。此參數設置對象的 Description 屬性的值。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“description”。
以下示例說明如何將此參數設置爲示例描述。
-Description "Description of the object"
-DisplayName <string>
指定對象的顯示名稱。此參數設置對象的 DisplayName 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“displayName”。
以下示例說明如何設置此參數。
-DisplayName "Sara Davis Laptop"
-Division <string>
指定用戶所在的分部。此參數設置用戶對象的 Division 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“division”。
以下示例說明如何設置此參數。
-Division "Software"
-EmailAddress <string>
指定用戶的電子郵件地址。此參數設置用戶對象的 EmailAddress 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“mail”。
以下示例說明如何設置此參數。
-EmailAddress "[email protected]"
-EmployeeID <string>
指定用戶的職員 ID。此參數設置用戶對象的 EmployeeID 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“employeeID”。
以下示例說明如何設置此參數。
-EmployeeID "A123456"
-EmployeeNumber <string>
指定用戶的職員編號。此參數設置用戶對象的 EmployeeNumber 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“employeeNumber”。
以下示例說明如何設置此參數。
-EmployeeNumber "12345678"
-Enabled <System.Nullable[bool]>
指定帳戶是否已啓用。啓用的帳戶需要密碼。此參數設置帳戶對象的 Enabled 屬性。此參數還設置 Active Directory 用戶帳戶控制 (UAC) 屬性的 ADS_UF_ACCOUNTDISABLE 標誌。此參數
的可能值包括:
$false 或 0
$true 或 1
以下示例說明如何設置此參數以啓用帳戶。
-Enabled $true
-Fax <string>
指定用戶的傳真號碼。此參數設置用戶對象的 Fax 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“facsimileTelephoneNumber”。
以下示例說明如何設置此參數。
-Fax "+1 (999) 555 1212"
-GivenName <string>
指定用戶的名字。此參數設置用戶對象的 GivenName 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“givenName”。
以下示例說明如何設置此參數。
-givenName "Sanjay"
-HomeDirectory <string>
指定用戶的主目錄。此參數設置用戶對象的 HomeDirectory 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“homeDirectory”。
以下示例說明如何設置此參數。
-HomeDirectory "\\users\saraDavisHomeDir"
-HomeDrive <string>
指定與 HomeDirectory 屬性所定義的 UNC 路徑相關聯的驅動器。驅動器號以“<DriveLetter>:”形式指定,其中 <DriveLetter> 指示要關聯的驅動器號。<DriveLetter> 必須是單
個大寫字母,並且必須帶有冒號。此參數設置用戶對象的 HomeDrive 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“homeDrive”。
以下示例說明如何設置此參數。
-HomeDrive "D:"
-HomePage <string>
指定對象主頁的 URL。此參數設置 Active Directory 對象的 homePage 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“wWWHomePage”。
以下示例說明如何將此參數設置爲 URL。
-HomePage "http://employees.contoso.com/sdavis"
-HomePhone <string>
指定用戶的家庭電話號碼。此參數設置用戶的 HomePhone 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“homePhone”。
以下示例說明如何設置此參數。
-HomePhone "+1 (999) 555 1212"
-Identity <ADUser>
通過提供以下屬性值之一指定 Active Directory 用戶對象。圓括號中的標識符是屬性的 LDAP 顯示名稱。
可分辨名稱
示例:CN=SaraDavis,CN=Europe,CN=Users,DC=corp,DC=contoso,DC=com
GUID (objectGUID)
示例:599c3d2e-f72d-4d20-8a88-030d99495f20
安全標識符 (objectSid)
示例:S-1-5-21-3165297888-301567370-576410423-1103
SAM 帳戶名 (sAMAccountName)
示例:saradavis
cmdlet 搜索默認命名上下文或分區來查找對象。如果找到兩個或更多對象,cmdlet 將返回非終止錯誤。
此參數還可通過管道獲取此對象,或者您也可以將此參數設置爲對象實例。
此示例說明如何將參數設置爲可分辨名稱。
-Identity "CN=SaraDavis,CN=Europe,CN=Users,DC=corp,DC=contoso,DC=com"
此示例說明如何將此參數設置爲名爲“userInstance”的用戶對象實例。
-Identity $userInstance
-Initials <string>
指定代表用戶名一部分的首字母。可以使用該值來表示用戶的中間名首字母。此參數設置用戶的 Initials 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“initials”。
以下示例說明如何設置此參數。
-Initials "L"
-Instance <ADUser>
指定一個 ADUser 對象,用於標識應修改的 Active Directory 用戶對象以及應對該對象進行的一組更改。如果使用此參數,則對 ADUser 對象所做的任何修改也將應用於對應的 Active Director
y 對象。cmdlet 僅更新已更改的對象屬性。
指定作爲 -Instance 參數值的 ADUser 對象必須是通過 Get-ADUser cmdlet 檢索獲得的。指定 Instance 參數時,不能指定其他設置對象各屬性的參數。
以下示例說明如何使用 Get-ADUser cmdlet 檢索 ADUser 對象的實例。此對象使用 Windows PowerShell 命令行進行了修改。然後,Set-ADUser cmdlet 會將所做的修改保存到
Active Directory 對象中。
步驟 1:檢索對象的本地實例。
$userInstance = Get-ADUser -Identity saraDavis
步驟 2:修改對象實例的一個或多個屬性。
$userInstance.EmailAddress = "[email protected]"
步驟 3:將所做的修改保存到 saraDavis。
Set-ADUser -Instance $userInstance
-LogonWorkstations <string>
指定用戶可以訪問的計算機。要指定多個計算機,請創建一個逗號分隔列表。可以使用計算機的安全帳戶管理器 (SAM) 帳戶名 (sAMAccountName) 或 DNS 主機名來標識該計算機。SAM 帳戶名與計算機的 NetB
IOS 名稱相同。
此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“userWorkStations”。
以下示例說明如何使用 SAMAccountName(NetBIOS 名稱)和 DNSHostName 值來設置此參數。
-LogonWorkstations "saraDavisDesktop,saraDavisLapTop,projectA.corp.contoso.com"
-Manager <ADUser>
指定用戶的管理器。此參數設置用戶的 Manager 屬性。通過提供以下屬性值之一設置此參數:注意:括號中的標識符是屬性的 LDAP 顯示名稱。
可分辨名稱
示例:CN=SaraDavis,CN=Europe,CN=Users,DC=corp,DC=contoso,DC=com
GUID (objectGUID)
示例:599c3d2e-f72d-4d20-8a88-030d99495f20
安全標識符 (objectSid)
示例:S-1-5-21-3165297888-301567370-576410423-1103
SAM 帳戶名 (sAMAccountName)
示例:saradavis
此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“manager”。
以下示例說明如何設置此參數。
-Manager saradavis
-MobilePhone <string>
指定用戶的移動電話號碼。此參數設置用戶對象的 MobilePhone 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“mobile”。
以下示例說明如何設置此參數。
-MobilePhone "+1 (999 ) 555 1212"
-Office <string>
指定用戶的辦公地點或公司所在地。此參數設置用戶對象的 Office 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“office”。
以下示例說明如何設置此參數。
-Office "D1042"
-OfficePhone <string>
指定用戶的辦公電話號碼。此參數設置用戶對象的 OfficePhone 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“telephoneNumber”。
以下示例說明如何設置此參數。
-OfficePhone "+1 (999) 555 1212"
-Organization <string>
指定用戶所在的組織單位。此參數設置用戶對象的 Organization 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“o”。
以下示例說明如何設置此參數。
-Organization "Accounting"
-OtherName <string>
指定除了用戶的名字和姓氏以外的名稱,如用戶的中間名。此參數設置用戶對象的 OtherName 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“middleName”。
以下示例說明如何設置此參數。
-OtherName "Peter"
-Partition <string>
指定 Active Directory 分區的可分辨名稱。可分辨名稱必須是當前目錄服務器上的命名上下文之一。cmdlet 搜索此分區來查找 Identity 參數定義的對象。
下面兩個示例說明如何指定此參數的值。
-Partition "CN=Configuration,DC=EUROPE,DC=TEST,DC=CONTOSO,DC=COM"
-Partition "CN=Schema,CN=Configuration,DC=EUROPE,DC=TEST,DC=CONTOSO,DC=COM"
在很多情況下,如果沒有指定值,Partition 參數將使用默認值。下面給出了確定默認值的規則。請注意,規則將按列出順序進行評估,一旦可以確定默認值,則不再評估規則。
在 AD DS 環境中,在以下情況下將設置 Partition 的默認值:如果 - Identity 參數設置爲可分辨名稱,則根據該可分辨名稱自動生成 Partition 的默認值。
- 如果從 Active Directory 提供程序驅動器運行 cmdlet,則根據該驅動器的當前路徑自動生成 Partition 的默認值。
- 如果前面所有的情況都不適用,則 Partition 的默認值將設置爲目標域的默認分區或命名上下文。
在 AD LDS 環境中,在以下情況下將設置 Partition 的默認值:
- 如果 Identity 參數設置爲可分辨名稱,則根據該可分辨名稱自動生成 Partition 的默認值。
- 如果從 Active Directory 提供程序驅動器運行 cmdlet,則根據該驅動器的當前路徑自動生成 Partition 的默認值。
- 如果目標 AD LDS 實例有默認命名上下文,則 Partition 的默認值將設置爲該默認命名上下文。要爲 AD LDS 環境指定默認的命名上下文,請設置 AD LDS 實例的 Active Directory 目錄
服務代理 (DSA) 對象 (nTDSDSA) 的 msDS-defaultNamingContext 屬性。
- 如果前面所有的情況都不適用,則 Partition 參數將不採用任何默認值。
-PassThru <switch>
返回新對象或修改過的對象。默認情況下(即,如果未指定 –PassThru),此 cmdlet 不生成任何輸出。
-PasswordNeverExpires <System.Nullable[bool]>
指定帳戶密碼是否可以過期。此參數設置帳戶對象的 PasswordNeverExpires 屬性。此參數還設置 Active Directory 用戶帳戶控制屬性的 ADS_UF_DONT_EXPIRE_PASSWD 標誌。
此參數的可能值包括:
$false 或 0
$true 或 1
注意:如果帳戶的 ChangePasswordAtLogon 屬性設置爲 true,則此參數不能設置爲 $true 或 1。
以下示例說明如何設置此參數,以便密碼可以過期。
-PasswordNeverExpires $false
-PasswordNotRequired <System.Nullable[bool]>
指定帳戶是否需要密碼。此參數設置帳戶(如用戶帳戶或計算機帳戶)的 PasswordNotRequired 屬性。此參數還設置 Active Directory 用戶帳戶控制屬性的 ADS_UF_PASSWD_NOTREQD
標誌。此參數的可能值爲:
$false 或 0
$true 或 1
以下示例說明如何設置此參數,使帳戶不需要密碼。
-PasswordNotRequired $true
-POBox <string>
指定用戶的郵政信箱號。此參數設置用戶對象的 POBox 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“postOfficeBox”。
以下示例說明如何設置此參數。
-POBox "25662"
-PostalCode <string>
指定用戶的郵政編碼。此參數設置用戶的 PostalCode 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“postalCode”。
以下示例說明如何設置此參數。
-PostalCode "28712"
-ProfilePath <string>
指定用戶配置文件的路徑。該值可以是本地絕對路徑,也可以是通用命名約定 (UNC) 路徑。此參數設置用戶對象的 ProfilePath 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“profil
ePath”。
以下示例說明如何將此參數設置爲本地路徑和 UNC 路徑。-ProfilePath "E:\users\profiles\saraDavis"
-ProfilePath "\\users\profiles\saraDavis"
-Remove <hashtable>
指定 cmdlet 刪除一個對象屬性的值。使用此參數可刪除一個或多個無法使用 cmdlet 參數修改的屬性值。若要刪除對象屬性,必須使用 LDAP 顯示名稱。可以通過指定分號分隔列表來刪除多個屬性。此參數的格式爲
-Remove @{Attribute1LDAPDisplayName=value[]; Attribute2LDAPDisplayName=value[]}
例如,如果要在 LDAP 顯示名稱爲 FavColors 的屬性中添加值 blue 和 green 並刪除值 pink,請按如下方式設置 Add 和 Remove 參數。
-Add @{FavColors=Blue,Green} -Remove {FavColors=Pink}
同時使用 Add、Remove、Replace 和 Clear 參數時,將按以下順序應用這些參數:
..Remove
..Add
..Replace
..Clear
-Replace <hashtable>
指定將替換當前值的對象屬性值。使用此參數可替換一個或多個無法使用 cmdlet 參數修改的屬性值。要修改對象屬性,必須使用 LDAP 顯示名稱。可以通過指定逗號分隔列表來修改多個屬性。此參數的格式爲
-Replace @{Attribute1LDAPDisplayName=value[], Attribute2LDAPDisplayName=value[]}
例如,如果要將 Phone-Office-Other 屬性中的值“555-222-2222”替換爲值“555-222-1111”(LDAP 顯示名稱“otherTelephone”),請按如下方式設置 Replace 參數
。
-Replace @{otherTelephone='555-222-2222', '555-222-1111'}
同時使用 Add、Remove、Replace 和 Clear 參數時,將按以下順序執行這些操作:
..Remove
..Add
..Replace
..Clear
-SamAccountName <string>
指定用戶、組、計算機或服務帳戶的安全帳戶管理器 (SAM) 帳戶名。描述文本的最大長度爲 256 個字符。爲了與舊版操作系統兼容,創建一個不超過 20 個字符的 SAM 帳戶名。此參數設置帳戶對象的 SAMAccountN
ame。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“sAMAccountName”。
以下示例說明如何指定此參數。
-SAMAccountName "saradavis"
注意:如果提供的字符串值不是以‘$’字符結束,必要時系統將添加該字符。
-ScriptPath <string>
指定用戶登錄腳本的路徑。該值可以是本地絕對路徑,也可以是通用命名約定 (UNC) 路徑。此參數設置用戶的 ScriptPath 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“scriptPat
h”。
以下示例說明如何設置此參數。
-ScriptPath "\\logonScripts\saradavisLogin"
-Server <string>
通過爲相應的域名或目錄服務器提供以下值之一,指定要連接到的 Active Directory 域服務實例。服務可以是以下任何一種:Active Directory 輕型域服務、Active Directory 域服務或 A
ctive Directory 快照實例。
域名值:
完全限定的域名
示例:corp.contoso.com
NetBIOS 名稱
示例:CORP
目錄服務器值:
完全限定的目錄服務器名稱
示例:corp-DC12.corp.contoso.com
NetBIOS 名稱
示例:corp-DC12
完全限定的目錄服務器名稱和端口
示例:corp-DC12.corp.contoso.com:3268
Server 參數的默認值由下列方法(按它們列出的順序)之一決定:
-通過使用通過管道傳遞的對象中的 Server 值。
-在該驅動器下運行時,通過使用與 Active Directory PowerShell 提供程序驅動器關聯的服務器信息。
-通過使用運行 Powershell 的計算機所在的域。
以下示例說明如何將完全限定域名指定爲參數值。
-Server "corp.contoso.com"
-ServicePrincipalNames <hashtable>
指定帳戶的服務主體名稱。此參數設置帳戶的 ServicePrincipalNames 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是 servicePrincipalName。此參數使用下面的語
法來添加、刪除、替換或清除服務主體名稱值。
語法:
添加值:
-ServicePrincipalNames @{Add=value1,value2,...}
刪除值:
-ServicePrincipalNames @{Remove=value3,value4,...}
替換值:
-ServicePrincipalNames @{Replace=value1,value2,...}
清除所有值:
-ServicePrincipalNames $null
可以使用分號分隔的列表來指定多項更改。例如,使用下面的語法添加和刪除服務主體名稱。
@{Add=value1,value2,...};@{Remove=value3,value4,...}
將按以下順序應用運算符:
..Remove
..Add
..Replace
以下示例說明如何添加和刪除服務主體名稱。
-ServicePrincipalNames-@{Add="SQLservice\accounting.corp.contoso.com:1456"};{Remove="SQLservice\finance.corp.co
ntoso.com:1456"}
-SmartcardLogonRequired <System.Nullable[bool]>
指定是否需要具備智能卡才能登錄。此參數設置用戶的 SmartCardLoginRequired 屬性。此參數還設置 Active Directory 用戶帳戶控制屬性的 ADS_UF_SMARTCARD_REQUIRED
標誌。此參數的可能值爲:
$false 或 0
$true 或 1
以下示例說明如何設置此參數,使得用戶必須具有智能卡才能登錄帳戶。
-SmartCardLogonRequired $true
-State <string>
指定用戶或組織單位所在的省/市/自治區。此參數設置用戶或組織單位對象的 State 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“st”。
以下示例說明如何設置此參數。
-State "Nevada"
-StreetAddress <string>
指定用戶的街道地址。此參數設置用戶對象的 StreetAddress 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“streetAddress”。
以下示例說明如何設置此參數。
-StreetAddress "1200 Main Street"
-Surname <string>
指定用戶的姓氏。此參數設置用戶對象的 Surname 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“sn”。
以下示例說明如何設置此參數。
-Surname "Patel"
-Title <string>
指定用戶的職務。此參數設置用戶對象的 Title 屬性。此屬性的 LDAP 顯示名稱 (ldapDisplayName) 是“title”。
以下示例說明如何設置此參數。
-Title "Manager"
-TrustedForDelegation <System.Nullable[bool]>
指定帳戶對於 Kerberos 委派是否是可信的。以對 Kerberos 委派而言可信的帳戶身份運行的服務可以採用請求該服務的客戶端的身份。此參數設置帳戶對象的 TrustedForDelegation 屬性。該值還設置
Active Directory 用戶帳戶控制屬性的 ADS_UF_TRUSTED_FOR_DELEGATION 標誌。此參數的可能值爲:
$false 或 0
$true 或 1
以下示例說明如何指定帳戶對於 Kerberos 委派可信。
-TrustedForDelegation $true
-UserPrincipalName <string>
每個用戶帳戶都有用戶主體名稱 (UPN),格式爲:<user>@<DNS-domain-name>。UPN 是管理員分配的友好名稱,該名稱比系統使用的 LDAP 可分辨名稱短,更容易記住。UPN 獨立於用戶對象的 DN,因
此可以移動或重命名用戶對象而不會影響用戶登錄名。使用 UPN 登錄時,用戶不必再從登錄對話框的列表中選擇域。
-Confirm [<SwitchParameter>]
在執行命令之前提示您進行確認。
-WhatIf [<SwitchParameter>]
描述如果執行該命令會發生什麼情況(無需實際執行該命令)。
<CommonParameters>
此 cmdlet 支持通用參數: Verbose、Debug、
ErrorAction、ErrorVariable、WarningAction、WarningVariable、
OutBuffer 和 OutVariable。有關詳細信息,請鍵入
“get-help about_commonparameters”。
-------------------------- 示例 1 --------------------------
C:\PS>Set-ADUser AntonioAl -HomePage 'http://fabrikam.com/employees/AntonioAl' -LogonWorkstations 'AntonioAl-DSKTOP
,AntonioAl-LPTOP'
將 samAccountName 爲 AntonioAL 的用戶的屬性主頁設置爲 http://fabrikam.com/employees/AntonioAl,並將 LogonWorkstations 屬性設置爲 Antonio
Al-DSKTOP,AntonioAl-LPTOP。
-------------------------- 示例 2 --------------------------
C:\PS>Get-ADUser -Filter 'Name -like "*"' -SearchBase 'OU=HumanResources,OU=UserAccounts,DC=FABRIKAM,DC=COM' -Prope
rties DisplayName | % {Set-ADUser $_ -DisplayName ($_.Surname + ' ' + $_.GivenName)}
獲取組織單位 OU=HumanResources,OU=UserAccounts,DC=FABRIKAM,DC=COM 下的目錄中的所有用戶。 將這些用戶對象的 DisplayName 屬性設置爲 Surname 和 Given
Name 屬性的串聯。
-------------------------- 示例 3 --------------------------
C:\PS>Set-ADUser GlenJohn -Replace @{title="director";mail="[email protected]"}
將 samAccountNAme 爲 GlenJohn 的用戶的 title 屬性設置爲 director,並將 mail 屬性設置爲 [email protected]。
-------------------------- 示例 4 --------------------------
C:\PS>Set-ADUser GlenJohn -Remove @{otherMailbox="glen.john"} -Add @{url="fabrikam.com"} -Replace @{title="manager"
} -Clear description
通過將 glen.john 從 otherMailbox 屬性刪除、將 fabrikam.com 添加到 url 屬性、用 manager 替換 title 屬性並清除 description 屬性,修改 samAccountNa
me 爲 GlenJohn 的用戶對象。
-------------------------- 示例 5 --------------------------
C:\PS>$user = Get-ADUser GlenJohn -Properties mail,department
$user.mail = "[email protected]"
$user.department = "Accounting"
Set-ADUser -instance $user
通過使用 instance 參數,設置 samAccountName 爲 GlenJohn 的用戶對象的 mail 和 department 屬性。
-------------------------- 示例 6 --------------------------
C:\PS># create a byte array for the M-F 8:00 am to 5 pm logon hours
$hours = New-Object byte[] 21
$hours[5] = 255; $hours[8] = 255; $hours[11] = 255; $hours[14] = 255; $hours[17] = 255;
$hours[6] = 1; $hours[9] = 1; $hours[12] = 1; $hours[15] = 1; $hours[18] = 1;
# create a hashtable to update the logon hours and a description
$replaceHashTable = New-Object HashTable
$replaceHashTable.Add("logonHours", $hours)
$replaceHashTable.Add("description", "Sarah Davis can only logon from Monday through Friday from 8:00 AM to 5:00 PM
")
# set the value of the logonHours and description attributes
Set-ADUser "SarahDavis" -Replace $replaceHashTable
將用戶登錄時間設置爲星期一到星期五的早上 8:00 到下午 5:00,並添加說明。 它以指定的字節數組和字符串分別更新“logonHours”和“description”屬性。