Résolu Renseigner dans un fichier csv les postes qui ont des clés bitlocker

Plus d'informations
il y a 11 mois 1 semaine - il y a 11 mois 1 semaine #33418 par Matthieu
Bonjour,
J'ai créé un script qui permet de vérifier dans mon AD qu'un poste existe bien et s'il existe contrôler qu'il possède bien une clé de récupération bitlocker et m'afficher cette clé.
Jusque pas de soucis cela fonctionne. Voilà le script :
# va chercher dans AD la Clef de Récupération Bitlocker d'un poste
do{
    $COMPUTERNAME=Read-Host -prompt 'Entrer le nom du PC'
    $objComputer = Get-ADComputer -filter { name -eq $COMPUTERNAME } 
    if(! $objComputer) { Write-host  -ForegroundColor DarkYellow 'PC introuvable dans AD' }
}until(  $objComputer)
      
$Bitlocker_Object = Get-ADObject -Filter {objectclass -eq 'msFVE-RecoveryInformation'} -SearchBase $objComputer.DistinguishedName -Properties 'msFVE-RecoveryPassword'
#$Bitlocker_Object

if($Bitlocker_Object){
    #récupère les codes bitlocker et n'affiche que le plus récent
    $Bitlocker_Object|select-object -property msFVE-RecoveryPassword, Name
}else
{
    Write-host  -ForegroundColor DarkYellow 'Aucune clef de récupération trouvée dans AD'
}
#$Bitlocker_Object

Le soucis c'est que je dois à chaque fois le faire l'un après l'autre sur chaque poste.
J'aimerais modifier ce script mais je galère.
Deux modifications :
1. au lieu de saisir le numéro de poste ouvrir une box pour y mettre une liste de poste l'un en dessous de l'autre
2. contrôler la présence de la clé (inutile de l'afficher) et si la clé existe renseigner un fichier c:\temp\resultat.csv avec l'hostname des postes qui ont une clé.

Merci d'avance.
Dernière édition: il y a 11 mois 1 semaine par Arnaud Petitjean. Raison: Mise en forme du code avec la balise [code]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 mois 1 semaine - il y a 11 mois 1 semaine #33420 par Arnaud Petitjean
Bonjour Matthieu,

Sois le bienvenu dans le forum. Pourrais-tu te présenter STP dans le forum adhoc ? Merci

Pourquoi demander la saisie interactive du nom du PC ?
Il faut que tu crées un fichier texte brut ou un fichier CSV et que tu mettes tes machines dedans.

Ensuite il te suffira de charger en mémoire tes données puis une boucle Foreach fera le reste.

Exemple de fichier tout simple, qu'on appellera ListSrv.txt :
SRV0001
SRV0002
SRV0003


Ensuite, petite adaptation de ton code : 

$Servers = Get-Content c:\temp\ListSrv.txt
Foreach ($srv in $Servers) {
    $objComputer = Get-ADComputer -filter { name -eq $srv } 
    if(! $objComputer) { Write-host  -ForegroundColor DarkYellow 'PC introuvable dans AD' }
else {
$Bitlocker_Object = Get-ADObject -Filter {objectclass -eq 'msFVE-RecoveryInformation'} -SearchBase $objComputer.DistinguishedName -Properties 'msFVE-RecoveryPassword'
if ($Bitlocker_Object){    
  #récupère les codes bitlocker et n'affiche que le plus récent    
  $Bitlocker_Object | select-object -property msFVE-RecoveryPassword, Name
  }
  else {    
  Write-host  -ForegroundColor DarkYellow 'Aucune clef de récupération trouvée dans AD' }
}
}

Essaie déjà ça. Un pas après l'autre... 

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Dernière édition: il y a 11 mois 1 semaine par Arnaud Petitjean.
Les utilisateur(s) suivant ont remercié: Matthieu

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 mois 1 semaine #33423 par Matthieu
Top effectivement je récupère les clés. J'ai modifié pour récupérer les hostname ça semble fonctionner... 

Donc en modifiant le script pour récupérer les hostnames dans un fichier ça donne ça :
#Efface l'ancien résultat
$cheminFichier = "C:\Temp\PostesBitlockes.csv"

# Vérifiez si le fichier existe avant de tenter de le supprimer
if (Test-Path $cheminFichier) {
    # Supprime le fichier
    Remove-Item -Path $cheminFichier -Force
    Write-Output "Le fichier a été supprimé avec succès."
} else {
    Write-Output "Le fichier n'existe pas dans le chemin spécifié."
}


#Génère un fichier PostesBitlockes.csv dans c:\temp avec la liste des postes bitlockés
$ListePostes = Get-Content c:\temp\Hostname.txt
Foreach ($Postes in $ListePostes) {
    $objComputer = Get-ADComputer -filter { name -eq $Postes } 
    if(! $objComputer) { Write-host  -ForegroundColor DarkYellow 'PC introuvable dans AD' }
else {
$Bitlocker_Object = Get-ADObject -Filter {objectclass -eq 'msFVE-RecoveryInformation'} -SearchBase $objComputer.DistinguishedName -Properties 'msFVE-RecoveryPassword'
if ($Bitlocker_Object){    
  #récupère les codes bitlocker et n'affiche que le plus récent    
  $Postes >> C:\Temp\PostesBitlockes.csv
  }
  else {    
  Write-host  -ForegroundColor DarkYellow 'Aucune clef de récupération trouvée dans AD' }
}
}

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 mois 1 semaine #33425 par Arnaud Petitjean
Parfait si ça fonctionne ! 

Mais n'oublies pas de te présenter STP. C'est par principe. 

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 mois 1 semaine #33427 par Matthieu
Je viens de le faire.
Des livres à me conseiller ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 mois 1 semaine #33429 par Arnaud Petitjean

Je viens de le faire.

Merci à toi !

Des livres à me conseiller ?

Oui, bien sûr ! Regarde l'annonce que je viens de faire. Tu ne peux pas mieux tomber ! 

Lancement de ma première formation hybride

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.114 secondes
Propulsé par Kunena