PowerShell 32 bits vs 64 bits

Mise en contexte

Vous avez un script PowerShell qui utilise des composantes 64 bits.  Tout va bien lorsque vous l’exécutez directement ou en ligne de commande.  Par contre, lorsque vous tentez d’exécuter le même script à partir d’un logiciel tiers ou d’un programme que vous développez en 32 bits, plus rien ne fonctionne.

Par exemple, vous tentez d’utiliser des commandes liées à un serveur Exchange et lorsque vous tentez de charger le module suivant : Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin

Vous obtenez l’erreur suivante :

Add-PSSnapin : The Windows PowerShell snap-in ‘Microsoft.Exchange.Management.PowerShell.Admin' is not installed on this computer.

Le snap-in est bien installé, malheureusement il ne fonctionne quand 64 bits.  Que faire si on ne peut obtenir ou compiler le programme en 64 bits?

Voici une solution qui consiste à ajouter quelques lignes de code à votre script afin de lancer l’exécution de PowerShell 64 bits.

If ( [IntPtr]::Size * 8 -ne 32 )
    {
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\PowerShell.exe -File $MyInvocation.MyCommand.Path
    }
Else
    {
# Your code here
    }

Source : http://www.madwithpowershell.com/2015/06/64-bit-vs-32-bit-powershell.html

Voilà, il suffit de mettre votre code d’origine à l’endroit indiqué.

Récupérer de l’espace-disque sur un serveur Windows

Après un certain temps, les mises à jour de Windows peuvent occuper un espace considérable sur une partition principale.

Par défaut, sur un poste de travail, il est possible d’utiliser l’outil Nettoyage de disque de Microsoft pour récupérer de l’espace en supprimer des fichiers temporaires et les mises à jour Windows qui ont été conservées pour permettre un retour en arrière.  Ces derniers peuvent être supprimés après un certain temps si on est certain de ne pas avoir à désinstaller une mise à jour.

Toutefois, sur un Windows Server, cette option n’est pas disponible.  Lorsqu’on va dans les propriétés du disque local, le bouton “Nettoyage de disque” est inexistant.

image

Voici donc la procédure pour remettre cette option sur un serveur.  Je ne recommande pas de faire cette opération sur un serveur en temps normal.  Mais si vous devez récupérer de l’espace à tout prix, vous pourrez récupérer certainement quelques Go.

Pour ce faire, vous devez ajouter la fonctionnalité “Expérience utilisateur” en passant par l’assistant Ajout de fonctionnalités du gestionnaire de serveur.

image

image

image

image

image

image

Un redémarrage sera probablement nécessaire pour compléter l’installation.

Par la suite, si vous retournez dans les propriétés du disque local, vous aurez accès au bouton “Nettoyage de disque” comme sur un poste de travail.

image

image

RazorSQL–Outils de base de données

Mon outil ultime pour gérer toutes les sortes de bases de données qui se trouvent dans mon environnement est RazorSQL.

https://razorsql.com/

Il vous en coûtera 99,95$ par usager pour acquérir une licence.  Mais si vous avez de multiples et diverses bases de données à gérer, c’est un investissement qui vaut la peine.

La liste de bases de données supportées est impressionnante.

Je n’entrerai pas dans les détails de toutes les fonctionnalités, mais en voici quelques-unes que vous ne trouverez pas nécessairement dans d’autres logiciels du genre.

Connexion par tunnel SSH

Si vous avez une base de données qui n’est accessible que localement ou que vous n’avez pas la possibilité d’ouvrir un port de communication, RazorSQL offre la possibilité d’établir automatiquement un tunnel SSH pour vous connecter à votre base de données.  Il vous faut bien sûr un serveur SSH installé sur le serveur de base de données, mais vous aurez alors une connexion parfaitement sécurisée sans rendre votre base de données directement accessible de l’externe.

image

 

Générer la structure d’une table ou d’une base de données complète

Très pratique pour modifier une ou plusieurs tables.  Ou encore faire une sauvegarde de la structure.

Je l’utilise régulièrement pour modifier des tables lorsque je fais du développement.  On fait “Generate DDL”, ce qui nous donne le code SQL pour la création de la table.  Il ne reste plus qu’à modifier le code, puis faire un DROP TABLE et exécuter notre code.

image

image

 

Copier une ou plusieurs tables

RazorSQL permet facilement de copier une table en local ou même vers une autre base de données.

image

