21 déc. 2011

[snippet] Recevoir par mail l'état du planificateur de tâche en Powershell

Il est souvent utile, dans la gestion d'un parc informatique, de repérer une tâche planifiée qui ne s'est pas bien déroulée. Plutôt que d'aller vérifier l'état du planificateur de tâche de Windows Server tous les jours, un script Powershell peut faire une alerte mail !

L'outil schtasks permettra de récupérer en ligne de commande, l'état complet du planificateur de tâche. Le script Powershell va mettre en forme les résultats, déterminer si une tâche est en erreur, et envoyer un e-mail, qui sera marqué important si une tâche est en erreur.

Voici le script :
schtasks.exe /query /fo:csv /v > tmp.csv
$taches = import-csv tmp.csv -Delimiter ","

$all = ""
$allOK = $true
$taches | foreach-object {
    if($_."Statut de la tâche planifiée" -eq "Activée") {
        if($_."Dernier résultat" -ne "0") {
            $allOK = $false
        }
        $all += $("`r`n0x" + $_."Dernier résultat" + " " + $_."Nom de la tâche" +" (Etat:" + $_."État" + ", " + $_."Heure de la dernière exécution"+ ")")
    } else {
        $all += $("`r`n0x" + $_."Dernier résultat" + " " + $_."Nom de la tâche" +" (Désactivée)")
    }
}

$objet = "Tâches planifiées sur $(Get-Content env:\computername)"
$serveur = "192.168.1.253"
$destinataire = "cedric@domaine.com"
$expediteur = "Opérateur de sauvegardes >sauvegarde@domaine.com>"
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = New-Object System.Net.NetworkCredential("sauvegarde@domaine.com", "mdp")
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $all
if($allOK -eq $false) { $message.Priority = "High" }
$client.Send($message) 

Puis de créer une tâche planifiée sur le serveur, pour vérifier l'état des tâches.

Ce qui donnera pour résultat :

Exemple de mail reçu

12 déc. 2011

[snippet] Se connecter a MySQL depuis Powershell

