次のスクリプトを使用して、ユーザーとプロキシアドレス値のスプレッドシート(文字列と一致する)をレコードとして作成しています。値を戻すことができます。複数の属性に追加されたProxyaddressが個別の行に表示されない
ユーザーごとに1つのエントリしかない場合、スクリプトはうまく機能しますが、ユーザーに複数のエントリがある場合に問題が発生します。問題は、元の値に戻そうとすると、属性エディタで表示したときに、各プロキシアドレスの別々の行ではなく、プロキシアドレスがすべて1行に表示されることです。フォールトがコレクションスクリプトにあるのか、私が値を設定するために使用しているスクリプトであるのか分かりません。
$csv = import-csv "Proxyaddresses_Domain_1201_05-04-2017.csv"
$domain = [system.environment]::UserDomainName
$attribute = "Proxyaddresses"
foreach ($line in $csv){
$user = $line.samaccountname
$proxyaddresses = $line.proxyaddresses
Get-aduser $User -server $domain -Properties $attribute | Set-ADUser -add
@{$attribute = $proxyaddresses} -server $domain
}
私は、このような収集スクリプトのようにいろいろなことを試してみました:バック、私は次のことを実行している元の状態に値を返すに
$entry = "*test.com"
$users = get-content "Testusers.txt"
$date = get-date
$mydata = @()
$domain = [system.environment]::UserDomainName
$attribute = "Proxyaddresses"
$report = "{0}_{1}_{2:HHmm_dd-MM-yyyy}.txt" -f $attribute,$domain,$date
$px = $users | Get-ADUser -Properties proxyaddresses -server $domain
foreach ($user in $px){
if ($user.proxyaddresses -like $entry){
$name = $user.samaccountname
$proxyaddresses = $user.proxyaddresses -like $entry
$mydata += New-Object PSObject -Property @{
Samaccountname = $name
Proxyaddresses = $proxyaddresses
}
}
}
$mydata | select samaccountname,@{ l = "Proxyaddresses"; e = {$_.Proxyaddresses } }| export-csv "$PWD\$report" -NoTypeInformation -Append
:私は次のことを実行している値を収集するために、
$proxyaddresses = $line.proxyaddresses -join ","
は、私はまた、値を設定するために使用するスクリプトで同じ戦術を試してみましたが、代わりに新しい行を作成するには、同じ線V上のエントリ間のスペースを削除しますAD属性エディタを介して表示されます。
は、私はまた、これが問題
$proxyaddresses = ([Microsoft.ActiveDirectory.Management.ADPropertyValueCollection]$user.proxyaddresses -like $entry
HELPを解決しませんでしたが、次へ
$proxyaddresses = $user.proxyaddresses -like $entry
を変更しようとしました!
グレート説明するのではなく、-replace使用 - 私の問題を解決しました。注:-replaceの代わりに-addを続けて使用すると、-replaceはすべてのproxyaddresses属性エントリを新しいエントリに置き換えます – Itchydon