Pour copier vers une autre base de données, il faut d’abord établir une connexion dans un nouvel onglet, puis l’option devient disponible.

image

 

Exportation des résultats d’une requête de sélection

Il est facile d’exporter les résultats, soit vers le presse-papier ou dans différents formats, dont SQL ou Excel.

image

SNS – Rechercher et désinstaller QuickTime

Apple a annoncé l’arrêt des mises à jour de son logiciel QuickTime pour Windows, alors même que des failles de sécurité viennent d’être rapportées.

La seule solution consiste donc à désinstaller QuickTime, ce n’est plus une question de choix.

Voici une méthode pour rechercher et désinstaller QuickTime dans son environnement réseau de manière rapide et fiable à l’aide de SoftPerfect Network Scanner.

Si vous n’êtes pas familier avec ce logiciel, n’hésitez pas à consulter mes autres articles sur le sujet.

 

Créez d’abord une requête WMI pour découvrir les installations de QuickTime. Ceci vous permettra ensuite de scanner votre réseau et avoir un bilan des installations de QuickTime sur vos postes.

clip_image002

Select Name from Win32_Product Where Name LIKE '%Quicktime%'

Puis, créer une nouvelle application pour exécuter à distance une commande WMIC afin de lancer la désinstallation de QuickTime.

clip_image004

wmic /node:%0 product where "name like 'QuickTime%'" call uninstall

Pour les fans de PowerShell, je vous recommande l’article suivant :

PowerShell script to uninstall QuickTime for Windows :
https://www.404techsupport.com/2016/04/powershell-uninstall-quicktime/

SNS – Commandes et configurations utiles

Pour faire suite à mes derniers blogs sur SoftPerfect Network Scanner, voici une liste de quelques commandes et configurations qui me sont utiles.

Avant de commander, assurez-vous d’avoir lu mes premiers blogs sur ce logiciel pour comprendre ma méthode de travail :

SoftPerfect Network Scanner – Présentation
SoftPerfect Network Scanner – Mise en place

Lignes de commande

Les lignes de commande vous permettre d’exécuter un programme en lui passant des paramètres, notamment l’adresse IP de l’ordinateur distant.

Copier un fichier vers les postes distants.
Par exemple, un fichier de configuration pour FileZilla qui désactive les mises à jour automatiques.

xcopy /C /Y "C:\temp\fzdefaults.xml" "\\%0\c$\Program Files (x86)\FileZilla FTP Client"

Explorer le disque local (C:\) de l’ordinateur distant.

explorer \\%0\c$

Ouvrir les stratégies de groupe

mmc.exe gpedit.msc /gpcomputer:"%0"

Effacer une clé de registre

cmd /C reg delete \\%0\HKLM\Software\Google /f

Voir les tâches planifiées

cmd /k schtasks /query /s %0

Supprimer tous les tâches planifiées

schtasks /delete /tn * /F  /s %0

Créer une tâche planifiée
Par exemple, une tâche qui exécute le démarrage d’un service à une date et une heure précise.

schtasks /create /s %0 /tn "Start OpenVPN" /sd 2015/07/13 /st 08:00:00 /sc ONCE /ru SYSTEM /tr "net start OpenVPNService"

Arrêter ou démarrer un service.
Par exemple, arrêter et démarrer à nouveau le spooler d’impression.

sc \\%0 stop spooler
sc \\%0 start spooler

Ouvrir une console à distance

"C:\Scripts\PsTools\psexec.exe" \\%0 cmd

Supprimer un répertoire complet
Par exemple, supprimer un vieux profil.

cmd /C rmdir /S /Q "\\%0\c$\users\demo"

Exemples XMIC
wmic permet d’exécuter une action WMI en une seule ligne de commande.

Désinstaller Java

wmic /node:%0 product where "name like 'Java%'" call uninstall

Désinstaller la barre d’outils Google

cmd /k wmic /node:%0 product where "name like 'Google Toolbar%'" call uninstall /nointeractive

Ask Toolbar uninstall

cmd /k wmic /node:%0 product where "name like 'Ask Toolbar'" call uninstall

Configurations

Il est possible d’afficher dans la grille des informations sur les postes distants.

Remote WMI

Vérifier si un processus en cours d’utilisation.

Exemple : Est-ce que Google Chrome s’exécute sur le poste distant?

SELECT Caption FROM Win32_Process WHERE Name LIKE '%chrome%'

Vérifier la version d’un logiciel installé.

Exemple : Quelle version d’Adobe Reader est installée?

