function UpdateCSV
{
param(
[Parameter(Mandatory=$true)]$path,
[Parameter(Mandatory=$true)]$Row,
[Parameter(Mandatory=$true)]$exportpath,
[Parameter(Mandatory=$true)]$Delimiter
)
try{$csv = import-csv "$path" -Delimiter $Delimiter | Select-Object *,@{ Name= 'Department' ; Expression= {'Unkown'} },
@{ Name='Office' ; Expression= {'Unkown'} },
@{ Name= 'ADStatus' ; Expression= {'Unkown'} }
}
catch{break}
$result = foreach($user in $csv){
$userrow = $user.$row
write-host "$userrow"
$Username = $userrow.trim()
$ADUser = get-aduser -Filter {name -like $Username -or CN -like $Username -or sAMAccountType -like $Username} -Properties * -ErrorAction SilentlyContinue
if(!$ADUser){
$user.Department = "No ADUser"
$user.Office = "No ADUser"
$user.ADStatus = "No ADUser"
}
else{
$user.$row = $Username
if($ADUser.department -gt $null){$user.Department = $ADUser.department}
else{$user.Department = "Empty"}
if($ADUser.office -gt $null){$user.office = $ADUser.office}
else{$user.Office = "Empty"}
$user.ADStatus = $ADUser.enabled
}
$user
}
$result | export-csv "$exportpath" -Delimiter ";" -ErrorAction Stop
}
の行の名前を呼び出すために変数を使用するには、パラメータは、私は、ユーザー名を持つ行の名前を参照してみましょうが、私は、ユーザー"$user.$row"
それをされます仕事とwrite-host
セクションでは、私が$row
どのように私がやろうとしていますどのようなインポートCSV
に指定するだけではなく、行の完全な列を書き出ししかし、私は代わりに$userrow = "$user.example"
をハードコーディングしている場合、それは直接動作し、write-host
セクションでは、唯一の代わりにその値を書き出していませんすべての列
私は変数に名前がある行をどのように呼び出すのですか?
これは私が何を探していることは$ _だと思ういくつかの明白なmisstakes
ない私はexcptedとしてtryブロック内のコードが動作している、ここに従ってください後に更新
。 foreachループで$ user。$ rowを呼び出すのに苦労します。これは私が$行の名前を予測することはできません。なぜなら、監査する各システムからは異なるからです。 – Jakodns
あなたのtryブロックでは、名前を照合するのに必要な式を使用することができます。 Name = 'User'を追加した場合。 Expression = {$ _。columnnameforuser}をハッシュテーブルに追加すると、ユーザーのタイトルは常に同じになります。 CSVが変更された場合、正しいデータを収集するためにハッシュテーブルとその式を更新する必要があります。それ以降はすべて同じままでいなければなりません。たとえば$ userrow = $ user.userなど –
私が追加した列は例外として動作しており、私は例外としてそれらを呼び出すことができます。それは、私が呼び出すことができない$ row変数に名前を付けるようにユーザーに依頼する列です。 3行追加する問題はありません。問題がある行は、CSVに既に含まれている行です。名前がわからないため、$ userというユーザーが必要です。 。もし私があなたのことを忘れていたら、それがどのように働くかのスニペットを見せることができますか? – Jakodns