2011-07-28 21 views
1

私はpowershellを初めて使用しています。以前はこのスクリプト言語に触れていませんでした。しかし、私はperlとbashスクリプトにいくつかの背景を持っています。私は、ExchangeサーバーのDGのリストを取得する小さなスクリプトを実装しようとしており、現在の年に対応する特定の文字列を持つグループのみを取得するために結果をフィルタリングします。Powershell:配布グループの完全なリストを取得する方法

例:この場合は2011年を確認してください。 フィルタ名に 'P11'が含まれています 最後のDG名のみを返し、最初の7文字を解析します。

交換サーバーからpowershellを使ってどうすればいいですか?ここで私が得たものである:これは、次のエラーが発生し

add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010 

# Retrieve all DGs 
$temp = Get-DistributionGroup -ResultSize Unlimited | 

foreach($group in $temp) 
{ 
write-output "GroupName:$group " 
Write-output "GroupMembers:" 
Get-DistributionGroupMember $group |ft displayname,alias,primarysmtpaddress 
write-output ‘ ‘ 

} 

Unexpected token 'in' in expression or statement. At C:\Users\jfb\Desktop\NewGroupProject.ps1:7 char:18 + foreach($group in <<<< $temp) + CategoryInfo : ParserError: (in:String) [], ParseException + FullyQualifiedErrorId : UnexpectedToken

答えて

1

としてforeachを処理していることです。 Get-Dateを使用して日付オブジェクトを作成し、アスタリスクで囲まれた年の最後の2桁を日付にフォーマットします。これは、Get-DistributionGroupコマンドレットのワイルドカードです。最後のDGオブジェクトを選択し、その名前を展開します。

$name = Get-Date -Format *Pyy* 
$group = Get-DistributionGroup $name | Select-Object -Last 1 -ExpandProperty Name 

if($group) 
{ 
    $group.Substring(0,7) 
} 
+0

ありがとう!あなたもそれを助けることができれば私の他の質問を見てください、それは素晴らしいでしょう! –

2

はライン$temp = Get-DistributionGroup -ResultSize Unlimited |で末尾|を削除し、それが正常に動作する必要があります。何が起こっている

あなたが|を持っていたので、それは(テストしていない)、これを試してみてくださいforeach-object

関連する問題