PowerShell将ADuser值获取为字符串
我正在处理的脚本的一部分将用户从AD传递到变量$TargetUsers 然后将此变量传递给以下对象,以更改每个用户的UPN后缀:PowerShell将ADuser值获取为字符串,powershell,Powershell,我正在处理的脚本的一部分将用户从AD传递到变量$TargetUsers 然后将此变量传递给以下对象,以更改每个用户的UPN后缀: $OldSuffix = "@olddomain.com" $NewSuffix = "@newdomain.com" Foreach ($User3 in $TargetUsers) { $Upn3 = $User3.UserPrincipalName $NewUpn = $User3.UserPrincipalName.Replace($OldSuffix,$Ne
$OldSuffix = "@olddomain.com"
$NewSuffix = "@newdomain.com"
Foreach ($User3 in $TargetUsers) {
$Upn3 = $User3.UserPrincipalName
$NewUpn = $User3.UserPrincipalName.Replace($OldSuffix,$NewSuffix)
Get-ADUser -Filter "UserPrincipalName -eq '$Upn3'" | Set-ADuser `
-Remove @{proxyAddresses=@("SMTP:$($User3.givenName).$($User3.sn)$OldSuffix","sip:$($User3.givenName).$($User3.sn)$OldSuffix")} `
-Add @{proxyAddresses=@("SMTP:$($User3.givenName.ToLower()).$($User3.sn.ToLower())$NewSuffix","smtp:$($User3.givenName.ToLower()).$($User3.sn.ToLower())$OldSuffix","sip:$($User3.givenName.ToLower()).$($User3.sn.ToLower())$NewSuffix")} `
-Replace @{ co = "United Kingdom" } `
-Email "$($User3.givenName.ToLower()).$($User3.sn.ToLower())$NewSuffix" `
-UserPrincipalName $NewUpn
$NewUpn2 = Get-ADuser -Filter "UserPrincipalName -eq '$NewUpn'" | Select UserPrincipalName
"$(Get-Date -f HH:mm:ss): $($Upn3): AD Attributes updated & UPN Suffix changed to $NewUpn2" | Tee-Object $UserMigrationLog -Append
}
这将输出到主机和日志文件“…UPN后缀更改为@{UserPrincipalName=Firstname”。surname@newdomain.com}"
我如何才能让它排除结尾处的“@{UserPrincipalName=“&trailing”}”呢
$NewUpn2 = Get-ADuser -Filter "UserPrincipalName -eq '$NewUpn'" | % {$_.UserPrincipalName}
成功了。另一种选择可能是使用
$NewUpn2=Get ADuser-Filter“UserPrincipalName-eq'$NewUpn'”| Select-ExpandProperty UserPrincipalName
谢谢。知道其他方法总是很好的。