2016-04-28 39 views
0

外部ソース(NetSuite)から自動生成されたcsvファイルを持っています csvファイルのデータを使用してActive Directoryユーザーアカウントを更新して、PowerShellでインポートされたcsvデータを操作する

NetSuiteはEmailとManagerを2列のヘッダーとして持つcsvファイルを提供します。 電子メール - 従業員の電子メールアドレスが含まれています。マネージャには、マネージャ名が最後、最初の形式で含まれています。

私は、目標1が目標2最終を並べ替えることであろうメールアドレス欄 から@domainを取り除くことであろう

Set-AdUser -Identity user.name -manager first.last 

で使用できるデータにこれらの列の両方を変換したいですまずfirst.last

Import-Csv c:\test.csv 

Email | Supervisor 
[email protected] | "Number1, Manager" 
[email protected] | "Number2, Manager" 

に私はこの

Email | Supervisor 
user.1 | Manager.Number1 
user.2 | Manager.Number2 
のように見えるcsvファイルにこれをエクスポートできるようにしたいのですが

したがって、ADのEmployee - Managerフィールドを自動化するワークフローは です。1. NetSuiteスケジュール時刻にCSVファイルをエクスポートします。 2. NetSuite csvをインポートし、説明どおりにデータを編集するスクリプト。使用可能なデータを持つ新しいCSVセットAdUserする-managerを新しいCSV

私は指導上を追求していますそのすべてから 4. PowerShellスクリプトへ 3.エクスポート-CSVは、ステップ2と3

が、このことが可能ですされています?私がこれを私自身で把握すれば、私は更新します。私は今、私が行うことができるようにする必要があり、すべてがカラムから「姓、」データを取得し、「First.Last」

にそれを変更することで客観1 を考え出した

編集

編集2 - これは静かな権利を動作するようには思えない....

$txt = import-csv .\book1.csv | % { 
    $_.Email = $_.Email -replace "@test.com", "" 
    $_ 
} 
export-csv -InputObject $txt -NoTypeInformation .\newbook1.csv 
+0

ようこそ_StackOverflow_に、そうする前に[質問する方法](http://stackoverflow.com/help/how-to-ask)を読んでみてください。必要なもの、これまでに試したこと、期待されたとおりに動作しない理由(エラーメッセージなど)を少し説明します。また、読者が簡単に理解できるように質問の書式を整える時間をとることを検討してください。質問を編集して上記のコメントに投稿した説明を含めることができます。 – Nacho

+0

ありがとうNacho。私はいくつかの文脈を提供しようとしました。解読コードをスニペットに移動しました – pshellstudent

+0

'-split'と' -join'演算子を検索 –

答えて

0

あなたが試みることができる:

Import-Csv -Path .\book1.csv | ForEach-Object { 
    #Remove @AndEverthingThatFollows 
    $_.Email = $_.Email -replace "@.*$" 
    #Replace "LastName, FirstName" (space optional) with FirstName.Lastname  
    $_.Supervisor = $_.Supervisor -replace '(\w+),\s*?(\w+)', '$2.$1' 
} | Export-Csv -NoTypeInformation -Path .\newbook1.csv 
関連する問題