Select Version from Win32_Product Where Name LIKE 'Adobe Reader%'

Remote Registry

Récupérer des valeurs dans la base de registre.

Exemple : Quelles sont les logiciels inscrits au démarrage de l’ordinateur dans la clé de registre RUN.

Dans cet exemple, les valeurs récupérées sont placées dans le dossier c:\temp et placer dans un fichier texte portant l’adresse IP du poste ciblé comme nom.
Cette commande peut donc être envoyé à plusieurs postes en même temps.

cmd /C reg query \\%0\HKLM\Software\Microsoft\Windows\CurrentVersion\Run /s > c:\temp\%0.txt

SNS – Récupérer l’historique de navigation

Voici une méthode pour utiliser SoftPerfect Network Scanner et l’utilitaire Browsing History View de Nirsoft afin de récupérer l’historique de navigation Internet d’un poste distant.

Tout d’abord, téléchargez l’utilitaire Browsing History View (Nirsoft est une mine d’or d’utilitaires pour Windows) : http://www.nirsoft.net/utils/browsing_history_view.html

image

Placez l’exécutable BrowsingHistoryView.exe dans le dossier c:\Scripts\ ou le dossier où vous placez vos utilitaires SNS habituellement.

Créez également un dossier c:\temp ou autre vers lequel seront enregistrés les fichiers contenant les rapports.

Voici une ligne de commande que vous pouvez ajouter à votre configuration SNS dans la section Applications.

"C:\Scripts\BrowsingHistoryView.exe" /HistorySource 3 /HistorySourceFolder "\\%0\c$\users" /VisitTimeFilterType 3 /VisitTimeFilterValue 7 /shtml "c:\temp\%0.html"

La commande récupère l’historique de navigation de la plupart des navigateurs Internet : IE, Chrome, Firefox et Safari.  Comme la taille du fichier de rapport peut devenir énorme, je limite ce dernier à 7 jours.   Vous pouvez modifier les différents paramètres pour l’adapter à vos besoins.  Il vous suffit de vous rendre sur le site de Nirsoft pour les détails.

Notez également que la commande récupère l’historique de tous les usagers ayant un profil sur le poste et que, pour fonctionner correctement, toutes les sessions doivent être fermées.  En effet, l’utilitaire ne peut pas récupérer l’information à distance si le profil est en cours d’utilisation.

Vous obtiendrez alors,dans le dossier c:\temp, un fichier HTML dont le nom correspond à l’adresse IP de chacun des postes

SNS – Déployer Flash Player

Comment déployer Adobe Flash Player à l’aide de SNS (SoftPerfect Network Scanner)

S’il y a bien un logiciel qui nécessite de fréquents et URGENT déploiements dans un parc informatique, c’est Adobe Flash Player.  Un bug n’attend pas l’autre.

Au cours des derniers jours, avec le piratage de Hacking Team, on a eu droit à une nouvelle correction de faille.  En effet, il s’est avéré que Hacking Team exploitait déjà cette faille et que la mise en circulation de leur code source a permis son intégration rapide aux exploits kits.

http://www.lemondeinformatique.fr/actualites/lire-le-lecteur-flash-encore-touche-par-une-faille-zeroday-61730.html

 

Alors voici une méthode de déploiement rapide dans un environnement Windows.  Pour mieux comprendre ma méthode de travail avec SNS, n’oubliez pas de consulter mes deux premiers blogs :

SoftPerfect Network Scanner – Présentation
SoftPerfect Network Scanner – Mise en place

 

Rechercher les versions installées

Pour vérifier l’état actuel des installations Flash Player sur les postes, nous pouvons utiliser une requête WMI.

Notez que les scans WMI sont assez lents.  Si vous pouvez obtenir la même information via une clé de registre par exemple, vous aurez un résultat beaucoup plus rapidement.  Par contre, les requêtes WMI permettent de rechercher des mots clés et d’obtenir plus d’un résultat.  Comme dans cet exemple :

Créez une nouvelle requête en allant dans Options –> Remote WMI…

Inscrivez un titre pour votre requête dans Item Name.  Exemple : Flash Player Version.

Puis, indiquez la requête suivante :

Select Version from Win32_Product Where Name LIKE ‘%Flash Player%’

image

La requête interroge la liste des logiciels installés et cherche le mot clé “Flash Player” dans le nom du produit.  Puis, la requête retourne la version du produit contenant le mot clé.  Dans notre exemple, ceci nous permettra de trouver à la fois l’Activex (pour IE) et le plugin (pour les autres navigateurs).

