2009-06-25 14 views
0

パスワードを変更していないユーザーに24時間問い合わせを行うPowershellスクリプトがあります。クエリは出力をcsvファイルにリダイレクトします。以下は、PowerShellスクリプトとバッチスクリプトです:Powershellスクリプトで生成されたcsvファイルにヘッダーを挿入する方法

PowerShellのスクリプト:

$root = [ADSI]'' 
$searcher = new-object System.DirectoryServices.DirectorySearcher($root) 
$searcher.filter = "(&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))" 
$searcher.sizelimit = 5000 

[Void]$searcher.PropertiesToLoad.Add("cn") 
[Void]$searcher.PropertiesToLoad.Add("samAccountName") 
[Void]$searcher.PropertiesToLoad.Add("pwdLastSet") 

$users = $searcher.findall() 

$UserOU = "OU=Mountain,DC=Atlanta,DC=ga" 
$PWDays = (Get-Date).AddDays(-1) 

$UserCount = 0 
$UserPW = 0 

foreach($user in $users) 
    { 

    if ($user.path -like "*$UserOU") 
     { 
     $usercount = $UserCount 

     if ([datetime]::FromFileTime(($user.properties.pwdlastset)[0]) -le $PWDays) 
      { 
      $UserPW = $UserPW + 1 

      Write-Host $user.Properties.cn 
      } 
     } 

    } 

バッチスクリプト:

powershell.exe d:\temp\query.ps1 > D:\temp\query.csv 

私の質問です:私は入れないで、ユーザ名のヘッダーを置くために、スクリプトを変更する方法csvの出力ファイルですか?

ヘッダーは単純に「ユーザー名」であっても、必ずしもファーストネームと姓である必要はありません。

+0

ユーザーは24時間ごとにパスワードを変更する必要がありますか?あなたは平均的なシステム管理者です:)> –

答えて

1

(ユーザーのPSを持っていることはありません)わからないが、私はforeachの前に

Write-Host "Username" 

を貼り付けることを推測するには、トリック

3

あなたがExport-Csvを使用していない理由は、任意の理由を行う可能性がありますか?オブジェクトをパイプに入れるだけで、ヘッダーを含めることができます。

$users | 
? { $_.Path -like "*$UserOU" } | 
? { [datetime]::FromFileTime(($user.properties.pwdlastset)[0]) -le $PWDays } | 
% { $_ | Add-Member -PassThru NoteProperty Username $_.Properties.cn } | 
select Username | 
Export-Csv D:\temp\query.csv 

の行に沿ったものが動作する可能性があります。 (ヒント:パイプラインはループより楽しいです:))

+0

Export-csvに関する提案をありがとう。 foreachをあなたのコードに置き換えようとしましたが、 "ヌル配列にインデックスを付けることはできません"。 – titanium

+0

実際、私は試してみるだけでそれを入力していました。それはうまくいかないかもしれませんが、あなたは一緒にそれを一緒にするアイデアを得るかもしれません。インデックスがある唯一の場所は(($ user.properties.pwdlastset)[0]です)エラーの原因になっていますが、元のスクリプトですでにそうしているはずです – Joey

+0

また、私はCSVのヘッダーとして使用できるプロパティを追加するためにAdd-Memberを使用しました。 – Joey

関連する問題