How to create an Azure VM with the ARM PowerShell cmdlets

Adam BertramMVP

Adam Bertram 1 comments

Adam is a Microsoft Cloud and Datacenter Management Most Valuable Profressional (MVP) who specializes in Windows PowerShell. You can reach Adam at adamtheautomator.com or on Twitter at @adbertram.

In this article, I will be showing you how to create an Azure VM from scratch with the Azure Resource Manager (ARM) PowerShell cmdlets.

Copyright © 2006-2015, 4sysops, Digital fingerprint: 3db371642e7c3f4fe3ee9d5cf7666eb0

Adam BertramMVP

Adam Bertram 1 comments

Adam is a Microsoft Cloud and Datacenter Management Most Valuable Profressional (MVP) who specializes in Windows PowerShell. You can reach Adam at adamtheautomator.com or on Twitter at @adbertram.

In this article, I will be showing you how to create an Azure VM from scratch with the Azure Resource Manager (ARM) PowerShell cmdlets.

Copyright © 2006-2015, 4sysops, Digital fingerprint: 3db371642e7c3f4fe3ee9d5cf7666eb0

Source from..

Mod WP-SyntaxHighlight faille de sécurité




Ne pas installer ce mod, il présente une faille de sécurité permettant l’injection de code php dans le répertoire /theme/ fichier inc.php

Utilisation d’un champ de formulaire puis de la fonction eval

 

WordPress 4.4 Multisite – Php 7 – Htaccess – Ovh sous répertoire avec publication a la racine et permaliens

wordpress-multisite-graphic-500pxInstallation et Configuration

La configuration n’a pas l’air comme ça très complexe et probablement que lors d’une fresh install ca se passe facilement. Mais dès lors que l’on a des plugins, des personnalisations de fichier de conf et des ajouts maison, c’est un peu plus compliqué. Tout se fait bien entendu, et WordPress 4.4 sous Php 7, chez Ovh (sans module préinstallé bien sur) en installation multisite, protégé par htaccess et avec des permaliens personnalisés sous la forme /%category%/%postname%-%post_id%/ c’est la panacée (ou presque). Il a fallu batailler un moment, c’est pour ça que je vous livre toute la procédure aujourd’hui pour éviter de galérer si vous avez les mêmes problèmes que moi. Rien de grave, et franchement sur le net c’est bien documenté on trouve ce qu’il faut sur le codex WordPress pour avancer dans le debugging.

Attention je ne vous explique pas comment faire l’installation de WP (on balance sur le ftp et on suit les écrans d’install) qui est par ailleurs très bien documenté sur le site officiel ou un peu partout sur le net. Nous partons donc du principe que l’installation de WP fonctionne et se trouve dans un répertoire de votre espace d’hébergement web, en général chez OVH www/

Pour l’exemple nous l’appellerons “blog” et de facto il se trouve donc dans votre ftp ici : /www/blog/  avec une arborescence connue wp-admin/ wp-includes/ et wp-content/

Pour débuter, rendez vous sur votre espace client Ovh pour activer le php 7 dans la section Hébergement (cf capture ci dessous). Bien entendu, vous cliquez sur modifier la conf, php 7, vous attendez quelques minutes et hop c’est réglé.

 

Activation du PHP 7 :

Activation PHP 7

 

Activation du Multisite WordPress :

Il faut éditer le fichier wp-config.php et ajouter ceci :

 /**
 * Langue de localisation de WordPress, par défaut en Anglais.
 *
 * Modifiez cette valeur pour localiser WordPress. Un fichier MO correspondant
 * au langage choisi doit être installé dans le dossier wp-content/languages.
 * Par exemple, pour mettre en place une traduction française, mettez le fichier
 * fr_FR.mo dans wp-content/languages, et réglez l'option ci-dessous à "fr_FR".
 */
 define ('WPLANG', 'fr_FR');
 define ('WP_ALLOW_MULTISITE', 'true');
 define('MULTISITE', true);
 define('SUBDOMAIN_INSTALL', false);
 $base = '/';
 define('DOMAIN_CURRENT_SITE', 'www.votre site.com');
 define('PATH_CURRENT_SITE', '/');
 define('SITE_ID_CURRENT_SITE', 1);
 define('BLOG_ID_CURRENT_SITE', 1);
 define( 'AUTH_SALT', 'une clef generee');
 define( 'SECURE_AUTH_SALT', 'une clef generee' );
 define( 'LOGGED_IN_SALT', 'une clef generee' );
 define( 'NONCE_SALT', 'une clef generee');

 /* C'est tout, ne touchez pas à ce qui suit ! Bon blogging ! */

 

 

HTACCESS :

Vos fichiers htaccess doivent être configurés de la manière suivante :

Celui du répertoire /www/blog/

On suit les liens symboliques, on empêche l’affichage du répertoire, on fait suivre les règles et les conditions vers le répertoire de notre blog pour tout ce qui a attrait aux requêtes php.

Options +FollowSymLinks
Options -Indexes

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

# END WordPress

 

Et le deuxième fichier d’emplacement /www/

On peut éventuellement commenter la ligne #uploaded files, en fonction de votre installation et de votre configuration.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