image

Dans mon environnement TEST, j’ai deux postes ayant la version 18.0.0.194 du plugin et de l’Activex.

Déploiement

Téléchargez d’abord les fichiers MSI de la dernière version de l’Activex et du Plugin pour Adobe Flash Player :

http://download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_18_active_x.msi
http://download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_18_plugin.msi

Placer les fichiers dans votre dossier partagé pour le déploiement.
Pour mes exemples, j’utilise le dossier C:\Install.
Voir mon blog suivant si nécessaire : SoftPerfect Network Scanner – Mise en place

Dans les options de SNS, allez dans l’onglet Applications.  Créez une nouvelle “application” que vous pouvez nommer Install Flash Player (IE).  Indiquez ensuite la commande suivante à exécuter dans “Command Line” :

"C:\Scripts\PSTools\PsExec.exe" \\%0 -s msiexec /i \\SBSRV\install\install_flash_player_18_active_x.msi /qn

image

Répétez la même opération pour le Plugin dédié aux autres navigateurs.  Vous indiquerez donc la commande suivante :

"C:\Scripts\PSTools\PsExec.exe" \\%0 -s msiexec /i \\SBSRV\install\install_flash_player_18_plugin.msi /qn

Il ne vous reste plus qu’à sélectionner les postes où doit être déployé Flash Player, puis à faire un clique-droit et à cliquer sur l’application fraîchement créée : Install Flash Player…

image

Une console sera alors ouverte pour chaque installation et se fermera à la fin de celle-ci.

image

Vous pouvez ensuite refaire un scan et valider vos installations instantanément.

Dans mon environnement TEST, j’ai déployé la version 18.0.0.203 de l’ActiveX sur tous les postes.  Sur les postes 1 et 2, l’ActiveX a été mis à jour, mais pas le Plugin comme on peut le constater.

image

Dernier conseil pour terminer.  Après avoir fait des modifications à la configuration de SNS, je vous recommande fortement de faire une sauvegarde de la configuration.  Il arrive qu’une mauvaise configuration fasse planter SNS et que l’on perdre la configuration.

Il suffit simplement de faire File –> Current Config –> Save to File.

image

REMARQUE no.1 : vous pouvez aussi sauvegarder le résultat de votre scan et le recharger plus tard.  Ce qui peut être pratique pour faire un inventaire et du Wake-On-Lan quand les postes sont fermés.

REMARQUE no.2 : Il est préférable qu’Internet Explorer et les autres navigateurs soient fermés lors du déploiement, afin de s’assurer que Flash Player n’est pas en cours d’utilisation.

SoftPerfect Network Scanner – Mise en place

Mise en place

Les dossiers de travail et PsTools

Je vous présente ma façon de travailler avec SoftPerfect Network Scanner.  Vous pouvez l’adapter à vos besoins, mais ces instructions vous permettront de démarrer rapidement.

Tout d’abord, pour simplifier vos déploiements, ouvrez une session avec un compte utilisateur ayant les droits d’administrateur sur tous vos postes de travail.
Il est possible de spécifier un compte utilisateur différent du compte courant dans SoftPerfect Network Scanner, mais je n’aime pas cette méthode qui n’a pas toujours bien fonctionné dans le passé.

Si ce n’est pas déjà fait, télécharger SoftPerfect Network Scanner (SNS) où vous désirez l’exécuter à l’avenir.  Comme il ne nécessite pas d’installation, je me contente de le placer sur le bureau.

Créez-vous un dossier qui vous servira à y placer tous vos futurs exécutables et scripts que vous utiliserez à partir de SNS.  Dans mes exemples, vous verrez que j’utilise le dossier C:\Scripts.  Donc, comme tous mes exemples y feront référence, je vous recommande d’utiliser le même dossier si possible pour vous simplifier la tâche.

Faites la même opération avec le dossier c:\Install.  Cette fois-ci, nous en ferons également un partage.  Celui-ci servira aux déploiements des logiciels.  Lorsque vous lancerez une installation sur des postes distants, ceux-ci exécuteront le programme ou le script que vous y aurez placé.  N’oubliez pas de donner les droits de lecture à Tout le monde dans les autorisations de partage.  En ce qui concerne la sécurité du dossier, comme PSEXEC exécutera les actions sous votre compte actuel, l’accès fonctionnera tel quel. Par contre, si un jour vous tenter d’exécuter un programme à distance dans un autre contexte utilisateur, vous devrez revoir la sécurité du dossier.

