2017-11-20 18 views
1

私はこのスクリプトを書いて、ADからPCとサーバーを2つの異なるネットスプレッドシートに抽出しました。しかし、私はスクリプトを実行するたびに、私は次のエラーを取得しています。私が間違っている場所を指摘することで、誰でも助けてくれるでしょうか。Powershell - 条件付き演算子

これは私が取得していますエラーです:下記の

Get-ADComputer : The server has returned the following error: invalid enumeration context. 
At line:3 char:1 
+ Get-ADComputer -filter { OperatingSystem -ne '*server*' -OR Operating ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [Get-ADComputer], ADException 
    + FullyQualifiedErrorId : The server has returned the following error: invalid enumeration context.,Microsoft.ActiveDirectory.Management.Commands.GetADComputer 

Get-ADComputer : The server has returned the following error: invalid enumeration context. 
At line:6 char:1 
+ Get-ADComputer -filter { OperatingSystem -eq '*server*' -OR Operating ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [Get-ADComputer], ADException 
    + FullyQualifiedErrorId : The server has returned the following error: invalid enumeration context.,Microsoft.ActiveDirectory.Management.Commands.GetADComputer 

はスクリプトです: -

import-module ac* 

Get-ADComputer -filter { OperatingSystem -ne '*server*' -OR OperatingSystemVersion -Like '*5.1*' -OR OperatingSystemVersion -Like '*6.1*' -and Enabled -eq "true"} -SearchBase 'OU=IMComputers,OU=IM,dc=image,dc=inter' -Properties '*' | Select Name,OperatingSystem,Status, OperatingSystemVersion, ` 
LastLogonDate,CanonicalName | Export-Csv -NoType "C:\Temp\PC's in AD" -Encoding UTF8 

Get-ADComputer -filter { OperatingSystem -eq '*server*' -OR OperatingSystemVersion -Like '*5.0*' -OR OperatingSystemVersion -Like '*5.2*' -OR OperatingSystemVersion -Like '*6.0*' -OR OperatingSystemVersion -Like '*6.1*' -OR OperatingSystemVersion -Like '*6.2*' -OR OperatingSystemVersion -Like '*6.3*' -and Enabled -eq "true"} -SearchBase 'OU=IMComputers,OU=IM,dc=image,dc=inter' -Properties '*' | Select Name,OperatingSystem,Status, OperatingSystemVersion, ` 
LastLogonDate,CanonicalName | Export-Csv -NoType "C:\Temp\Servers in AD" -Encoding UTF8 

答えて

1

私は自分の組織に適合させるとき、あなたのスクリプトが動作します(それは小さなものだ)ので、あなたは間違っていません。しかし、私は数年前にそれについて何かを読んで、Gのおかげで....私の友人は私が見つけたInvalid Enumeration Context using powershell script to check computer accounts

概要:クエリ索引付けされていない属性に基づいている場合、問題が悪化します。 operatingSystemおよびoperatingSystemVersion属性は索引付けされません。ドメイン内に多数のコンピュータオブジェクトがあり、OSに基づいて頻繁にクエリを実行すると仮定すると、おそらくオペレーティングシステムのインデックスを作成することは理にかなっています。別の解決策は、Get-ADComputerの代わりにDirectorySearcherフィルタとLDAPフィルタを使用することです。