2016-04-27 22 views
0

私はPowershellに新しくて、私はこれを理解しようとしています。私たちはOffice 365に移行しており、必ずしもMicrosoftやプロバイダからの頭痛ではありませんでしたが、私たちはこれをうまく機能させるために「楽しい」ことがたくさんありました。Powershell:Set-MsolUserLicenseへのGet-ADUserのパイプ出力

私は、ある製品からO365のライセンスを削除し、別の製品のライセンスを再取得する必要があるユーザーのCSVを持っています。私は2つの「1ライナー」としてこれをやろうとしていて、私は失われています。ここで私がこれまで持っているものです。

Import-Csv "C:\Users\myuser\Desktop\convert.csv" | ForEach-Object {Get-ADUser -Identity $_.user | select UserPrincipalName | Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicenses "mycorp:ENTERPRISEDESKLESS"} 

CSVは、ちょうど彼らのアカウント名として「ユーザー」のヘッダといくつかのユーザレコードを持っています。 Select関数の出力までコマンドをチェックすると、すべて正常に動作しています。その出力がSet-MsolUserLicenseにパイプされていて動作していません。

答えて

1

パラメータUserPrincipalNameをパイプラインからの入力を受け付けている

-UserPrincipalName <string> 
    The user ID of the user to update. 

    Required?     true 
    Position?     named 
    Default value     
    Accept pipeline input?  true (ByPropertyName) 
    Accept wildcard characters? false 

私は今、それをテストする方法はありませんが、それは、Set-MsolUserLicenseのヘルプ当たり情報この

Import-Csv "C:\Users\myuser\Desktop\convert.csv" | ForEach-Object {Get-ADUser -Identity $_.user | Set-MsolUserLicense -RemoveLicenses "mycorp:ENTERPRISEDESKLESS"} 

のように動作するはずですし、 ByProcessyNameはSet-MsolUserLicenseにパイプするときにGet-ADUserがその名前のプロパティを提供するので、自動的に正しい値を使用できるはずです。

+0

これはうまくいきました。私は無効なライセンスについてのエラーを見ていますが、それは変更に関係なく作っているようです。ありがとう! – Andrew

関連する問題