2016-05-01 47 views
0

當使用$Computer.StartsWith("WI-")我收到以下錯誤PowerShell的錯誤 - 未找到方法

Method invocation failed because [Microsoft.ActiveDirectory.Management.ADComputer] does not contain a method named 'StartsWith' 

我的印象,這是一個默認的方法下。有什麼我必須導入使用它?

+0

'$計算機= GET-ADComputer -SearchBase CN =電腦,DC =域,DC =本地」 -Filter '*' 的foreach($計算機在$計算機) { 如果($ Computer.StartsWith( 「WI-」)){ <#寫主機「移動$計算機to $ TargetOU「|#> Move-ADObject $ Computer -TargetPath $ TargetOU } }' –

回答

0

該錯誤是相當清楚的:[Microsoft.ActiveDirectory.Management.ADComputer]類型的對象不包含名爲「StartsWith」的方法。

$Computer來自哪裏?從Get-ADComputer cmdlet?閱讀How to list all AD computer object properties

運行$Computer | Get-Member | ft -AutoSize應該會提示更多。

運行$Computer.GetType()也是如此。舉例來說,未來可能的工作,如果$Computer不是數組:

$Computer.Name.StartsWith("WI-") 
$Computer.CN.StartsWith("WI-") 
$Computer.DisplayName.StartsWith("WI-") 

然而,未來類似的表述可以給另一個結果:

$Computer.Name.ToUpper().StartsWith("WI-") 
$Computer.CN.ToUpper().StartsWith("WI-") 
$Computer.DisplayName.ToUpper().StartsWith("WI-") 
1

試試這個

$env:COMPUTERNAME.StartsWith("WI-") 
+0

停止了這個錯誤,但是我的if語句仍然不起作用。 if($ env:COMPUTERNAME.StartsWith(「WI-」)) { Write-Host「將$ Computer移動到$ TargetOU」| Move-ADObject $ Computer -TargetPath $ TargetOU } –

+0

John,Jan回答了你的問題。如果你有其他問題,那麼你應該單獨發佈。有關更多詳情,請參閱幫助中心。 –

+1

其實,Χpẘ,不,不能回答我的問題。 $ env:COMPUTERNAME表示我使用的機器的計算機名稱不是我的$ Computer變量。 –