Il est possible d'écrire dans une base de données MySQL depuis un simple script Powershell. Le tout en utilisant la capacité a Powershell d'utiliser les assemblies .Net et MySQL Connector/Net (a télécharger http://dev.mysql.com/downloads/connector/net/).

Vous devez depuis le serveur MySQL autoriser d'être accédé par une autre machine. Pour cela, ouvrez une console MySQL et tapez:
GRANT ALL ON *.* to root@'192.168.1.196' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Une fois le connector installé, localisez la DLL MySQL.Data.dll (normalement localisée a C:\Program Files\MySQL\MySQL Connector Net \Binaries\.NET 2.0\MySQL.Data.dll en 5.X ou C:\Program Files\MySQL\MySQL Connector Net \Assemblies\v2.0\MySQL.Data.dll en 6.X

Il faut alors charger l'assemblie dans la session Powershell comme ceci :
[system.reflection.Assembly]::LoadFrom(“C:\Program Files\MySQL\MySQL Connector Net 6.4.4\Assemblies\v2.0\MySQL.Data.dll”)

Puis voici deux petites commandes similaires au PHP:
function mysql_connect([string]$ip,[string]$Login,[string]$Password,[string]$Database) {  
  $dbconnect = New-Object MySql.Data.MySqlClient.MySqlConnection  
  $dbconnect.ConnectionString = “server=$ip;user id=$login;password=$password;database=$database;pooling=false”  
  $dbconnect.Open()  
  $global:db = $dbconnect  
  $dbconnect  
}  
  
function mysql_query([string]$Query,[MySql.Data.MySqlClient.MySqlConnection]$Db) {  
  $sql = New-Object MySql.Data.MySqlClient.MySqlCommand  
  if($db -eq $null) {  
 if($global:db -eq $null) { throw "Pas de connexion spécifiée" }  
 else { $db = $global:db }  
  }  
  if($db.State -ne "Open") {  
 #throw "Connexion spécifié non établie"  
 # on ré-ouvre la connexion car elle peut-être fermée...  
 $db.Open()  
  }  
  $sql.Connection = $db  
  $sql.CommandText = $query  
  $sql.ExecuteNonQuery()  
}

Que l'on utilise comme ceci :
$dbconnect = mysql_connect -Ip 192.168.1.243 -Login "root" -Password "azerty" -Database "stock"
mysql_query -Query "insert into connexion VALUES (NULL, '$mavar_powershell', NOW())"

27 nov. 2011

[snippet] Récupérer les adresses IP courrantes en powershell

Il est souvent intéressant de récupérer la ou les adresses IP d'un serveur qui exécute un script powershell, quand par exemple, celui-ci envoi un message électronique ou écrit des logs. Il existe plusieurs façons, mais voici un petit morceau de code en PowerShell qui permet de récupérer facilement toutes les adresses IP actives du serveur.

(Get-WmiObject win32_networkadapterconfiguration | ForEach-Object { echo $_.IPAddress }) -join "; "

Chez moi retournera 5.42.143.38; 192.168.100.196; 192.168.1.196; 172.16.10.196.

Explication :
 Get-WmiObject est une cmdlet très utile qui permet de récupérer des valeurs sur un peu près tout ce qui tourne dans le système (périphériques, paramétrages, pilotes, comptes ...) en l’occurrence la classe Win32_NetworkAdapterConfiguration permet de récupérer les valeurs des cartes réseaux.
 ForEach-Object permet d'afficher chaque adresse IP de chaque carte réseau.
 Les parenthèses permettront de retourner tout le résultat du pipeline à l'opérateur join, et non pas seulement insérer l'opérateur dans le dernier pipe, à savoir ForEach-Object ou echo.
 -join "; " permet de faire l'équivalent d'un implode en PHP, c'est à dire rassembler en une chaîne tous les éléments d'un tableau, en séparant ces éléments par la chaîne spécifiée à l'opérateur join.

19 nov. 2011

[Tuto] P2V d'un système avec raid logiciel

Aujourd'hui nous allons essayer de cloner une machine physique ayant un raid logiciel (sous Windows Server 2003) vers une infrastructure VMware© avec WMware converter 4.0.
VMware n'accède pas aux disques directement, il passe par la couche logiciel de Windows. De ce fait, l'étape de configuration de la machine va échouer (typiquement à 95%), car il est incapable de configurer la zone de boot.

La solution est reconfigurer la VM qui a été presque terminée. Ce qui a échoué est l'étape "Reconfiguration" (qu'il ne faut pas décocher). La conversion a fonctionné malgré le "Fail at 95%: Unable to find the system volume, reconfiguration is not possible", mais la machine ne sera pas bootable tant qu'elle ne sera pas reconfigurée, il va indiquer qu'il ne trouve pas d'OS. Il faut reconfigurer la VM à posteriori, toujours en utilisant VMware converter, mais pas tout de suite.

Pour que VMware converter arrive à reconfigurer la VM, il faut indiquer la partition (anciennement le raid logiciel) est bootable. Je conseille alors de mapper un linux bootable (Ultimate Boot CD par exemple) sur le lecteur CD, et d'allumer la VM. Dans QParted, il suffit d'ajouter le flag "boot" sur la partition contenant le répertoire Windows, et d'appliquer le changement. Si on essaie d'allumer la VM maintenant, il va faire un BSOD.

On retourne dans VMware converter, et on choisir "Configure machine" et choisie la VM que l'on vient de rendre bootable. Cette reconfiguration implique un sysprep, ce qui efface les paramètres suivants : nom de la machine, configuration IP, compte administrateur, langue, fuseau horaire, adhésion à un domaine AD...
Une fois la machine reconfigurée, on peut la d'allumer normalement. Patientez pendant que le sysprep exécute les scripts nécessaires, un redémarrage et le tour est joué !

A noter que:
Il est possible que VMware converter requiert le package SYSPREP pour Windows Server 2003 téléchargeable ici : http://www.microsoft.com/downloads/details.aspx?FamilyID=A34EDCF2-EBFD-4F99-BBC4-E93154C332D6&displayLang=fr qu'il faut dézipper dans le répertoire C:\Documents and Settings\All Users\Application Data\VMware\VMware vCenter Converter Standalone\sysprep\svr2003. S'il s'agit d'un exécutable, et non pas du .cab, il faut exécuter avec le commutateur /x qui va forcer l'extraction.
Il faut aussi supprimer les entrées inutiles dans le boot.ini.
Il est conseillé de migrer les machines version matériel v4 plutôt que v7 et de migrer le hardware après la migration.

18 nov. 2011

[Astuce] Mode Verbatim dans vos recherche Google

Combien de fois avez-vous effectué de recherche contenant un terme que Google remplace à votre insu ?
Ce problème peut être résolu facilement grâce à une nouvelle option ajoutée récemment dans la toolbox de Google Search (version anglaise seulement).

Il s'agit du mode Verbatim, qui va prendre en considération les termes exacts de votre recherche sans essayer de les remplacer. Ceci n'annule pas la proposition d'autres termes.

Pour retrouver cet outil, dépliez "Show search tools" et cliquez sur "Verbatim".

Sans verbatim :
Google à la fâcheuse tendance de remplacer les termes qu'il ne connaît pas par un terme proche



Avec verbatim :
Le terme PRA n'est pas remplacé dans la recherche

14 nov. 2011

Toutes les versions de Windows 7 facilement

Vous avez peut-être du mal à obtenir la version que vous souhaitez de Windows7/Windows Server 2008. Entre les versions familliales/professionnelles/intégrales, et standard/développeur/entreprise, difficile de s'en sortir...

Téléchargez simplement un ISO de Windows 7/2008 et modifiez le fichier Sources/ei.cfg. Ce fichier agit comme un filtre sur les éditions proposées à l'installation de l'OS. Il existe d'ailleurs des outils qui permettent de modifier ou détruire le fichier de telle façon que toutes les versions possibles soient affichées, ce qui créé ce que l'on appel un disque Universel.

Le fichier ei.cfg est un fichier INI, comme ceci :
[EditionID]
Ultimate
[Channel]
Retail
[VL]
0

EditionID représente l'édition que vous souhaitez. Il peut prendre les valeurs suivantes :
  • Ultimate
  • Professional
  • HomePremium
  • HomeBasic
  • Starter
Tout donc, sauf Enterprise.


Channel représente le mode de distribution de la licence.

  • Retail indique une version boîte
  • OEM indique une version préinstallée
Si vous modifiez le Channel, il est possible que votre clé ne fonctionne plus, ou que l'installation requière une activation sur Internet.

VL indique si la clé est une clé de volume ou non (valeur 0 ou 1).

Cette astuce existe aussi pour d'autres produits Microsoft, comme Office ou SQL Server.

27 sept. 2011

[Astuce] Le "hack magnify" sous Windows 7

Il existe une faille simple sous Windows 7, pour obtenir les droits d'administrateur du système, sans avoir à s'identifier.

Pour cela, il suffit de remplacer un fichier qui est lancé normalement avec le compte Administrateur, qui se lance simplement depuis l'écran de bienvenue, comme par exemple, la loupe !

Dans l'écran de connexion Windows Vista/7, il existe un bouton "Ease of access" (Options d'ergonomie en français), qui permet de lancer des utilitaires depuis l'écran de bienvenue. Ces utilitaires sont exécutés en tant qu'administrateur local. Il suffit donc d'usurper un de ces exécutable par un autre plus intéressant.
 
