2017-08-02 17 views
0

に私のコード名ベースを見つける:PowerShellの - 説明

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | where {$_.Description -Notlike "Services User"} | select Name 

を私は上記のコードを試してみましたが、それはまだ両方のアカウントを表示します。だから私は2つのアカウントを持つユーザーがあります。 1つのアカウントは通常のアカウントであり、もう1つはサービスアカウントです。私は通常のアカウントを表示したいだけです。

答えて

1

あなたのコードは正常に見え、私のために(変更されたアカウント変数で)動作します。つまり、アカウントと「サービスユーザー」を確認する必要があります。パイプラインを段階的に分割して、機能していることを確認します。

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description 

これは、2つの勘定科目をその説明とともにヘッダーとして出力する必要があります。あなたのエラーによると、この部分はうまくいきますので、チェックする必要はないでしょう。あなたが書いたものを、それらの試合は、その後、パイプラインに次の要素を追加した場合

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | select Description 

しかし、まだ「説明」プロパティが正常に見えることを確認するために行うには良いかもしれ

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | where {$_.Description -Notlike "Services User"} 

この部分では、出力する内容を確認することが重要です。あなたが言っていることから、これは両方のアカウントを出力しますが、これはあなたが望むものではありません。最も可能性の高いケースは、「サービスユーザー」があなたの他のアカウントの記述ではないことです。これより上のスニペットの出力と比較してください。

これは、古典的なデバッグに役立つことを望みます。 DistinguishedNameプロパティのようなものを使用して2つのアカウントを比較することもできます。これは説明よりも信頼性が高い場合があります(必須プロパティではありません)。

0

多分別のスイッチを使用する必要があります。

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | where {$_.Description -ne "Services User"} | select Name 

または::もちろん

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | where {$_.Description -eq "regular account"} | select Name 

あなたは上記の使用あなたが説明内の文字列をチェックする必要がありますスイッチの代わりのように-not使用して、あなたは-neや-eqを使用する必要があります。条件となる文字列と等しくなければなりません。私は、問題の連中を加算する"*service*"

感謝を追加するとき

0

インタレスト...それは動作します。