Out-String CMDLET的结果并在PowerShell中对其进行操作

时间:2017-04-06 11:49:30

标签: string powershell split

我有一个变量,它给我一个Active Directory中对象的canocical名称:

$LastOU = Get-ADOrganizationalUnit -Filter * -Properties * |
          Sort { $_.WhenCreated } -Descending |
          Select -First 1 {$_.CanonicalName} |
          Out-String

如果我将命令作为Write-Host $LastOU运行,那么它会给出我预期的结果:

  

@ {$ _。CanonicalName = domain.local /微软/ Userz}

我现在要做的就是操纵字符串只有

  

微软

进行选择。

我使用Out-String方法将命令的结果作为字符串。

之后,我所做的是使用.Split() - 函数来操纵我的结果。

我这样做$CompName = $LastOU.Split(...)

然而我收到错误:

  

方法调用失败,因为[Selected.Microsoft.ActiveDirectory.Management.ADOrganizationalUnit]不包含名为' Split'。

的方法

这意味着我的结果不是字符串?但是我的命令出了什么问题?

1 个答案:

答案 0 :(得分:2)

将select语句更改为包含-ExpandProperty,它应该只返回字符串而不是对象。

更改此

Select -First 1 {$_.CanonicalName} |Out-String

到这个

Select -ExpandProperty CanonicalName -first 1