#uploaded files
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) wp/$1 [L]
RewriteRule ^(.*\.php)$ wp/$1 [L]
RewriteRule . index.php [L]
</IfModule>
# END WORDPRESS

 

Configuration WordPress :

Pour fignoler votre installation multisite de WordPress, rendez vous dans votre menu admin WP, Section Réglages, puis Permalien et cocher “Structure Personnalisée” et enfin inscrivez ceci /blog/%category%/%postname%-%post_id%

N’hésitez pas a installer plusieurs navigateurs, et penser a vider les caches lors de vos modifs. Penser bien sur a la sauvegarde mysql, et ftp pour les fichiers ou les dossiers que vous allez modifier. Le backup c’est le bien ! 🙂

Happy coding ! Bonne lecture.

multisite wordpress

Script Powershell AD – Scanner et Ajouter

image002Mettre a jour le champ email

 

Aujourd’hui, je vous propose un script powershell assez simple que j’ai du mettre en place pour mettre à jour les champs email des comptes utilisateurs d’un active directory.

Il affiche un choix de menu que l’on peut aisément agrandir et adapter à d’autres traitements. Basé sur QAD et en admettant que vous avez les droits admin (sinon il faut faire un get-credential et le stocker dans une variable, vous pouvez facilement le modifier).

De plus, il vous permet de voir une structure composée de commandes imbriquées telles que do-until-switch-foreach-for assez astucieuse je trouve. Les logs sont générés pour être adapter a la structure mais on pourrait très bien le faire en try-catch pour mettre en place une gestion des erreurs si le script venait a grandir et effectuer d’autres traitements. Vous découvrirez également la notion de $tableau, bref que du bonheur 😀

 

Cls
 $log = "result.log"
 $scriptpath = get-location
 $date = get-date
 "*** Debut *** a $date" >> $log
$req = get-qaduser -searchroot 'votre domaine ici' -enabled | select samaccountname,mail,givenname,userprincipalname

$tableau = @()

[Int]$nbr = 0 | Out-Null
[Int]$nbr2 = 0 | out-null

do {
do {
Write-Host ""
Write-Host "A - Scanner et Ajouter les emails aux utilisateurs du domaine"
Write-Host "Q - Quitter"
Write-Host ""
write-host -nonewline "Entrer votre choix (A/Q) puis entrée : "
$choix = read-host
write-host ""
$ok = @("A","Q") -contains $choix
if ( -not $ok) { Write-Host "Choix pas disponible" -fore Red }
}
until ( $ok )
switch ( $choix ) {
"A" {
Write-Host "Vous avez choisi 'A'"
cls

foreach ($user in $req) {

write-host "***************" -BackgroundColor black -ForegroundColor White
write-host $user.samaccountname

if(Get-QADMemberOf $user.samaccountname -Indirect -Name Posh_ID){

# comptes non valide pour creation email

write-host "Compte de service trouvés" -foregroundcolor red
write-host "MAJ Email IGNOREE... $user" -foregroundcolor red
$nbr++

}else{

if($user.mail -eq $null){

# comptes valides on continue

write-host "Ce compte n'a pas d'email et va etre mis a jour" -ForegroundColor Yellow
set-aduser -identity $user.samaccountname -EmailAddress $user.UserPrincipalName
write-host "MAJ Email ... $user" -ForegroundColor Green
$nbr2++
"MAJ Email ... $user" >> $log

}
}
$tableau += $user
}

for ($count = 0; $count -le $tableau.Length; $count++){
$user = $tableau[$count]}
#cls
Write-host "Il y a $nbr comptes ignores" -ForegroundColor red
Write-host "Il y a $nbr2 comptes a modifier" -ForegroundColor Green
"Terminé ! Nbre comptes ignores $nbr et nombre comptes modifies $nbr2" >> $log
write-host "Terminé voir $scriptpath\$log" -ForegroundColor Green
# $tableau >> $log
"*** Fin *** a $date" >> $log
}
"Q" {
cls
Write-Host "Bye" -fore yellow
"Aucun changement effectue $date" >> $log
break
}
}
}
until ( $choix -eq "Q" )

Bon on va détailler tout ca et le réecrire car il ya eu une conversion malheureuse de plugin wordpress sur la syntaxe du code et vlan, patatra…

Modifier Prompt Powershell – Fonction pour ajouter dossier / sous dossier

Un bout de code intéressant, voir indispensable 😉

[codesyntax lang=”powershell”]

function prompt {
 $cwd = (get-location).Path

[array]$cwdt=$()
$cwdi=-1
do {
$cwdi=$cwd.indexofany(”\\”,$cwdi+1)
[array]$cwdt+=$cwdi} until($cwdi -eq -1)

if ($cwdt.count -gt 3) {
$cwd = $cwd.substring(0,$cwdt[0]) + “\..” + $cwd.substring($cwdt[$cwdt.count-3])
}

” $cwd>_ ”
}
# The above sets prompt to the current drive letter, immediate sub directory and current directory.
#     Example: C:\..\drivers\etc>_

Import-Module Pscx #-arg ~\Pscx.UserPreferences.ps1

[/codesyntax]