Windows 7 : options d'ergonomie

Pour cela, il y a 3 solutions :
- Soit déjà posséder un compte administrateur local de la machine
- Soit booter dans un liveCD linux qui supporte l'écriture des droits NTFS
- Soit débrancher le disque dur, et le brancher sur un autre Windows sur lequel on est administrateur

Les étapes sont simples :
1) S'approprier les droits du fichier c:\windows\System32\Magnify.exe
S'approprier un fichier

Ouvrez les propriétés sur le fichier Magnify.exe, allez dans l'onglet Sécurité puis cliquez sur Avancé, puis onglet Propriétaire. Cliquez sur Modifier et sélectionnez le groupe Administrateurs. Validez.

Ajouter les droits NTFS Administrateurs sur un fichier


Fermez la fenêtre de propriétés et rouvrez-la. Dans l'onglet Sécurité cliquez sur Modifier. Cochez Contrôle total pour le groupe Administrateurs. Validez et confirmez.
2) Renommer Magnify.exe (avant de ne pas le perdre)
Console de commande

Ouvrez une console en tant qu'administrateur. Tapez:
cd c:\windows\system32
ren magnify.exe magnifyOld.exe
3) Copier c:\windows\System32\cmd.exe vers magnify.exe

Tapez:
copy cmd.exe magnify.exe

Résultat de l'échange de fichier

4) Retourner sur l'écran de bienvenue (Windows+L)

5) Cocher la loupe et appliquer

6) Vous obtiendrez une console avec les droits d'administration système. Tout ce que vous exécuterez depuis cette console obtiendra les droits d'administration.
Résultat : une console administrateur sans mots de passe !

10 août 2011

[Astuce] Eviter les erreurs pour déployer Windows 7/2008 avec sysprep

Depuis Windows 7 ou Windows Server 2008, les outils de déploiement (sysprep) ne sont pas fournis dans SUPPORT/TOOLS du CD, mais sont directement localisé dans c:\windows\system32\sysprep !

Cependant, il peut arriver que des erreurs interviennent durant le premier démarrage de la machine après déploiement (étape de configuration de la machine).

L'une des erreurs la plus répandue "Windows n'a pu terminer la configuration du système" est due à des pilotes ou services de logiciels installés dans l'image, que Windows n'arrive pas à configurer lors du premier démarrage.

Microsoft indique que "ce problème se produit si le système d'exploitation d'origine contient une clé de Registre qui est supérieure à 8 kilo-octets (Ko)".

Première démarrage de Windows après un sysprep

