Archive for 6月, 2010


 
 (テキスト)ファイル内に特定のキーワードが含まれているか検索し、キーワードが含まれている行のみを抽出してみます。
 
 検索するファイルの指定 
 PS > $txtchk = \wsbs08\UserShares\目次.txt
 
 検索するキーワード
 PS > $Word = "*コンピュータ*"
 
 抽出するプログラム
 PS > for ( $i = 1; $i -le $Lines.Length; $i++ ) { ($i.ToString("00#:") + $Lines[$i – 1]) | Where { $Lines[$i – 1] -like $Word }}
 
 実行結果 (対象行数を先頭に付与)
 093: コンピュータの構成管理として
 094: コンピュータの構成管理
 
 
広告
 
 
 で紹介したイベントログをログファイルから取得する部分のスクリプトでは、
 
 #基準時刻から1時間前の全イベントログ
 PS C:\> Get-EventLog -list -ComputerName $s | Foreach-Object { $l =$_.Log;$l;$x += Get-EventLog -logname $l -Before $a -After $b -ComputerName $s }
 #基準時刻から1日前の全イベントログ
 PS C:\> Get-EventLog -list -ComputerName $s | Foreach-Object { $l =$_.Log;$l;$y += Get-EventLog -logname $l -Before $a -After $c -ComputerName $s }
 #基準時刻から7日前の全イベントログ
 PS C:\> Get-EventLog -list -ComputerName $s | Foreach-Object { $l =$_.Log;$l;$z += Get-EventLog -logname $l -Before $a -After $d -ComputerName $s }
 
 集計の対象となるイベントログを別々に求めていました。これでは、時間がかかりすぎます。そこで、次のように変更します。
 
 #基準時刻から7日前の全イベントログ
 PS C:\> Get-EventLog -list -ComputerName $s | Foreach-Object { $l =$_.Log;$l;$z += Get-EventLog -logname $l -Before $a -After $d -ComputerName $s }
 #上記ログから、1日前のイベントログを取得
 PS C:\> $y = $z | Where-Object{ $_.TimeGenerated -gt $b }
 #同じく上記ログから、1時間前のイベントログを取得
 PS C:\> $x = $z | Where-Object{ $_.TimeGenerated -gt $c }
 
 このスクリプトは、いったん取得したイベントログを、フィルターすることで、イベントログの再取得と比較して短時間に処理をすることができるようになります。
 
 
 
 Windows Server 2008 R2 のイベントビューアーには、管理イベントの概要があります。
 この管理イベントと同じような機能を PowerShell で取得してみましょう。
 
 
 
 イベントログの集計を取得するには、次のとおりになります。
 
 #イベントログを取得するホスト名
 PS C:\> $s = "wsbs08"

 
 #イベントログを取得する基準時間
 PS C:\> $a = get-date
 
 #基準時刻から1時間前の時間
 PS C:\> $b = $a.AddHours(-1)

  #基準時刻から1日前の時間

 PS C:\> $c = $a.AddDays(-1)

  #基準時刻から7日前の時間

 PS C:\> $d = $a.AddDays(-7)

 
 #基準時刻から1時間前の全イベントログ
 PS C:\> Get-EventLog -list -ComputerName $s | Foreach-Object { $l =$_.Log;$l;$x += Get-EventLog -logname $l -Before $a -After $b -ComputerName $s }
 #基準時刻から1日前の全イベントログ
 PS C:\> Get-EventLog -list -ComputerName $s | Foreach-Object { $l =$_.Log;$l;$y += Get-EventLog -logname $l -Before $a -After $c -ComputerName $s }
 #基準時刻から7日前の全イベントログ

 PS C:\> Get-EventLog -list -ComputerName $s | Foreach-Object { $l =$_.Log;$l;$z += Get-EventLog -logname $l -Before $a -After $d -ComputerName $s }

 
 #基準時刻から1時間前のイベントの種類ごとの集計
 PS C:\> $x | Group-Object EntryType | Format-Table Name,Count -auto
 #基準時刻から1日前のイベントの種類ごとの集計
 PS C:\> $y | Group-Object EntryType | Format-Table Name,Count -auto
 #基準時刻から7日前のイベントの種類ごとの集計

 PS C:\> $z | Group-Object EntryType | Format-Table Name,Count -auto

 
 
【SBS08の結果】
過去1時間(PS C:\> $x | Group-Object EntryType | Format-Table Name,Count -auto)
 Name         Count
 —-         —–
 Information   1058
 Error            2
 SuccessAudit 31785
 FailureAudit  2001
 
過去1日(PS C:\> $y | Group-Object EntryType | Format-Table Name,Count -auto)
 Name          Count
 —-          —–
 Information    4756
 Error            18
 Warning          14
 SuccessAudit 492116
 FailureAudit  21942
 
過去7日(PS C:\> $z | Group-Object EntryType | Format-Table Name,Count -auto)
 Name          Count
 —-          —–
 Information   14058
 Error            63
 Warning         190
 FailureAudit  11103
 0                 8
 SuccessAudit 245750
【SBS03の結果】
過去1時間(PS C:\> $x | Group-Object EntryType | Format-Table Name,Count -auto)
 Name         Count
 —-         —–
 Information     98
 Error            4
 Warning          8
 0                2
 SuccessAudit   515
過去1日(PS C:\> $y | Group-Object EntryType | Format-Table Name,Count -auto)
 Name         Count
 —-         —–
 Information    313
 Error           22
 Warning         36
 0                6
 SuccessAudit  1404
 FailureAudit     1
