【问题标题】:PowerShell Get-ADuser value as stringPowerShell Get-ADuser 值作为字符串
【发布时间】:2017-08-04 19:24:04
【问题描述】:

我正在处理的脚本的一部分从 AD 获取用户传递给变量 $TargetUsers

然后将此变量传递给以下变量以更改每个用户的 UPN 后缀:

$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 "}"?

【问题讨论】:

    标签: powershell


    【解决方案1】:

    啊,整理好了。

    $NewUpn2 = Get-ADuser -Filter "UserPrincipalName -eq '$NewUpn'" | % {$_.UserPrincipalName}
    

    成功了。

    【讨论】:

    • 另一种可能是使用$NewUpn2 = Get-ADuser -Filter "UserPrincipalName -eq '$NewUpn'" | Select -ExpandProperty UserPrincipalName
    • 非常感谢。总是很高兴知道替代方法。
    猜你喜欢
    • 2021-02-19
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多