6

これは単なる構文エラーだと確信していますが、AD ユーザーを検索しようとしていますが、これが機能しない理由がわかりません。

Write-Host "Enter LastName or UserName:"
$x = Read-Host
Get-ADUser -Filter { SAMAccountName -like '*$x*' } -Properties DispalyName | FT -Properties DisplayName

何も返さないだけです。そして、「*」を使用した構文であると確信しています。しかし、理由はわかりません。助けてくれてありがとう。

4

5 に答える 5

12

$x は Filter スクリプトブロック内で展開されていません。これでうまくいくはずです:

$x = 'mini'
Get-ADUser -Filter "SamAccountName -like '*$x*'" -Properties DisplayName | ft DisplayName 

DisplayName
-----------
Administrator

または、ldap フィルターを使用できます。

Get-ADUser -LDAPFilter "(samaccountname=*$x*)"
于 2012-10-04T14:43:51.643 に答える
2

上記のポスターに同意します。一重引用符は、変数の展開を防ぎます。二重引用符が機能します。

PS H:\> $s = "smith"
PS H:\> Write-Host '*$s*' 
*$s*
PS H:\> Write-Host "*$s*" 
*smith*

オブジェクトの場合など、二重引用符が役に立たない場合がまだいくつかあります。

PS H:\> $psObj = New-Object PsCustomObject
PS H:\> $psobj | Add-Member -MemberType noteproperty -name s -value "smith"
PS H:\> Write-Host $psobj.s
smith
PS H:\> Write-Host "*$psobj.s*"
*@{s=smith}.s*

その場合は、文字列の書式設定を使用します。

PS H:\> Write-Host ("*{0}*" -f $psobj.s)
*smith*
于 2012-10-04T13:34:00.147 に答える
1

これを変更してみてください:

{ SAMAccountName -like "*$x*" }

編集:

これは機能するはずです:

$x = '*' + $(Read-Host 'Enter name') + '*'
get-aduser -Filter {name -like $x} -Properties DispalyName | FT -Properties DisplayName
于 2012-10-04T12:46:40.960 に答える
0

まあ、これは動作しますが、少し遅いです:

$x = Read-Host "Enter Name"

Get-ADUser -Filter * -Properties SAMAccountName | ? { $_.SAMAccountName -like "*$x*" } | Format-Table -Property SAMAccountName

少し異なるアプローチですが、それでも機能します! すべての助けに感謝します。

于 2012-10-04T13:59:55.217 に答える
0

オブジェクトを使用しているときに、powershell の学習曲線でこれに遭遇しました。

ユーザーIDのcsvファイルを読み込んで、それらを検索/一致/フィルタリングする必要がありましたが、二重引用符が機能しませんでした。

私の解決策は、オブジェクトで ToString() メソッドを使用し、それをスカラー変数に設定してから、その変数をフィルターで使用することでした。うまくいきました。

$user_records=Import-CSV .\20140430.userids.csv

テーブルには、「名前、ID、部門」の 3 つの列がありました。私が使用したユーザーIDの検索フィルターでそれらを取得するには:

foreach ( $thisrow in $user_records ) {
$thisuser=$thisrow.Username.ToString()
Get-ADUser -Filter {SamAccountName -eq $thisuser} -SearchBase "OU=Domain Users,DC=topofthecharts,DC=com" -Properties Department 

}

これにより、私の拡張と引用の問題が完全に回避されました。

于 2014-05-06T16:58:01.197 に答える