Interroger une base PostGreSQL en PowerShell

Interroger une base PostGreSQL en PowerShell

Bonjour à tous, aujourd’hui on va intéresser aux bases SQL et PowerShell. Et plus exactement comment interroger une base PostGreSQL en PowerShell. Pour cela on va devoir s’y connecter, faire une requête, lire nos résultats en PowerShell et clore la connexion.

Je choisit volontairement PostGreSQL car (j’ai eu besoin de le faire a boulot, déjà) il nécessite que l’on installe au préalable le driver ODBC pour se connecter à la base. En effet si vous utiliser un serveur MSSQL, les dépendances nécessaires sont (en général) déjà livrées avec Windows.

Pour obtenir ce pilote vous pouvez vous connecter sur le site de PostGreSQL ici, télécharger puis installer le fichier MSI. Vous pouvez vérifier que celui ci est bien déployé en allant dans le panneau de configuration-Outils d’administration-Sources de données ODBC (32 ou 64 bits). Les connecteurs PostgreSQL UNICODE et ANSI devrait être présent.

A partir de là, on peut démarrer le code de notre module PowerShell. La première étape consiste à établir la connexion à la base. Et pour cela j’ai développé la Cmd-Let Get-PSSQLDBConnexion ci dessous :

Function Get-PSSQLDBConnexion{
    param(
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] [String] $Server,
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] [String] $Port,
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] [String] $DBName,
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] [String] $Username,
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] [SecureString] $Password
    )
    
Lire la suite

KeePass et PowerShell – à vos MISC ? prêt ? Partez !

Salut à tous ! Bon je sais, ça fait encore un mois que j’ai rien écrit sur le blog… Mais c’est pour la bonne cause : je viens d’être publié dans le N°108 de MISC ! Je vous propose un petit sujet sur KeePass et PowerShell page 68 (en kiosque depuis le 28 février 2020) ! Je vous tease le titre :

KeePass et PowerShell

KeeRest : mettez du DevOps dans votre KeePass

Comme vous l’aurez remarqué, c’est le second article sur KeePass que je publie. Je commence à avoir bien fait le tour du sujet maintenant entre le post sur KeePass2 et la synchronisation SSH/SFTP entre Windows, Linux et Android et le second article dans le n°103 de MISC et enfin celui-ci sur KeePass et PowerShell.

Une fois n’est pas coutume, mais cet article est le fruit d’une collaboration avec un copain MVP PowerShell : Arnaud Petitjean, un ancien collègue administrateur du site powershell-scripting.com. Le nom vous rappel un truc ? c’était avec lui que j’avais écrit ce post :

API REST en PowerShell – développez avec Polaris !

Cette collab explique aussi que le papier est un poil moins orienté sécu que d’habitude (et plus système), néanmoins j’ai profite … Lire la suite

Bluekeep et le SHA2 signing.

Bluekeep SHA2 signing

Salut à tous, cette semaine j’étais au FIC+CORIIN donc pas d’article dédié sur le site, désolé. Par contre je vous met une bonne lecture sur « Bluekeep SHA2 et le SHA2 signing » d’un collègue de mon ancien taf qui se lance dans le blogging, alors on l’encourage…\o/.

C’est son premier article, c’est en anglais, ça parle de la faille bluekeep et de son patching qui est malencontreusement tombé en même temps que l’arrêt de SHA1 sur Windows; mais surtout, c’est intéressant. Vous avez même les bouts de code en PowerShell ! On se doute un peu à la lecture que l’histoire est « inspirée de faits réels »… Voilà, sans transition, la lecture c’est par ici :

Bluekeep, why would you still be vulnerable? SHA2 signing.

Merci Flo !

Je vous laisse conclure et supposer ce que vous voulez du post, vu que c’est pas moi qui l’ai écrit (que c’est reposant). Et moi, je vous dis à la prochaine !… Lire la suite

Auto élévation de privilèges en PowerShell

élévation de privilèges en PowerShell

Salut à tous, aujourd’hui on va s’intéresser au RunAs dans PowerShell, et plus particulièrement comment faire une élévation de privilèges en PowerShell. J’ai récemment eu besoin de distribuer un script à quelques utilisateurs, tous administrateur local de leur poste, pour qu’ils l’exécutent en tant qu’admin.

Je vous passe les détails, mais comme il n’y avait pas que des utilisateurs avancés en PowerShell, il me fallait un mode « clic-clic un peu propre » pour qu’ils lancent le script via un batch à la souris.

D’autant plus que le script jardine dans le registre et les fichiers système tout en utilisant des paramètres interactifs, en chemin relatif (puisqu’on ne sait pas où sur le poste nos utilisateurs vont exécuter le livrable). Et le tout sur des configuration de postes sécurisés qui ne me laissaient pas faire ce que je voulais via le traditionnel runas.exe.

Le diable est dans les détails… J’ai galéré un moment pour trouver un enchainement propre de mon .cmd et du .ps1, qui permet de s’affranchir des problématiques de chemin de fichiers, sans utiliser runas.exe.

Au final je m’en suis sortie comme ça.

Reconstruction du chemin dans le script CMD

C’est la partie la plus simple, vous … Lire la suite