Cependant il existe une solution simple à cette erreur, qui consiste en :
- Cliquer sur "OK" (quand vous avez l'erreur)
- Au redémarrage, pressez F8
- Choisir "Démarrer avec l'invite de commande"
- Cliquez sur "OK" quand vous obtiendrez encore l'erreur
- Au redémarrage, laissez démarrer normalement

D'une manière générale, il est déconseiller d'installer :
- Les logiciels d'émulation de lecteur CD (daemon tools, alcohol...)
- Les antivirus (surtout Avira)
- Les logiciels de virtualisation (notamment ceux de Citrix)
- Tous les logiciels qui modifient en profondeur le système
- Tous les pilotes qui ne sont pas certifiés Windows 7/2008

Il est également conseillé de :
- faire les mises à jour de Windows
- ne pas joindre à un domaine l'image
- ne pas activer Windows dans l'image
- killer le processus wmpnetwk.exe (en utilisant la commande net stop wmpnetworksvc)
- recommencer l'image de zéro en cas d'erreur

Utilisateur de VMware vSphere : les pilotes des vmware tools ne posent pas de problème, y compris le pilote vidéo wddm.

Pendant la phase de configuration, vous pouvez afficher une console en pressant Shift+F11.

26 juil. 2011

[Astuce] Services de Windows XP à désactiver pour un sysprep

Windows XP est fourni avec une ribambelle de service dont une minorité est totalement inutile pour le commun des mortels. Même si la quantité de mémoire vive n'est plus vraiment d'actualité, il est tout de même intéressant à des fins d'optimisation de pouvoir désactiver certains services pour accélérer le démarrage de Windows ou son utilisation de mémoire pour les vieilles machines.

Je vous conseille d'utiliser l'outil msconfig pour désactiver les services.
Voici la liste des services que l'on peut désactiver :
- Accès à distance au registre (sauf si vous comptez éditer le registre du PC depuis un autre PC)
- Aide et support (l'aide de Windows sera indisponible)
- Audio Windows (si vous n'avez pas de son)
- Carte à puce (sauf si authentification par carte à puce est utilisé)
- Centre de sécurité
- Client DHCP (si votre adresse est en IP fixe)
- Compatibilité avec le changement rapide d'utilisateur (si vous êtes en domaine)
- Configuration automatique sans fil (sauf si vous êtes en Wifi)
- Gestion de session d'aide sur le bureau à distance
- Journaux et alertes de performances
- Mises à jour automatiques (sauf si vous faites les mises à jour de Windows XP)
- Microsoft Office Diagnostics
- Onduleur (sauf si vous êtes sur onduleur et qu'il est branché sur le PC)
- Pare-feu Windows / Partage de connexion Internet (si vous avez un firewall tiers)
- Partage du Bureau à distance Netmeeting
- Planificateur de tâches (sauf si vous l'utilisez...)
- Service COM de grave de CD IMAPI (sauf si vous gravez...)
- Service d'indexation (ce service permet d'accélérer les recherches de fichier)
- Service d'état ASP.NET
- Service de rapport d'erreurs
- Service Terminal Server (sauf si vous utiliser Terminal Server)
- Spouleur d'impression (sauf si vous imprimez/scanner...)
- Thèmes (si vous ne voulez pas de thèmes)
- Téléphonie (sauf si vous utilisez une connexion via un modem RTC)
- Windows CardSpace
- Windows Installer (si vous n'aurez plus de logiciel à installer par la suite)
- Windows Presentation Foundation Font Cache (sauf si vous utilisez des beaucoup de logiciels en WPF)

A noter que le service Téléphonie ne doit pas être désactivé si l'on souhaite faire un sysprep après. En effet, sysprep à besoin du service Téléphonie pour s'exécuter (pour l'activation en ligne de la licence, même si votre licence ne s'active pas par Internet). Sans ça, vous aurez l'erreur "La mémoire ne peut être read" de setup.exe !

15 juil. 2011

[howto] Restaurer la barre de lancement rapide dans Windows 7

Dans Windows 7, la barre de lancement rapide (Quick Launch) a été retirée, et n'est plus proposée dans le menu contextuel des barres d'outils de la barre de tâche. Il est pourtant possible de la faire apparaitre.

Lancement rapide sous Windows 7


Pour cela, il suffit de suivre la manipulation suivante :
- Clic droit sur la barre de tache > Barres d'outils > Nouvelle barre d'outils
- Sélectionnez le répertoire qui deviendra votre Quick Launch, anciennement %userprofile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
- Désactivez l'option Verrouiller la barre de tâches et déplacez le diviseur.
- Avec un clic droit sur le diviseur, vérifiez que les options Afficher le texte et Afficher le titre sont décochés, et choisir l'affichage Petites icônes.
- Arrangez les diviseurs pour rendre visible le lancement rapide à l'endroit que vous souhaitez
- Verrouiller à nouveau la barre de tâches

11 juil. 2011

[décryptage] Google Scribe Labs

Aujourd'hui je vais vous parler d'une petite application web développée par Google, qui est disponible gratuitement en français.
Il s'agit de Google Scribe, disponible à cette adresse.

Interface de Scribe

Sur cette page, qui à première vue ressemble à Google Docs, permet en faite de taper du texte plus rapidement grâce a une technologie de Google qui devine à l'avance le prochain mot que l'on va écrire, un peu comme Google Suggest. Le mot deviné est affiché en gris, il suffit de presser espace pour qu'il soit accepté.

J'ai testé et je suis époustouflé par la justesse des suggestions. Ceci peut être une bonne alternative à tous ceux qui ne possèdent pas un grand vocabulaire, mais surtout ceux qui perdes leurs mots (maladies sur la mémoire ou dyslexie).

Proposition d'une correction un peu hasardeuse
Le système inclue également un correcteur grammatical basé sur les phrases référencées des sites web, ce qui permet de posséder très une grande base de données avec toutes les tournures possibles contrairement aux dictionnaires ou encyclopédies, mais souffre de la pollution par le français des adolescents et leur orthographe imaginatif.

22 juin 2011

[Astuce] Créer une source de données ODBC par programmation

Les sources de données ODBC bien que de moins en moins utilisées, sont pourtant bien pratique si on utilise les pilotes fournis en standards. Surtout qu'avec LINQ (technologie .NET), exploiter une base de données ODBC équivaut à exploiter un connecteur MS SQL ou une structure en mémoire !



Pour bien comprendre, il y a deux choses à voir :
1) Les sources de données, appelées DSN
2) Les pilotes (drivers)

Chaque PC possède différents drivers, dont une bonne quantitée livré avec Windows. L'installation de logiciels, tels que Microsoft Office peut rajouter d'autres drivers.

Chaque DSN utilise un seul driver, et pointe vers un fichier (un fichier de base de données paradox, Access...)

Un DSN peut être soit local à l'utilisateur, soit partagé pour toute la machine (on dit qu'il est System).

La console de gestion des sources se trouve dans le panneau de configuration, ou exécuter odbcad32.

Attention : si votre application est compilée en 64 bits, elle exploitera les drivers 64 bits, qui sont moins nombreux que les pilotes 32 bits !

Rentrons dans le vif du sujet : Comment créer une source de données ODBC par programmation ?
Il faut d'abord savoir quel nom on veut lui donner, quel driver utiliser, et l'ajouter pour l'utilisateur courant ou le système ?

Il faut ajouter une clé de registre dans HKLM\Software\ODBC\ODBC.INI\<nom DSN> et y ajouter quelques valeurs spécifiques, le nom du driver utilisé, le chemin du fichier de la base de données, la DLL qui permet d'exploiter le driver... Pour cela, je vous conseille de créer manuellement une source de données via odbcad32 et de constater dans la base de registre les modifications.
La liste des drivers se trouve dans  HKLM\ODBC\ODBCINST.INI\ODBC Drivers. Pour trouver le driver qu'il vous faut, je vous conseille d'utiliser la chaîne FileExtns de chaque clé HKLM\ODBC\ODBCINST.INI\<nom du driver>. Une fois le driver trouvé, vous obtiendrez ainsi presque toutes les valeurs nécessaires pour créer votre DSN. Seule la valeur DWORD DriverID, nécessaire pour le fonctionnement du DSN, ne sera pas présente. Pour obtenir cette valeur, créez manuellement une DSN avec le driver en question, récupérez le DriverID  et utilisez-le dans votre code (cette valeur ne change jamais pour un driver donné).
En second lieu, il suffit ajouter une valeur chaîne dans HKLM\ODBC\ODBC.INI\ODBC Data Sources\<nom DSN> = <nom du driver>.

Pour créer la base de données pour utilisateurs, il suffit de créer les mêmes données mais dans la branche HKCU tout en lisant la liste des drivers dans ODBCINST.INI de HKLM. Attention cependant, si l'utilisateur n'a jamais créé de DSN, la branche HKCU\Software\ODBC n'existe pas : il faudra la créer.

Attention : si votre système d'exploitation est en 64 bits, en exécutant odbcad32 vous ne verrez que les DSN 64 bits, et les drivers 64 bits. Regedit*64 affichera la base de registre telle qu'elle serait vu par une application 64 bits. Or votre application 32 bits ne voit pas les mêmes données dans le registre ! Pour voir la base de registre en 32 bits depuis Regedit*64, il suffit d'aller dans HKLM\SOFTWARE\Wow6432Node\ODBC\ ! Vous n'avez pas à spécifier Wow6432Node dans le code de votre application 32 bits, puisque la translation est transparente, est faite par le système.

4 juin 2011

[astuce] net send

Vous avez sûrement remarqué que la commande net send n'est plus disponible sous Windows Vista/7.
En effet, vous obtiendrez un message :

Résultat de la commande net send sous Windows 7
Ce qui indique que la commande net existe toujours, mais plus avec l'option send.
Résultat de la commande net send sous Windows XP

De toute façon le service "Affichage des messages" (qui affichait une popup à l'arrivée d'un net send) est désactivé par défaut depuis XP SP2.
Service Affichage des messages sous XP SP2
 Pour y remédier, deux solutions.

Première solution :
Utiliser la commande msg :
msg est une commande de base de Windows, qui existait déjà dans Windows XP et existe encore dans Windows 7. Le but de cette commande est d'envoyer un message à un serveur Terminal Server, mais on peut l'utiliser entre client, ne peut pas être utilisé entre deux machines qui ne sont pas dans le même domaine ou même groupe de travail ce qui limite son utilisation à des fins de spams. La syntaxe n'est pas la même que net send, mais le résultat est sensiblement le même.
Activez le service d'affichage des messages, ajoutez une clé DWORD AllowRemoteRPC avec la valeur 1 dans "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" et redémarrez. Sous Windows 7, il n'est pas nécessaire de redémarrer, redémarrez seulement le service termservice.
msg /server nomduPC * "message"

Seconde solution :
Utilisez l'utilitaire gratuit sent, téléchargeable ici (343 ko) remplacement l'ancienne commande net send.

24 mai 2011

[test] Lync 2010

Cet article est une annexe au test d'Office 365, dans lequel j'annonçais faire un article pour Lync...
Écran de bienvenue
Lync va prendre une place croissante grâce a son intégration à Office 365 et à Windows Phone 7.5 Mango, ses interfaces avec Outlook et sa compatibilité avec Windows Live.


Connexion avec Lync
Lync 2010 est l'équivalent professionnel de Windows Live mais orienté Office.
L'administrateur peut choisir les paramètres via le cloud pour son propre serveur Lync, à savoir autoriser les transferts de fichiers, l'audio/vidéo et communiquer avec des personnes extérieures à la société. D'ailleurs, le service Lync peut être activé/désactivé. La première activation est plutôt longue et peut durer plusieurs heures (propagation des serveurs). Pour se connecter, il faut taper le nom de votre serveur (vous@votresociete.onmicrosoft.com pour Office 365 ou l'adresse de votre serveur interne), puis votre identifiant (vous@votresociete.onmicrosoft.com encore !) et votre mot de passe.
Comme vous pouvez le constater dans l'image ci-contre, l'interface graphique de Lync est à s'y méprendre avec Windows Live.


Dans Lync, vous avez comme pour Windows Live : un avatar (téléchargeable depuis une URL), une activité (commentaire), un statut de présence (en ligne, occupé, ne pas déranger, de retour dans quelques minutes, absent du bureau, apparaître absent, inactif) et un emplacement (lieu où vous vous trouvez).

Interface de gestion de Lync depuis Office 365
L'interface de gestion de Lync est très légère, mais on imagine bien que Microsoft va l'étayer au fur et mesure des versions.

Lync est clairement orienté conférence (comme l'était Netmeeting) : le client Lync a la possibilité d'enregistrer au format .wmv vos conférences. Un gestionnaire d'enregistrement vous permet de revivre vos conversation ou conférences passées.

Lync se décline en 3 "modes" :
Interface de Lync
- Contacts : (contacts triés par groupe/statut/niveaux) avec possibilité d'une conférence groupée/conversation/message/planification d'un rendez-vous/partage de poste de travail en un clic. Quelques options d'affichage sympathiques accessibles rapidement, et une fonction de recherche de contact.
Il n'y a pas de fonction d'ajout/suppression de contact en tant que tel, il faut rechercher l'adresse e-mail d'un contact extérieur et cliquer sur le "+".
Un contact extérieur peut vous ajouter (si cela n'a pas été interdit via Office 365).
Tous les contacts du serveur sont partagés sur le serveur : tout utilisateur ayant un compte dans votre Office 365 peut être retrouvé dans Lync sans avoir à l'ajouter. Vous pouvez néanmoins bloquer un contact.
Vous pouvez également utiliser des contacts Windows Live (les contacts extérieurs peuvent être Lync d'un autre serveur Office 365 ou de Windows Live).
Pour chaque contact, vous pouvez lui attribuer un niveau de confidentialité (Famille, Groupe de travail, Collègue, Extérieur, Bloqués) qui permet de partager des informations plus ou moins complètes. Par exemple, seuls les membres Groupe de travail peuvent vous contacter si vous êtes en statut "Ne pas déranger".
- Flux d'activités : (activités triées par tout/fréquent/mes activités) affiche les flux d'activité des contacts Lync, comme dans Facebook, ou comme le fait Windows Live social. Ceci ne sert pas pour ajouter des flux RSS (ceux-ci devraient être ajoutés dans Outlook !).
Conversation entre un client Lync et un client Windows Live
- Conversations : (conversations triées tout/manqués/appels) affiche un historique des conversations et appels, manqués ou non, comme dans Skype (et ceci avant même que Skype ne soit racheté !).
Les conversations manquées arrivent dans votre boite de réception Outlook.




On peut se demander que va devenir Lync dans un contexte où Microsoft à déboursé 8,5 milliards de dollars pour acquérir Skype qui possède déjà une très grande pénétration dans les professionnels.

17 mai 2011

[test] Microsoft Office 365 beta et Lync

J'ai testé pour vous la bêta ouverte de Microsoft Office 365.
Alors que l'offre de Google, Google Apps modifie sa politique - envers les comptes gratuits (seulement les nouveaux comptes particuliers) en passant le nombre d'utilisateurs de 50 à 10, et en ajoutant une version Premium sans engagement à $5/mois/utilisateurs - Microsoft ouvre la bêta public d'Office 365.
Cette solution est réservée pour les TPE/PME à 5.25€/mois/utilisateurs. La bêta offre un accès gratuit pour 25 utilisateurs. Fonctionne sous Internet Explorer 7+, Firefox 3+, Safari for Mac.

A noter que Microsoft applique des mises à jours régulières d'Office 365.

Je dois dire que je suis agréablement surpris par les options, les graphismes (tout en ruban) et les performances. Un peu perdu au début au milieu de toutes les fonctionnalités, et par le fait qu'il y a plusieurs façons d'accéder à une même chose. Attention, certains formulaires requièrent Silverlight.

Elle comprend :
  • Un nom de domaine (en masociete.onmicrosoft.com et masociete.sharepoint.com)
  • Un partage de documents
  • Un éditeur de document Office dans le navigateur (tel que docs.com)
  • Un site vitrine sous Sharepoint 2010
  • Un éditeur de site (Sharepoint Designer)
  • Un site d'équipe, contenant un blog, pages et des documents (avec versioning)
  • Une fonction de recherche globale
  • Un serveur de messagerie, avec un accès Outlook Web Access
  • Microsoft Lync 2010
  • Un interface d'administration de l'entreprise
  • Une version optimisée pour les mobiles

Sharepoint
Sharepoint est la base du site vitrine de la PME, l'espace collaboratif et des Office Apps.
Le site vitrine tout d'abord :
Site vitrine sous Sharepoint 2010
Inclus un éditeur de page et de modèles de page dans la partie administration, peut également héberger des images et des documents.


Office Apps
Office Apps
On peut créer/voir/modifier des documents Word, Excel, Powerpoint et OneNote en version 2003 et 2007 depuis le navigateur (nul besoin d'avoir la Office d'installé sur le poste, ni d'avoir une licence Office, ni même d'être sous Windows). L'interface d'édition est en ruban comme sous Office 2010 (ou www.docs.com).
Edition d'un document Word avec Office Apps


Bibliothèque de documents
Les documents sont gérés via des bibliothèques possédant chacune des paramètres différents. On peut ensuite se connecter via Outlook 2007/2010 à cette bibliothèque de document Sharepoint.
Connecter le sharepoint sous Outlook 2007

A partir de cette bibliothèque commence un suivi des documents (workflow), tel une GED, avec pour chaque document un flux de travail.


Messagerie
Office 365 inclue une messagerie complète, disponible depuis une interface Web (OWA) ci-dessous comme avec un serveur Exchange 2010. Chacun des 25 utilisateurs de la bêta possède une adresse e-mail (en nom-utilisateur@masociete.onmicrosoft.com).
OWA de Office 365
Il permet comme un OWA classique de gérer son courrier, agenda, contacts, tâches... A notes les liens en haut au centre de la page "Accueil / Outlook / Site d'équipe" qui permet de passer de l'un à l'autre sans s'authentifier à chaque fois.


Administration d'Office 365
Office 365 contient de nombreuses fonctions d'administrations, avec une gestion fine des autorisations. Je n'entrerai pas dans les détails.
Interface de gestion de l'entreprise sous Office 365


Lync




Lync est une version professionnelle de Windows Live Messenger (avec lequel il ressemble d'ailleurs beaucoup). Il permet de communiquer avec ses collègues, partager des documents, suivre la planification réunions, passer des appels, envoyer des mails par Outlook, partager le poste de travail, suivre l'actualité des contacts, créer une conférence et la sauvegarder... Lync est un client de chat pour serveur de chat privé dans le cloud avec lequel on peut ajouter des contacts WLM. Lync est entre Office, MSN, Facebook et Skype.

Je développerai un article spécialement pour Lync prochainement.




Version mobile
Je dois dire que j'ai été quelques peu déçu par la version mobile qui est peut être trop allégée.

Consultation d'un fichier Word

Accueil du site
Cette version permet néanmoins de consulter le site, le site d'équipe ainsi que les listes de documents et même voir le contenu des documents eux-mêmes.


Conclusion
Office 365 a du potentiel, et rempli un champ plus vaste encore que les Google Apps. La solution n'a finalement rien avoir avec Azure (le cloud de Microsoft) ni BizSpark (solution ERP de Microsoft) contrairement à ce qu'on pourrait penser au premier abord. L'édition des documents est plus proche d'Office que puisse l'être Google Documents. La solution de la firme de Redmond est plus chère par utilisateurs, mais on ne doute pas de la capacité de Microsoft à vendre une solution en prétextant une meilleure intégration dans les produits Microsoft existants, notamment pour la messagerie OWA. On regrettera néanmoins que la messagerie instantanée n'est pas disponible par page web contrairement à Google Talk, alors qu'elle existe pour Windows Live à partir d'Hotmail.

15 mai 2011

[astuce] Empêcher les mises à jour de la JRE

Si vous gérez un parc de machines, il est parfois ennuyeux de remarquer que la plupart des machines affichent une bulle de notification de mise à jour de Java. Les utilisateurs n'ayant pas les droits pour effectuer cette mise à jour, ou alors cette mise à jour multipliée par le nombre de machine donne envie de la bloquer.



Il est possible simplement de bloquer cette mise à jour. Il suffit de se rendre dans le panneau de configuration > Programmes > Java. Dans la fenêtre, aller dans l'onglet "Mise à jour" et décocher la case "Automatiser la détection de mises à jour". A la question, répondez "Aucune vérification".

10 mai 2011

[snippet] Convertir une table HyperFile en fichier Excel

Il existe deux solutions.
1ère solution, ouvrir la table avec WDMap puis clic droit > Export vers Excel.
2nde solution, par programmation WinDev :


// le traitement suivant permet de générer un fichier CSV ou Excel
// à partir d'un fichier .FIC fourni en paramètre, dont le programme ne possède pas l'analyse.
//

ficHF est une chaîne = "fichier.FIC"
ficOut est une chaîne = "fichier.xls"
typeexport est une chaîne = "xls"
pass est une chaîne = ""
noheader est un booléen = Faux
typeheader est un booléen = Faux
enc est une chaîne = """"
sep est une chaîne = ";"
uneTable est une Source de Données
SI PAS HDéclareExterne(ficHF, uneTable, pass) ALORS
       RETURN
FIN

SI HOuvre({uneTable,indFichier},pass,hOLecture) ALORS // tentative d'ouverture de la table
       // recherche des Rubriques de la table
       txtRub est une chaîne = HListeRubrique({uneTable,indFichier},hLstDétail) // récupération des rubriques détaillées
       nbRub est un entier = ChaîneOccurrence(txtRub,RC) // nombre de rubriques de la table
       nbRub++
       tabRub est un tableau de nbRub chaînes // stockera les noms des rubriques
       tabType est un tableau de nbRub chaînes // stockera les types des rubriques
       pos est un entier = 1
       uneRub est une chaîne = ExtraitChaîne(txtRub,pos,RC) // première rubrique
       TANTQUE uneRub<>EOT
             tabRub[pos] = ExtraitChaîne(uneRub,1,TAB)
             tabType[pos] = ExtraitChaîne(uneRub,2,TAB)+"("+ExtraitChaîne(uneRub,4,TAB)+")"
             pos++
             uneRub=ExtraitChaîne(txtRub,pos,RC)
       FIN
      
       idCol est un entier
       maVue est une Source de Données
       HCréeVue(maVue,uneTable,"*",hVueDéfaut) // passer par une vue pour parcourir la table
      
       IF typeexport <> "xls" THEN // si l'export demandé n'est pas XLS, il est alors en CSV :
             csv est un entier = fOuvre(ficOut,foCréation+foEcriture) // fichier de destination
             IF csv = -1 THEN
                    RETURN
             END
             ligne est une chaîne
             // Entête du fichier CSV : nom des rubriques
             IF noheader = "" OR noheader = 0 THEN
                    ligne = ""
                    POUR idCol = 1 A nbRub
                           ligne += enc+tabRub[idCol]+enc+sep
                    FIN
                    ligne = Gauche(ligne,Taille(ligne)-1)
                    fEcritLigne(csv,ligne)
             END
             // seconde entête : les types
             IF typeheader <> "" ET typeheader <> 0 THEN
                    ligne = ""
                    POUR idCol = 1 A nbRub
                           ligne += enc+tabType[idCol]+enc+sep
                    FIN
                    ligne = Gauche(ligne,Taille(ligne)-1)
                    fEcritLigne(csv,ligne)
             END
            
             // Remplissage du fichier CSV
             HLitPremier(maVue)
             TANTQUE PAS HEnDehors(maVue)
                    ligne = ""
                    POUR idCol = 1 A nbRub // pour chaque rubrique de l'enregistrement
                           ligne += enc+{"maVue."+tabRub[idCol],indRubrique}+enc+sep // on ajoute la valeur à la ligne courante, avec les séparateurs
                    FIN
                    ligne = Gauche(ligne,Taille(ligne)-1)
                    fEcritLigne(csv,ligne) // on écrit la ligne
                    HLitSuivant(maVue)
             FIN
             HFerme({uneTable,indFichier})
             fFerme(csv)
             RETURN // terminé avec succès
            
            
       ELSE // EXCEL
             xls est un xlsDocument
             xlsAjouteFeuille(xls,fExtraitChemin(ficHF,fFichier))
             descripteur est un booléen = xlsSauve(xls, ficOut) // création d'un fichier Excel vierge
             SI descripteur = -1 ALORS
                    RETURN
             FIN
             idLigne est un entier = 1
            
             // Entête du fichier Excel : nom des rubriques
             IF noheader = "" OR noheader = 0 THEN
                    POUR idCol = 1 A nbRub
                           xls[idLigne,idCol] = tabRub[idCol]
                    FIN
                    idLigne++
             END
             // seconde entête : les types
             IF typeheader <> "" ET typeheader <> 0 THEN
                    POUR idCol = 1 A nbRub
                           xls[idLigne,idCol] = tabType[idCol]
                    FIN
                    idLigne++
             END
            
            
             // Remplissage du fichier Excel
             HLitPremier(maVue)
             TANTQUE PAS HEnDehors(maVue)
                    idCol = 1
                    POUR idCol = 1 A nbRub // pour chaque rubrique, on ajoute la valeur dans la cellule
                           xls[idLigne,idCol] = {"maVue."+tabRub[idCol],indRubrique}
                    FIN
                    idLigne++
                    HLitSuivant(maVue)
             FIN
             HFerme({uneTable,indFichier})
             xlsSauve(xls,ficOut)
             xlsFerme(xls)
             RETURN // terminé avec succès
       END
FIN