Inutile donc indispensable. Snake !!!!!!!!!! Le lien gitHub ci dessous. Amusez vous bien 😉
New-CtmADKrbtgtKeys Réinitialisation mot de passe KERBEROS
Raaaa CA fait longtemps que j’avais pas pris le temps de déposer un petit article … (déménagement tous caaaaa) Vous trouverez ici un script d’un autre niveau mais accessible de Jared Poeppelman de Microsoft. https://gallery.technet.microsoft.com/Reset-the-krbtgt-account-581a9e51 Tout est très correctement réalisé et documenté. J’ai juste fait 2 modifications pour qu’il fonctionne en Francais, (pas d’erreur moche)…
Trouver des objets CNF dans un Active Directory
Définition d’un objet CNF (Technet) : « Résolution de la création d’objets contradictoires Dans le cas où deux objets sont créés avec le même nom, Active Directory utilise trois critères pour déterminer l’objet « gagnant ». Toutefois, l’objet « perdant » n’est pas remplacé. Au lieu de cela, l’objet perdant est renommé avec les caractères CNF (pour conflit), suivis de…
Connaître le dernier redémarrage des contrôleurs de domaines
On va commencer à attaquer des scripts pour l’administration de contrôleur de domaine (DC). Tout d’abord une commande cmd pour lister le nom de tous les contrôleurs :
1 |
DSQuery Server -o rdn > C:\Temp\DCList.TXT |
On enregistre le résultat dans un fichier. Ensuite pour chaque résultat de ce fichier on va appeler le WMI « Win32_OperatingSystem » Des conversions de date, et…
Nettoyer logs windows
Et la on triche ! un .bat … Je ne maîtrise pas son contenu, mais il est très pratique, il efface l’intégralité de tous les journaux Windows. Ça a plusieurs utilités 😉
1 2 3 4 5 6 7 8 9 10 11 12 |
@echo off FOR /F "tokens=1,2*" %%V IN ('bcdedit') DO SET adminTest=%%V IF (%adminTest%)==(Access) goto noAdmin for /F "tokens=*" %%G in ('wevtutil.exe el') DO (call :do_clear "%%G") echo. echo goto theEnd :do_clear echo clearing %1 wevtutil.exe cl %1 goto :eof :noAdmin exit |
Faites-en bon usage.
Message box
Un popup ! Mais pour la bonne cause ! Du powershell, qu’on peut transformer en .exe avec une jolie icone ! Le code est commenté. Un fonction pour cacher la console, une autre pour la fenêtre avec le message. On peut trouver d’autre application bien-sur.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
#Ci-dessous pour cacher la console Add-Type -Name Window -Namespace Console -MemberDefinition ' [DllImport("Kernel32.dll")] public static extern IntPtr GetConsoleWindow(); [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hWnd, Int32 nCmdShow); ' function Show-Console { $consolePtr = [Console.Window]::GetConsoleWindow() # Hide = 0, # ShowNormal = 1, # ShowMinimized = 2, # ShowMaximized = 3, # Maximize = 3, # ShowNormalNoActivate = 4, # Show = 5, # Minimize = 6, # ShowMinNoActivate = 7, # ShowNoActivate = 8, # Restore = 9, # ShowDefault = 10, # ForceMinimized = 11 [Console.Window]::ShowWindow($consolePtr,0) } Show-Console function Show-Message { param ( [string]$MESSAGE, [string]$TITRE, [switch]$OKCancel, [switch]$AbortRetryIgnore, [switch]$YesNoCancel, [switch]$YesNo, [switch]$RetryCancel, [switch]$IconErreur, [switch]$IconQuestion, [switch]$IconAvertissement, [switch]$IconInformation ) # Affecter la valeur selon le type de boutons choisis if ($OKCancel) { $Btn = 1 } elseif ($AbortRetryIgnore) { $Btn = 2 } elseif ($YesNoCancel) { $Btn = 3 } elseif ($YesNo) { $Btn = 4 } elseif ($RetryCancel) { $Btn = 5 } else { $Btn = 0 } # Affecter la valeur pour l'icone if ($IconErreur) {$Icon = 16 } elseif ($IconQuestion) {$Icon = 32 } elseif ($IconAvertissement) {$Icon = 48 } elseif ($IconInformation) {$Icon = 64 } else {$Icon = 0 } # Charger la biblithèque d'objets graphiques Windows.Forms [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null # Afficher la boite de dialogue et renvoyer la valeur de retour (bouton appuyé) $Reponse = [System.Windows.Forms.MessageBox]::Show($MESSAGE, $TITRE , $Btn, $Icon) Return $Reponse } $IP = (Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object {($_.IPEnabled -eq $true) -and ($_.DHCPEnabled -eq $true)} | Select IPAddress).IPAddress $IP=$IP -split("\n") $IP = $IP[0] $TITRE = 'Service Informatique' $COMPUTERNAME = (Get-Item env:\COMPUTERNAME).value $MESSAGE = "Message du Service Informatique : Votre ADRESSE IP : $IP Nom du PC : $COMPUTERNAME ------------------------- Probleme 1 : 08 45 28 01 01 Probleme 2 : 08 45 28 01 02 / sav@mondomain.tld ------------------------- ------------------------- Autres demandes service informatique : Mail (en priorité) : sav@mondomain.tld Téléphone en Interne : 121212 Téléphone en Externe : 08 45 28 01 03 Merci. " Show-Message -Message $MESSAGE -Titre $TITRE -IconQuestion |
Cette commande pour afficher l’ip fonctionne sur un…
Suppression d’un profil sur une ferme RDS
Un petit script de plus ! Bon les fermes RDS c’est sympa, mais il arrive de temps en temps qu’il faille supprimer un profil pour repartir sur de bonne base. Si la ferme a 15 serveurs : connexion à distance, supprimé le profil dans une fenêtre hasardeuse x15 ?? Ah non ! Powershell à …
Récupérer licence Windows et information de l’OS
Nouvelle catégorie : Technet. Je vais déposer des scripts sympas trouver sur le site de Microsoft. Celui-ci je l’ai simplifié et rendu fonctionnel :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
function Get-ProductKey { <# .SYNOPSIS Information clef produit et système d'exploitation. .DESCRIPTION A l'aide des commandes WmiObject récupération des informations de windows et de la licence. .PARAMETER Computername Nom du pc local ou du pc distant. .NOTES Author: Boe Prox modification Naylo :) Version: 1.0 .EXAMPLE Get-ProductKey -Computername Server1 OSDescription Computername OSVersion ProductKey ------------- ------------ --------- ---------- Microsoft(R) Windows(R) Server 2003, Enterprise Edition Server1 5.2.3790 bcdfg-hjklm-pqrtt-vwxyy-12345 Description ----------- Clef d'activation de 'Server1' #> [cmdletbinding()] Param ( [parameter(ValueFromPipeLine=$True,ValueFromPipeLineByPropertyName=$True)] [Alias("CN","__Server","IPAddress","Server")] [string[]]$Computername = $Env:Computername ) Begin { $map="BCDFGHJKMPQRTVWXY2346789" } Process { ForEach ($Computer in $Computername) { Write-Verbose ("{0}: Test de la connectivité" -f $Computer) If (Test-Connection -ComputerName $Computer -Count 1 -Quiet) { Try { Write-Verbose ("{0}: Informations OS" -f $Computer) $OS = Get-WmiObject -ComputerName $Computer Win32_OperatingSystem -ErrorAction Stop } Catch { $OS = New-Object PSObject -Property @{ Caption = $_.Exception.Message Version = $_.Exception.Message } } Try { $ProductKey = "" Write-Verbose ("{0}: Récupération de la clef produit" -f $Computer) $ProductKey = (Get-WmiObject -query ‘select * from SoftwareLicensingService’).OA3xOriginalProductKey } Catch { $ProductKey = $_.Exception.Message } $object = New-Object PSObject -Property @{ Computername = $Computer ProductKey = $ProductKey OSDescription = $os.Caption OSVersion = $os.Version } $object.pstypenames.insert(0,'ProductKey.Info') $object } Else { $object = New-Object PSObject -Property @{ Computername = $Computer ProductKey = 'Unreachable' OSDescription = 'Unreachable' OSVersion = 'Unreachable' } $object.pstypenames.insert(0,'ProductKey.Info') $object } } } } #Get-ProductKey -Verbose |
On récupère donc OS et sa version et la fameuse clef produit. Vous pouvez également utiliser directement cette commande sur votre poste pour simplifier :
1 |
powershell "(Get-WmiObject -query ‘select * from SoftwareLicensingService’).OA3xOriginalProductKey" |
Le petit plus…
Problème recherche boite mail office 365
Une petite astuce : J’ai eu un utilisateur qui n’arrivait plus a effectuer de recherche sur l’interface. Après une courte recherche, on voit que migrer la boite résout le souci :
1 2 3 4 5 6 7 8 9 |
$Session = New-PSSession -ConfigurationName Microsoft.Exchange ` -ConnectionUri https://outlook.office365.com/powershell-liveid/ ` -Credential $UserCredential -Authentication Basic -AllowRedirection #Déplace la boite: New-MoveRequest "mail.utilisateur@mondomain.tld" #Pour connaitre l'avancement: MoveRequestStatistics "mail.utilisateur@mondomain.tld" |
Attention ça peut être long … Voila, une ré-indexation toute propre.
Création affichage dynamique Raspberry
Une petite procédure pour créer un écran d’affichage sur votre Raspberry : i. Installation Téléchargement de l’ISO d’Ubuntu mate pour Raspberry https://ubuntu-mate.org/download/ Version actuelle 16.04.LTS, prendre la version pour Raspberry. L’utilitaire pour créer l’image bootable sur la microcarte SD est « Win32 Disk Manager ». Un adaptateur micro SD – USB est utilisé pour branché la…