當使用$Computer.StartsWith("WI-")
我收到以下錯誤PowerShell的錯誤 - 未找到方法
Method invocation failed because [Microsoft.ActiveDirectory.Management.ADComputer] does not contain a method named 'StartsWith'
我的印象,這是一個默認的方法下。有什麼我必須導入使用它?
當使用$Computer.StartsWith("WI-")
我收到以下錯誤PowerShell的錯誤 - 未找到方法
Method invocation failed because [Microsoft.ActiveDirectory.Management.ADComputer] does not contain a method named 'StartsWith'
我的印象,這是一個默認的方法下。有什麼我必須導入使用它?
該錯誤是相當清楚的:[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-")
試試這個
$env:COMPUTERNAME.StartsWith("WI-")
停止了這個錯誤,但是我的if語句仍然不起作用。 if($ env:COMPUTERNAME.StartsWith(「WI-」)) { Write-Host「將$ Computer移動到$ TargetOU」| Move-ADObject $ Computer -TargetPath $ TargetOU } –
John,Jan回答了你的問題。如果你有其他問題,那麼你應該單獨發佈。有關更多詳情,請參閱幫助中心。 –
其實,Χpẘ,不,不能回答我的問題。 $ env:COMPUTERNAME表示我使用的機器的計算機名稱不是我的$ Computer變量。 –
'$計算機= GET-ADComputer -SearchBase CN =電腦,DC =域,DC =本地」 -Filter '*' 的foreach($計算機在$計算機) { 如果($ Computer.StartsWith( 「WI-」)){ <#寫主機「移動$計算機to $ TargetOU「|#> Move-ADObject $ Computer -TargetPath $ TargetOU } }' –