Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

[Office 365] – Forcer la création de OneDrive

Par défaut lorsque vous créez un utilisateur sur Azure AD et que vous lui attribuez une licence Office (F3, E3, E5) le OneDrive n’est pas créé directement; en effet ce dernier n’est provisionné que lorsque l’utilisateur cliquera sur Onedrive lors de sa connexion.

Lorsque vous souhaitez réaliser une migration O365 ce sujet peut être une problématique, car si les Onedrive ne sont pas créés vous pourrez difficilement lancer une migration en amont.

Il est possible de contourner ce sujet en utilisant les commandes Powershell suivantes (avec les droits minimum de « SharePoint Online administrator ») :

# Conect To Sharepoint Online
Connect-SPOService -Credential $Credential -Url https://XXXXX-admin.sharepoint.com

Prenez soin de remplacer l’url de connexion par la votre.

Ensuite vous pouvez soit fournir une liste d’utilisateur, soit récupérer l’ensemble des utilisateurs possédant une licence (ici nous importons une liste) et, lancer les requêtes de création.

# Import Users
$users = Import-Csv C:\Temp\Users.csv 

# Start Request
foreach ($u in $users) {
    $upn = $u.userprincipalname
    $list += $upn

    if ($i -eq 199) {
        #We reached the limit
        Request-SPOPersonalSite -UserEmails $list -NoWait
        Start-Sleep -Milliseconds 655
        $list = @()
        $i = 0
    }
}

 

[Powershell] – Etat des lieux des licences O365

Besoin d’avoir un état des lieux de vos licences O365 (voir de l’automatiser) ?

Voici quelques lignes Powershell qui vous remontrons les informations.

Prérequis:

Vous aurez besoin de:

  • Powershell 5.1
  • Le module Azure AD

Code :

Connect-AzureAD
$Array = @()
$AllSKU = Get-AzureADSubscribedSku

$AllSKU | sort SkuPartNumber | foreach {
    $SkuPartNumber = $_.SkuPartNumber
    $Bought = $_.PrepaidUnits.enabled
    $Suspended = $_.PrepaidUnits.Suspended
    $Warning = $_.PrepaidUnits.Warning
    $Assigned = $_.ConsumedUnits
    $Rest = $Bought - $Assigned

    $Array += New-Object psobject -Property @{
        License = $SkuPartNumber
        Bought = $Bought
        Assigned = $Assigned
        Will_Expired = $Warning
        Suspended = $Suspended
        Rest = $Rest
        }
    $SkuPartNumber = $null
    $Bought = $null
    $Assigned = $null
    $Warning = $null
    $Suspended = $null
    $Rest = $null
        
    }

$Array | FT License,Bought,Assigned,Will_Expired,Suspended,Rest
$Array | Export-Csv C:\temp\Licenses.csv -Delimiter ";" -Encoding UTF8 -NoTypeInformation

 

Bien entendu, pour l’automatiser il faudra modifier l’authentification et passer par de la moderne authentification (via un SPN).

Autoriser les utilisateurs non administrateurs locaux à gérer les services à distance

Une erreur de sécurité courante consiste à configurer les services pour utiliser un descripteur de sécurité trop permissif, et ainsi accorder par inattention l’accès et la gestion des services à plus d’appelants distants que prévu.

Depuis les versions Windows 10 version 1709 et Windows Server 2016 version 1709, Microsoft avait appliqué une nouvelle politique de sécurité. En vertu de cette nouvelle politique, seuls les administrateurs locaux peuvent gérer les services à distance. En effet, un nouveau paramètre de sécurité du système a été introduit qui exige que les appelants distants soient également des administrateurs locaux sur l’ordinateur pour pouvoir demander la liste des autorisation de service suivante :

  • SERVICE_CHANGE_CONFIG
  • SERVICE_START
  • SERVICE_STOP
  • SERVICE_PAUSE_CONTINUE
  • SUPPRIMER
  • WRITE_DAC
  • WRITE_OWNER

Le nouveau paramètre de sécurité requiert également que les appelants distants soient des administrateurs locaux sur l’ordinateur pour demander l’autorisation de gestionnaire de contrôle de service suivante :

  • SC_MANAGER_CREATE_SERVICE

Ce paramètre a été introduit à partir de Windows 10 version 1709 et de Windows Server 2016 version 1709. Par défaut, le paramètre est activé.

Cette nouvelle vérification peut causer des problèmes à certains clients dont les services reposent sur la possibilité pour les non-administrateurs de les démarrer ou de les arrêter à distance. Si nécessaire, vous pouvez exclure certains services de cette stratégie en ajoutant le nom du service à la valeur de registre RemoteAccessCheckExemptionList REG_MULTI_SZ à l’emplacement de registre suivant :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\SCM

Pour le faire, veuillez choisir une des deux méthodes suivantes :

Méthode 1 : Par interface graphique 

  1. Dans le menu démarrer , accédez à la console regedit.exe .
  2. Recherchez et sélectionnez la sous-clé suivante dans le Registre :

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\SCM

    Remarque 
     Si la sous-clé n’existe pas, vous devez la créer : Dans le menu Edition , sélectionnez  Nouveau , puis sélectionnez  Clé . Tapez le nom de la nouvelle sous-clé, puis appuyez sur Entrée.
  3. Dans le menu Edition , pointez sur Nouveau , puis sélectionnez  Valeur REG_MULTI_SZ .
  4. Tapez RemoteAccessCheckExemptionList  pour le nom de la valeur REG_MULTI_SZ, puis appuyez sur ENTRÉE.
  5. Double-cliquez sur la valeur RemoteAccessCheckExemptionList , saisissez le nom du service à exempter de la nouvelle stratégie, puis cliquez sur OK .
  6. Quittez l’Éditeur du Registre, puis redémarrez l’ordinateur.

Méthode 2 : Par commandes PowerShell

#récuperer le contenu de la clé de registre
$services = (Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\SecurePipeServers\SCM).RemoteAccessCheckExemptionList

#définir la liste des services à exclure de la politique de sécurité
$newservices= 'spooler','LPDSVC' 

#ajouter la nouvelle liste de services
foreach ($newsvc in $newservices)
{
$services += $newsvc +" "
}

#reconfigurer la clé de registre
Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\SecurePipeServers\SCM -Name RemoteAccessCheckExemptionList -Value $services -Type Multistring