2016-04-27 4 views
0

Ich bin neu in Powershell und ich stehe fest, versuchen, diese herauszufinden. Wir migrieren zu Office 365, und es war ein Kopfzerbrechen, nicht unbedingt von Microsoft oder unserem Provider, aber wir hatten viel Spaß daran, dass dies zu unseren Gunsten funktioniert.Powershell: Pipe-Ausgabe von Get-ADUser in Set-MsolUserLicense

Ich habe eine CSV von Benutzern, die ich ihre Lizenz in O365 von einem Produkt entfernen und sie für ein anderes Produkt lizenzieren muss. Ich versuche das als zwei "Einzeiler" zu machen und ich bin verloren. Hier ist, was ich bisher:

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

Die CSV hat einen Header von ‚user‘ und ein paar Benutzerdatensätzen als nur ihre Kontonamen. Wenn ich den Befehl bis zur Ausgabe der Select-Funktion überprüfe, funktioniert alles korrekt, es ist die Verrohrung dieser Ausgabe in Set-MsolUserLicense, die nicht funktioniert.

Antwort

1

Ich habe einen Weg, es nicht sofort zu testen, aber es sollte

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

Pro Hilfe-Informationen für Set-MsolUserLicense

-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 

Parameter Userprincipalname akzeptiert von Pipelineeingaben wie diese funktionieren und ByPropertyName, da Get-ADUser die Eigenschaft dieses Namens für Sie bereitstellt, wenn Sie ihn an Set-MsolUserLicense übergeben, sollte er in der Lage sein, den korrekten Wert automatisch zu verwenden.

+0

Das schien zu funktionieren. Ich sehe weiterhin einen Fehler in Bezug auf eine ungültige Lizenz, aber anscheinend werden die Änderungen trotzdem vorgenommen. Vielen Dank! – Andrew