Le site vient d'atteindre les 100000 hits. Cette année 2020 à connu une hausse significatif du nombre de visite. Les articles les plus visités sont les expressions régulières, les fichiers, les listes déroulantes. Les visiteurs viennent principalement cette année de France, Hong Kong, Etats-Unis. Merci à tous !
mercredi 21 octobre 2020
lundi 10 août 2020
Alternate Data Stream
Introduction.
Alternate Data Stream (ADS) est un flux de données additionnels lié à un fichier. Habituellement nous utilisons le flux principale pour lire ou écrire un fichier. Avec l'ADS nous pouvons créer des flux de données alternatifs distincts au sein d'un même fichier.
Prenons par exemple, le fichier "test.txt". Ce fichier peut contenir plusieurs textes distincts :
[Test.txt] "Je suis dans le flux principale par défaut."
[Test.txt:Flux1] "Je suis dans le flux 'Flux1'."
[Test.txt:Flux2] "Je suis dans le flux 'Flux2'."
Un peu de pratique pour comprendre tout ça ne fera pas de mal :
- Lancez la commande "Notepad C:\test.txt", et entrez le texte "Je suis dans le flux principale par défaut.". Si vous ouvrez le fichier depuis l'explorateur vous verrez le texte que vous avez entré.
- Lancez la commande "Notepad C:\test.txt:Flux1", et entrez le texte "Je suis dans le flux 'Flux1'". Si vous ouvrez le fichier depuis l'explorateur vous ne verrez pas le texte que vous avez entré, mais celui du du flux par défaut. Pour voir le texte du 'Flux1' vous devrez taper de nouveau la commande "Notepad C:\test.txt:Flux1".
- Lancez la commande "Notepad C:\test.txt:Flux2", et entrez le texte "Je suis dans le flux 'Flux2'". La encore si vous ouvrez le fichier depuis l'explorateur vous ne verrez pas le texte que vous avez entré, mais celui du flux par défaut. Les textes que vous avez tapé dans le Flux1 et dans le Flux2 sont donc "cachés".
Caché ? Peut-être pas tant que ça :
- Sous DOS, lancez la commande "Dir". Seul le fichier "test.txt" apparait.
- Sous DOS, lancez la commande "Dir /r". Les flux "teste.txt:Flux1" et "teste.txt:Flux2" liés au fichier "test.txt" apparaissent.
A noter :
- Les flux alternatifs ne sont possible que sur des partitions formatées en NTFS.
- La taille des flux ne sont pas comptabilisés dans la taille totale du fichier par défaut. Un fichier de 3Ko dans l'explorateur peut très bien contenir un flux de 10Mo.
Écrire dans un flux alternatif avec Powershell 2.0.
#Initialisation.
$fichier = "C:\test.txt"
$flux = "Flux1"
$cmd = "cmd.exe"
$Txt = "Je suis dans le flux 'Flux1'"
#Writing stream.
$arg1 = "/C ""echo $($txt) > $($fichier):$($flux)"""
start-process -filepath $cmd -ArgumentList $arg1
$fichier = "C:\test.txt"
$flux = "Flux1"
$cmd = "cmd.exe"
$Txt = "Je suis dans le flux 'Flux1'"
#Writing stream.
$arg1 = "/C ""echo $($txt) > $($fichier):$($flux)"""
start-process -filepath $cmd -ArgumentList $arg1
Lire un flux alternatif avec Powershell 2.0.
#Initialisation.
$fichier = "C:\test.txt"
$flux = "Flux1"
$cmd = "cmd.exe"
#Reading stream.
$arg2 = "/C ""more < $($fichier):$($flux)"""
$info = New-Object System.Diagnostics.ProcessStartInfo
$info.FileName = $cmd
$info.RedirectStandardOutput = $true
$info.UseShellExecute = $false
$info.Arguments = $arg2
$prcs = New-Object System.Diagnostics.Process
$prcs.StartInfo = $info
$null = $prcs.Start()
Sleep -s 1
$stdout = $prcs.StandardOutput.ReadToEnd()
Write-Host $stdout
$fichier = "C:\test.txt"
$flux = "Flux1"
$cmd = "cmd.exe"
#Reading stream.
$arg2 = "/C ""more < $($fichier):$($flux)"""
$info = New-Object System.Diagnostics.ProcessStartInfo
$info.FileName = $cmd
$info.RedirectStandardOutput = $true
$info.UseShellExecute = $false
$info.Arguments = $arg2
$prcs = New-Object System.Diagnostics.Process
$prcs.StartInfo = $info
$null = $prcs.Start()
Sleep -s 1
$stdout = $prcs.StandardOutput.ReadToEnd()
Write-Host $stdout
Libellés :
ADS,
Alternate Data Stream,
Fichier,
File,
PowerShell,
Windows
Blog édition :
06 Avril 2023
jeudi 27 février 2020
Annonce - Eco7 v1.5.0
Eco7 version 1.5.0 avec Snmp est enfin sortie. Ca fait un bon moment que j'ai cette version dans mes cartons mais je n'ai pas eu le temps de finaliser totalement sa sortie. C'est chose fait ! Dans cette version j'ai intégré "SharpSnmpLib" ce qui lui permet de récupèrer les compteurs Snmp d'un serveur ou d'un équipement. Eco7 se limite néanmoins à l’interrogation des compteurs Snmp via les OID.
J'ai également apporter quelques amélioration plus discret ici et là. Notamment j'ai réorganisé les champs dans les fenêtres. Plus quelques améliorations de codes.
J'ai également apporter quelques amélioration plus discret ici et là. Notamment j'ai réorganisé les champs dans les fenêtres. Plus quelques améliorations de codes.
N'hésitez pas à vous rendre sur la page d'Eco7 pour avoir plus d'informations.
mardi 11 février 2020
Ecriture de l'AD
Nous allons voir dans cet article les commandes pour modifier l'Active Directory. Les commandes de bases sont New-ADUser, Set-ADUser, Remove-ADUser et New-ADGroup, Set-ADGroup, Add-ADGroupMember, Remove-ADGroupMember, Remove-ADGroup.
Ces commandes vont nous permettre de modifier les informations sur les
utilisateurs et les groupes enregistrés dans l'Active
Directory.
Il faut tout d'abord importer les commandes dans notre environnement PowerShell :
Import-Module ActiveDirectory
Pour commencer nous allons créer un utilisateur dans l'Active-Directory dans l'OU "Test\Users" :
$login = "Jumbor" #SamAccountName
$domain = "sky.fr"
$sbase = "OU=Users,OU=Test,DC=sky,DC=fr"
$password = ConvertTo-secureString "Password123" -AsPlainText -Force
New-ADUser -Name "Jumbor" -DisplayName "Baru Crow" -UserPrincipalName ($login+"@"+$domain) -SamAccountName $login -AccountPassword $password -ChangePasswordAtLogon $true -Enabled $true -Path $sbase
$domain = "sky.fr"
$sbase = "OU=Users,OU=Test,DC=sky,DC=fr"
$password = ConvertTo-secureString "Password123" -AsPlainText -Force
New-ADUser -Name "Jumbor" -DisplayName "Baru Crow" -UserPrincipalName ($login+"@"+$domain) -SamAccountName $login -AccountPassword $password -ChangePasswordAtLogon $true -Enabled $true -Path $sbase
Pour modifier une propriété du compte, nous allons utiliser la commande suivante :
$user = "Jumbor" #SamAccountName
Set-ADUser -Identity $user -EmailAddress "jumbor@sekki.fr"
Set-ADUser -Identity $user -EmailAddress "jumbor@sekki.fr"
De nombreuses propriétés peuvent être modifiées de cette façon. Par exemple : -AccountExpirationDate, -CannotChangePassword, -ChangePasswordAtLogon, -PasswordNeverExpires,-Description, -GivenName, -HomeDirectory, -LogonWorkstations, -Organization, -PostalCode, -ScriptPath, -StreetAddress, -City ...
Mais parfois, nous devons modifier un attribue qui ne figure pas dans la liste des paramètres. Dans ce cas nous utilisons les commandes "-Replace", "-Clear", "-Add", "-Remove" pour modifier un ou plusieurs attribues :
$user = "Jumbor" #SamAccountName
Set-ADUser -Identity $user -Replace @{loginShell="/ksh/bash"}
Set-ADUser -Identity $user -Replace @{loginShell="/ksh/bash"}
Pour supprimer un utilisateur :
$user = "Jumbor" #SamAccountName
Remove-ADUser -Identity $user -Confirm:$false
Remove-ADUser -Identity $user -Confirm:$false
Nous allons maintenant créer un groupe dans l'Active-Directory dans l'OU "Test\Groups" :
$group = "One_Shot" #SamAccountName
$sbase = "OU=Groups,OU=Test,DC=sky,DC=fr"
New-ADGroup -Name "One Shot" -SamAccountName $group -GroupScope "Global" -GroupCategory "Security" -Path $sbase
$sbase = "OU=Groups,OU=Test,DC=sky,DC=fr"
New-ADGroup -Name "One Shot" -SamAccountName $group -GroupScope "Global" -GroupCategory "Security" -Path $sbase
GroupCategory prend les valeurs suivantes : Distribution, Security.
Pour modifier une propriété du groupe, nous allons utiliser la commande suivante :
$group = "One_Shot" #SamAccountName
Set-ADGroup -Identity $group -Description "One Shot Group !"
Set-ADGroup -Identity $group -Description "One Shot Group !"
Pour modifier un attribue :
$group = "One_Shot" #SamAccountName
Set-ADGroup -Identity $group -Replace @{mail="Jumbor@sekki.fr"}
Set-ADGroup -Identity $group -Replace @{mail="Jumbor@sekki.fr"}
Pour ajouter des membres dans le groupe :
$group = "One_Shot" #SamAccountName
Add-ADGroupMember -Identity $group -Members "Jumbor","Arkel"
Add-ADGroupMember -Identity $group -Members "Jumbor","Arkel"
Pour supprimer des membres du groupe :
$group = "One_Shot" #SamAccountName
Remove-ADGroupMember -Identity $group -Members "Jumbor","Arkel" -Confirm:$false
Remove-ADGroupMember -Identity $group -Members "Jumbor","Arkel" -Confirm:$false
Pour supprimer un groupe :
$group = "One_Shot" #SamAccountName
Remove-ADGroup -Identity $group -Confirm:$false
Remove-ADGroup -Identity $group -Confirm:$false
Libellés :
Active Directory,
Add-ADGroupMember,
New-ADGroup,
New-ADUser,
PowerShell,
Remove-ADGroup,
Remove-ADGroupMember,
Remove-ADUser,
Sekki,
Set-ADGroup,
Set-ADUser
Blog édition :
06 Avril 2023
mercredi 22 janvier 2020
Lecture de l'AD
Nous allons voir dans cet article les commandes pour interroger l'Active Directory. Les trois commandes de bases sont Get-ADUser, Get-ADGroup et Get-ADComputer. Ces commandes vont nous permettre de récupérer des informations sur les utilisateurs, les groupes et les ordinateurs enregistré dans l'Active Directory.
Pour commencer il faut tout d'abord importer les commandes dans notre environnement PowerShell :
Import-Module ActiveDirectory
Les commandes suivantes nous permettent de récupérer l'ensemble des objets de l'AD :
Get-ADUser -Filter * | Out-GridView
Get-ADGroup -Filter * | Out-GridView
Get-ADComputer -Filter * | Out-GridView
Get-ADGroup -Filter * | Out-GridView
Get-ADComputer -Filter * | Out-GridView
Le paramètre -Filter * indique à la commande que nous voulons récupérer tout les objets. Pour voir un objet en particulier nous allons utiliser un filtre plus détaillé :
Get-ADUser -Filter {SamAccountName -like 'Sekki'}
Get-ADGroup -Filter {SamAccountName -like 'Tribuns'}
Get-ADComputer -Filter {Name -like 'Yukine'}
Get-ADGroup -Filter {SamAccountName -like 'Tribuns'}
Get-ADComputer -Filter {Name -like 'Yukine'}
Par défaut, nous ne voyons qu'une petite partie des propriétés des objets. Pour afficher la totalité des paramètres nous allons utiliser les commandes suivantes :
Get-ADUser -Filter {SamAccountName -like 'Sekki'} -Properties *
Get-ADGroup -Filter {SamAccountName -like 'Tribuns'} -Properties *
Get-ADComputer -Filter {Name -like 'Yukine'} -Properties *
Get-ADGroup -Filter {SamAccountName -like 'Tribuns'} -Properties *
Get-ADComputer -Filter {Name -like 'Yukine'} -Properties *
Cette fois nous pouvons voir tout les propriétés des objets, et il y en a beaucoup. Nous allons donc faire maintenant une sélection :
Get-ADUser -Filter * -Properties SamAccountName,Enabled,LockedOut,LastLogondate | Out-GridView
Get-ADGroup -Filter * -Properties SamAccountName,GroupCategory,GroupScope | Out-GridView
Get-ADComputer -Filter * -Properties Name,Enabled,Created,LastLogonDate,Location | Out-GridView
Si le domain à interroger n'est pas le domain courant, on utilise l'option -Server pour spécifier le nom du domain :
Get-ADUser -Filter * -Server "Sekki.fr" -Properties SamAccountName,Enabled,LockedOut | Out-GridView
Nous allons voir maintenant quelques cas classique. En premier comment récupérer les groupes d'un utilisateur :
$groups = Get-ADUser -Filter {Name -like 'yukine'} -Properties *
foreach($group in $groups)
{
$group = (($group.split(","))[0]) -replace("CN=","") #Nettoyage.
Write-Host $group
}
foreach($group in $groups)
{
$group = (($group.split(","))[0]) -replace("CN=","") #Nettoyage.
Write-Host $group
}
Les commandes qui permettent le lister les membres d'un groupe :
$members = (Get-ADGroup -Filter {Name -like 'Tribuns'} -Properties *).Members
foreach($member in $members)
{
$member = (($member.split(","))[0]) -replace("CN=","") #Nettoyage.
Write-Host $member
}
foreach($member in $members)
{
$member = (($member.split(","))[0]) -replace("CN=","") #Nettoyage.
Write-Host $member
}
(Get-ADGroupMember -Identity "Tribuns").SamAccountName
Pour finir cette commande permet de récupérer les comptes inutilisés depuis 6 mois.
$date = (Get-Date).AddDays(-180)
Get-ADUser -Filter {LastLogonDate -lt $date} -Properties Enabled,LockedOut,DisplayName,SamAccountName,LastLogonDate | Out-GridView
Get-ADUser -Filter {LastLogonDate -lt $date} -Properties Enabled,LockedOut,DisplayName,SamAccountName,LastLogonDate | Out-GridView
Libellés :
Active Directory,
Get-ADComputer,
Get-ADGroup,
Get-ADuser,
PowerShell,
Sekki
Blog édition :
06 Avril 2023
mercredi 23 octobre 2019
Annonce - Copy Code
J'ai trouvé un petit script Html/Java pour copier le code affiché dans le presse papier. J'ai testé ce script sur FireFox 60 et IE 11 sans problème. Comme vous pouvez déjà le voir, un bouton est apparu sur la plupart des scripts.
Exemple :
Write-Host "Hello World !"
A noter : Suivant le niveau de sécurité du navigateur un popup peut apparaitre pour demander l'autorisation de copier le code dans le presse papier. Bien entendu si le Java Script n'est pas activé il ne se passera rien.
Inscription à :
Articles (Atom)