【问题标题】:Powershell if formattingPowershell 如果格式化
【发布时间】:2014-03-23 05:03:43
【问题描述】:

我正在尝试运行以下脚本,但当我运行时,我得到了

表达式或语句中出现意外的令牌“-PrimaryUserAddress”

我该如何解决这个问题?

$users = Get-ADUser "joerod" -Properties *|Select-Object SamAccountName, msRTCSIP-PrimaryUserAddress

ForEach ($user in $users) {
if($user.msRTCSIP-PrimaryUserAddress -ne 0){
Write-Host "Removing $($user.samaccountname) from OCS"
 }
}

【问题讨论】:

    标签: powershell if-statement foreach


    【解决方案1】:

    解析器正在命中 - 并将其解释为 Powershell 运算符。单引号属性,以便将其解释为文字字符串:

    if($user.'msRTCSIP-PrimaryUserAddress' -ne 0)
    

    【讨论】:

      【解决方案2】:

      除了 mjolinor 的回答,您可以在选择属性时重命名属性。

      例如,这应该可以工作(未经测试):

      $users = Get-ADUser "joerod" -Properties *|Select-Object SamAccountName, @{Name="PrimaryUserAddress";Expression={$_."msRTCSIP-PrimaryUserAddress"}}    
      
      ForEach ($user in $users) {
           if($user.PrimaryUserAddress -ne 0){
               Write-Host "Removing $($user.samaccountname) from OCS"
           }
      }
      

      注意:“名称”指定变量的新名称,而“表达式”指定要重命名的变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-20
        • 2016-01-26
        • 2023-04-02
        • 1970-01-01
        相关资源
        最近更新 更多