2016-04-12 5 views
0

ユーザーリストにO365ライセンスを割り当てるスクリプトを取得しようとしています。私はここで何が欠けていますか? SamAccountNameの長さとユーザーが作成された日付に基づいて、作業するユーザーのリストを取得します。そのリスト内の各ユーザを見て、それが偽であればそれをO365ライセンスに割り当てるにはどうしたらいいですか? IF文は理想的ですか?ユーザーのリストに0365ライセンスを割り当てます。

Import-Module ActiveDirectory 
$date = (Get-Date).ToString() 
$month = (Get-Date).AddDays(-4) 

$NewUser = Get-ADuser -Filter * -Properties * | Where { ($_.samaccountname.length -eq 3 -and $_.whencreated -ge $month) } | Select-Object SamAccountName, UserPrincipalName, whencreated 

Import-Module MSOnline 
Connect-Module -Cred $User 
foreach ($item in $NewUser) {Get-MsolUser -UserprincipalName $NewUser | where {$_.isLicensed -eq $false} 
Set-MsolUserLicense -UserPrincipalName $NewUser.UserPrincipalName -AddLicenses $NewUser.licensetype 

}

答えて

0

文が右である場合に使用します。以下を参照してください:

foreach($user in $NewUser){ 

$AccountInfo = Get-MsolUser -UserPrincipalName $user.UserPrincipalName -ErrorAction Stop 

$CurrentAccountSku = $AccountInfo.Licenses.AccountSkuId 


if($CurrentAccountSku -ne $null) 
{ 
Set-MsolUserLicense -UserPrincipalName $user.UserPrincipalName -AddLicenses 'contoso:ENTERPRISEPACK' -ErrorAction Stop 
} 

} 

ここには、さまざまなSkusをOffice 365ユーザーアカウントに追加するためのブログがあります。 http://blogs.technet.com/b/treycarlee/archive/2013/11/01/list-of-powershell-licensing-sku-s-for-office-365.aspx

+0

ありがとうございました!これは明らかにした。ちょうど私は文法に何が起こっているのかを理解しています..... $ CurrentAccountSku = $ AccountInfo.Licenses.AccountSkuIdの=記号の右側に書かれている構文はなんですか? $ AccountInfoのインスタンスごとに、それぞれのアカウントのAccountSkuidオブジェクトを見ていますか?すべてこれは$ CurrentAccountSkuに格納されているので、私はその部分を取得します。 –

+0

** foreachの($ NewADUsersの$ユーザ){ ($ user.isLicensed -eq $偽)なら、{ セットMsolUserLicense -UserPrincipalName $ user.UserPrincipalName -AddLicenses ....ら }} **これは希望有効な声明ですか? –

+0

ご迷惑をおかけしました。 $ NewADUsersの$ユーザーは、ADユーザーオブジェクトです。ライセンスには属性が必要ありません。このようにスクリプトを変更することができます。foreach($ NewADUsersの$ user){$ user = Get-MsolUser -UserPrincipalName $ user.UserPrincipalName -ErrorAction Stop; if($ user.isLicensed -eq $ false){Set-MsolUserLicense -UserPrincipalName $ user.UserPrincipalName -AddLicenses 'contoso:ENTERPRISEPACK'}}。 $ user.License.AccountSkuIdの値は、ここでは「contoso:ENTERPRISEPACK」と等しくなります。 –

関連する問題