输出 CMDLET 的结果,并在 PowerShell 中对其进行操作



我有一个变量,它给了我Active Directory中一个对象的标题:

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

如果我按Write-Host $LastOU运行命令,它确实给了我预期的结果:

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

我现在要做的是操纵字符串,使其只有

Microsoft

选择。

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

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

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

但是我收到错误:

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

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

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

更改此内容

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

对此

Select -ExpandProperty CanonicalName -first 1

最新更新