過去7日(PS C:\> $z | Group-Object EntryType | Format-Table Name,Count -auto)
 Name         Count
 —-         —–
 Information    577
 Error           30
 Warning         61
 0               10
 SuccessAudit  2958
 FailureAudit     3
 
 
 
 
 
 
 以前、「Small Business Server 2008 の通知設定をカスタムする」という記事を書きました。
 この時に設定した情報は、SBSMonitoring データベースにも記録されます。
 
 すなわち、SBSMonitoring データベースに記録された情報をSSASを使って分析することで、サーバーの状態を把握することができるようになります。
 
 6月に7つのカスタムアラートを追加設定しました(CA:で始まるアラート)。
 
 
 追加の結果、SBSMorintoring データベースにたまったデータを分析します。
 
 6月のSecurityの件数が大幅に増加しています。ここが今回設定されたアラートによってデータベースに記録された件数です。
 
 
 前月(5月)と当月(6月)を時間別発生件数(3時間ごと)を比較したもの。
 6(4時から6時)の件数(3,0382件)が多いことがわかります。
 
 
 SBSには、CompanyWeb  サイトがあります。このサイトをバックアップする方法はいくつかありますが、
 「SharePoint3.0 サーバーの全体管理」でバックアップすることをお勧めします。
 もちろん、STSADMコマンドでも大丈夫です。
 
 理由は 「CompanyWeb  サイト」だけを独自にバックアップすることができるからです。
 残念ながら、SBS管理コンソールからでは、サーバー全体バックアップしかできません。
 
 ということで、バックアップの手順です
 
 1.「サーバー構成の管理」にある、「バックアップと復元」の「バックアップを実行」をクリックします。
 
 
 2.バックアップする対象を選択し、「バックアップオプションへ」をクリックします。
 
 
 3.種類、場所を選択して、「OK」ボタンを押します。
 
 
 4.バックアップの状態が表示されます。
 
 
 6.バックアップの履歴を確認したところ。
 
 
 
今までは、以下の 14つを紹介しました。
 
 
今度は、無期限のパスワードが設定されているすべてのアカウントを取得してみましょう。これらのアカウントは次のコマンドで取得できます。
 
  PS AD:\> Search-ADAccount -PasswordNeverExpires | Format-Table -Property Name,ObjectClass -Auto
 
【SBS2003】
 Name             ObjectClass
 —-             ———–
 Administrator    user
 SUPPORT_388945a0 user
 IUSR_WSBS03      user
 IWAM_WSBS03      user
 Guest            user
【SBS2008】
 Name                     ObjectClass
 —-                     ———–
 Guest                    user
 IUSR_WIN-LIM8DXYTY8Z     user
 
 
今までは、以下の 13つを紹介しました。
 
 
今度は、パスワードの有効期限が切れているすべてのアカウントを取得してみましょう。これらのアカウントは次のコマンドで取得できます。
 
  PS AD:\> Search-ADAccount -PasswordExpired | Format-Table -Property Name,ObjectClass -Auto
 
 
 
 
 
 
今までは、以下の 12つを紹介しました。
 
 
今度は、一定期間(30日間)使用されていないすべてのアカウントを取得してみましょう。これらのアカウントは次のコマンドで取得できます。
 
  PS AD:\> Search-ADAccount -AccountInactive -TimeSpan 30.00:00:00 | Format-Table -Property Name,ObjectClass -Auto
 
【SBS2003】
 Name                                                ObjectClass
 —-                                                ———–
 Administrator                                       user
 Guest                                               user
 IUSR_WSBS03                                         user
 IWAM_WSBS03                                         user
 SUPPORT_388945a0                                    user
 WSBS03                                              computer
 krbtgt                                              user
 Mobile User Template                                user
 User Template                                       user
 Power User Template                                 user
 Administrator Template                              user
 Backup User                                         user
 STS Worker                                          user
 SystemMailbox{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} user
 win7                                                computer
【SBS2008】
 Name                     ObjectClass
 —-                     ———–
 Guest                    user
 IUSR_WIN-LIM8DXYTY8Z     user
 krbtgt                   user
 標準ユーザー             user
 ネットワーク管理者       user
 管理リンクの標準ユーザー user
 
 
今までは、以下の 11つを紹介しました。
 
 
今度は、無効になっているすべてのユーザー、コンピューター、およびサービス アカウントを取得してみましょう。これらのアカウントは次のコマンドで取得できます。
 
  PS AD:\> Search-ADAccount -AccountExpired | Format-Table -Property Name,ObjectClass -Auto
 
応用として、 有効期限が 6 日後に切れるすべてのユーザー、コンピューター、およびサービス アカウントを取得する場合のコマンドは次のとおりです。
 
  PS AD:\> Search-ADAccount -AccountExpiring -TimeSpan 6.00:00:00 | Format-Table -Property Name,ObjectClass -Auto
 

 

 
今までは、以下の 11つを紹介しました。
 
 
今度は、無効になっているすべてのユーザー、コンピューター、およびサービス アカウントを取得してみましょう。これらのアカウントは次のコマンドで取得できます。
 
  PS AD:\> Search-ADAccount -AccountDisabled | Format-Table -Property Name,ObjectClass -Auto
【SBS2003】
 Name                                                ObjectClass
 —-                                                ———–
 krbtgt                                              user
 Mobile User Template                                user
 User Template                                       user
 Power User Template                                 user
 Administrator Template                              user
 Backup User                                         user
 SystemMailbox{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} user
 SUPPORT_388945a0                                    user
 Guest                                               user
【SBS2008】
 Name                     ObjectClass
 —-                     ———–
 Guest                    user
 krbtgt                   user
 標準ユーザー             user
 ネットワーク管理者       user
 管理リンクの標準ユーザー user
 SBSMonAcct               user