image

 

PsTools

PsTools est une suite d’outils en ligne de commande qui vous permettent d’exécuter différentes actions sur un ou des postes distants.  Voici la liste officielle :

PsExec – execute processes remotely
PsFile – shows files opened remotely
PsGetSid – display the SID of a computer or a user
PsInfo – list information about a system
PsPing – measure network performance
PsKill – kill processes by name or process ID
PsList – list detailed information about processes
PsLoggedOn – see who’s logged on locally and via resource sharing (full source is included)
PsLogList – dump event log records
PsPasswd – changes account passwords
PsService – view and control services
PsShutdown – shuts down and optionally reboots a computer
PsSuspend – suspends processes
PsUptime – shows you how long a system has been running since its last reboot (PsUptime’s functionality has been incorporated into PsInfo)

 

Pour nos besoins, nous aurons besoins principalement de PsExec.  Pour mes exemples, j’ai placé tous les utilitaires dans le dossier c:\Scripts\PSTools.

image

Vous pouvez les télécharger ici : https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

 

Les options d’affichage

Vous pouvez afficher certains champs à chacun de vos scans réseaux.  Personnellement, j’aime bien afficher l’Uptime et l’utilisateur connecté au poste de travail comme suit :

image

image

Voilà pour l’environnement de travail.  Dans mon prochain blog, je vous présente un exemple concret.

SoftPerfect Network Scanner – Présentation

image

Présentation

Un des logiciels que je considère indispensable à mon travail est SoftPerfect Network Scanner.

Lorsque j’ai découvert cet outil, il y a plusieurs années, je n’ai pas saisi immédiatement à quel point ce dernier est performant et puissant.

À la base, il s’agit d’un outil de scan réseau comme il y en a tant d’autres.  À l’exception que SoftPerfect Network Scanner en offre beaucoup plus. Ce n’est pas qu’un simple outil scan des IPs et des ports ouverts.

 

Voici une petite liste de ce qu’il est possible de récupérer comme information à distance :

  • WMI : vous pouvez récupérer n’importe quelle valeur accessible par WMI.
  • Registry : pour récupérer n’importe valeur de la base de registre.
  • Services : pour obtenir le statut de n’importe services Windows.
  • File : vous permet d’obtenir l’information sur un fichier distant : taille, date, version, CRC etc.
  • SNMP : utile pour les switches, les imprimantes et autres périphériques réseaux.
  • Performance : lire les compteurs de performance.
  • Logged-on users : très utile pour retrouver un usager connecté au réseau.
  • Computer uptime : pour trouver les postes qui n’ont pas redémarré depuis un certain temps.

 

image

Encore mieux, vous pouvez sélectionner un ou plusieurs postes et lancer une commande d’un clique-droit.  Il y a quelques actions prédéfinies, mais la force de ce logiciel est qu’il vous permet de créer vous-même vos commandes à exécuter.  En combinant cet outil à PSExec et autres programmes externes, il vous est alors possible d’exécuter une commande à distance à tous les postes sélectionnés.

image

La flexibilité de cet outil vous permet de le transformer en véritable solution de déploiement de logiciels dans votre environnement réseau Windows.

image

Ceci n’était qu’une introduction, je vous prépare une page dédiée à SoftPerfect Network Scanner dans laquelle vous aurez des exemples pratiques et très utiles.

Par exemple, interroger chaque poste Windows dans votre environnement pour vérifier quelle version d’Adobe Reader est installée, puis déployer la dernière version en un clique.

J’oubliais!  Ce merveilleux logiciel est gratuit!

 

Lien : https://www.softperfect.com/products/networkscanner/

RVTools pour VMware

Voici un petit utilitaire gratuit pour VMware que j’utilise à l’occasion.

Il s’agit d’une application très simple, mais utile pour afficher rapidement toute l’information sur son environnement virtuel sous forme de tableau.

rvtools

 

Il y a beaucoup d’information accessible par cette application, mais ce que j’utilise principalement est le dernier onglet vHeath qui vous permet d’avoir des messages concernant la santé de votre environnement.

Grâce à cet outil, vous pourrez savoir en un seul coup d’oeil si vous avez des snapshots qui traînent sur vos VMs, si vos VMware Tools sont à jour ou encore si une de vos VMs manquent d’espace-disque.

image

Pour récupérer le logiciel, rendez-vous sur ce site : http://www.robware.net/