Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

Intune : LAPS – Création du compte admin local

Afin de créer le compte admin local pour qui sera utilisé pour LAPS, nous pouvons utiliser un script de remédiation Intune.

Script de détection :

Start-Transcript -Path "$env:ProgramData\Microsoft\IntuneManagementExtension\Logs\LAPSLocalAdmin_Detect.log" -Append

$LAPSAdmin = "Laps"

$Query = Get-WmiObject -Class Win32_UserAccount -Filter "LocalAccount=True"

$Group = Get-WmiObject -Query "Select * From Win32_Group Where LocalAccount = TRUE And SID = 'S-1-5-32-544'"

$Members=$group.GetRelated("win32_useraccount")

If ($Query.Name -notcontains $LAPSAdmin) {

    Write-Output "User: $LAPSAdmin does not existing on the device"
        
    Exit 1

}
Elseif ($Members.Name -notcontains $LAPSAdmin) {

    Write-Output "User $LAPSAdmin created but not member of the group"

    Exit 1
       
    
}
Else {
    
    Write-Output "User $LAPSAdmin exists on the device and member of the group"

    Exit 0
}
Stop-Transcript

Script de remédiation :

<pre class="wp-block-syntaxhighlighter-code">Start-Transcript -Path "$env:ProgramData\Microsoft\IntuneManagementExtension\Logs\LAPSLocalAdmin_Remediate.log" -Append

$LAPSAdmin = "Laps"

$Query = Get-WmiObject -Class Win32_UserAccount -Filter "LocalAccount=True"

$Group = Get-WmiObject -Query "Select * From Win32_Group Where LocalAccount = TRUE And SID = 'S-1-5-32-544'"

$GroupName = $Group.Name

$Members=$group.GetRelated("win32_useraccount")

If ($Query.Name -notcontains $LAPSAdmin) {

    Write-Output "User: $LAPSAdmin does not existing on the device, creating user"
    
    try {
       
        $password = "fO%B2vcr36+sj2v}<£]L"

        Net User /Add $LAPSAdmin $password /Y
        Write-Output "Added Local User $LAPSAdmin"


        net localgroup $GroupName $LAPSAdmin /add
        Write-Output "Added Local User $LAPSAdmin to Administrators"
        Exit 0

    }
    catch {
        Write-Error "Couldn't create user"
        Exit 1
    }

}
Elseif ($Members.Name -notcontains $LAPSAdmin) {

try {
       
        
        Write-Output "Added Local User $LAPSAdmin"

        net localgroup $GroupName $LAPSAdmin /add
        Write-Output "Added Local User $LAPSAdmin to Administrators"
        Exit 0

    }
    catch {
        Write-Error "Couldn't add user in the group"
        Exit 1
    }

}


Else {
    Write-Output "User $LAPSAdmin exists on the device"
    Exit 0
}

Stop-Transcript</pre>

 

Intune : Lister les version Adobe Acrobat Pro via un script de remédiation

Le script ci-dessous peut être utilisé comme un script de remédiation dans Intune.
Seule la partie « Script de détection » sera configurée afin d’avoir la liste des appareils qui ont une version Adobe Acrobat Pro installée.
 
$regkey64 = "HKLM:\SOFTWARE\Adobe\Adobe Acrobat\DC\Installer"
$regkey32 = "HKLM:\SOFTWARE\WOW6432Node\Adobe\Adobe Acrobat\DC\Installer"
$name64 = "ProductCode"
$name32 = "ENU_GUID"
    try
    {
        $exists64 = Get-ItemProperty $regkey64 $name64 -ErrorAction SilentlyContinue
        $exists32 = Get-ItemProperty $regkey32 $name32 -ErrorAction SilentlyContinue
        #Write-Host "Test-RegistryValue: $exists32"
        if ($exists64.ProductCode -eq "{AC76BA86-1033-FFFF-7760-BC15014EA700}")
        {
            Write-Host "Adobe Acrobat Pro 64"
            exit 1
        }
        elseif ($exists32.ENU_GUID -eq "{AC76BA86-1033-FFFF-7760-0C0F074E4100}")
        {
            Write-Host "Adobe Acrobat Pro 32"
            exit 1
        }
        else
        {
            Write-Host "Adobe Acrobat Reader"
            exit 0
        }
    }
    catch
    {
        return $false 
    }
Après l’exécution du script de détection sur tous les appareils Windows concernés, il suffit d’aller sur le « Devices status » :
– Ajouter la colonne « Pre-remediation detection output » pour afficher les version d’Adobe Pro
– Filtrer les appareils ‘With issues’ dans la colonne « Detection status »
 
 

Powershell : Lister les règles dans une boite aux lettre Exchange Online

De temps en temps, des équipes de sécurité détectent des règles de transfert de courrier électronique en dehors de l’entreprise et souhaitent les neutraliser.

Dans certain cas la règle de transfert peut être neutralisée directement depuis le portail d’administration mais, dans d’autres cas ce n’est pas possible (règle créer directement depuis le client outlook par exemple); c’est a ce moment qu’on me demande de trouver et neutraliser la règle.

Pour ce faire rien de plus simple, il faut :

  1. Se connecter à Exchange online avec les bonnes permissions.
  2. Identifier la boite en question.
  3. Rechercher les règles sur la boite.
  4. Identifier celle qui dérange.
  5. La supprimer.

A l’aide de Powershell connectez vous à Exchange Online

Connect-ExchangeOnline

Identifier la boite aux lettres que vous souhaitez cibler, j’utilise de préférence la « PirmarySMTPAddress », puis faite une recherche des règles sur la boite via :

Get-InboxRule -Mailbox xxxxxxx@xxxxxxxx.xxx

Il se peut que la commande retourne plusieurs règles, dans ce cas prenez le temps de parcourir le champs « Description » de chacune pour comprendre ce que chaque règle fait; il est également possible de vérifier directement les champs « ForwardAsAttachmentTo » et « ForwardTo » pour voir vers quelle adresse est renvoyé le mail.

Une fois cette dernière identifiée, récupérez son attribut « RuleIdentity » et lancez la commande suivante en prenant soin de remplacer les « 0000000000000 » par la valeur RuleIdentity que vous avez récupéré.

 Remove-InboxRule -Mailbox xxxxxxxxxxx@xxxxxxx.xxx -Identity 0000000000000 -Confirm:$false