mardi 18 décembre 2012

Powershell - Form





[void][System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") 

$form = new-object Windows.Forms.form   
$form.Size = new-object System.Drawing.Size @(480,400)   
$form.text = "essai graphique 12/04/2007"

$boutton = new-object System.Windows.Forms.Button
$boutton.Text = 'Valider'
$boutton.Location = new-object System.Drawing.Size(300,155)  
$boutton.size = new-object System.Drawing.Size(120,30)
$boutton.add_Click({$nom=$listbox.get_selecteditem();$label2.text = "Reponse : " + $nom})

$label = New-Object System.Windows.Forms.Label
$label.text = "Qui est le meilleur en powershell ?"
$label.set_ForeColor("Green")
$label.Location = new-object System.Drawing.Size(55,30)  

$label.size = new-object System.Drawing.Size(200,20)
$label2 = New-Object System.Windows.Forms.Label
$label2.Location = new-object System.Drawing.Size(310,220)  
$label2.size = new-object System.Drawing.Size(180,20)

$listbox = new-object System.Windows.Forms.ListBox
[void]$listbox.Items.Add("Arnaud")
[void]$listbox.Items.Add("Robin")
[void]$listbox.Items.Add("Un autre")
[void]$listbox.Items.Add("Un autre2")
[void]$listbox.Items.Add("Un autre2")
[void]$listbox.Items.Add("Un autre2")
$listbox.Location = new-object System.Drawing.Size(50,75)  
$listbox.size = new-object System.Drawing.Size(200,200)

$form.Controls.Add($boutton)
$form.Controls.Add($listbox)
$form.Controls.Add($label)
$form.Controls.Add($label2)

$Form.Add_Shown({$form.Activate()})
[void]$form.showdialog()


Powershell - astuces



Voici quelques astuces en vrac pour Powershell :

Ajouter du texte dans un fichier TXT
ADD-content -path C:\temp\test.txt -value "Bonjour"

Lister tout les alias
get-alias

trouver une commande d'un alias
get-alias gal

trouver un alias d'une commande
get-alias -definition format-table

Trouver le DistinguishedName
Avec import-module activedirectory
$dn=(Get-ADUser "e-ricmx012").DistinguishedName

Afficher les partages
Get-WmiObject Win32_Share

Passage d'arguments
echo $args[0]

PopUp
$message = "BonJOUR"
$shell = new-object -com wscript.shell
$shell.popup("$message toi")

Prompt
$UserName = Read-Host "Please enter user name"
Get-Aduser $Username

Demarrer service sur machine distante
Invoke-Command {Start-Service "NSClientpp" -passthru} -ComputerName "srv-windows"

importer le module active directory
import-module activedirectory



#pointer sur l' ad
cd ad:

Version Powershell
$Host.Version
ou
$PSVersionTable
ou
$PSVersionTable.psversion
ou + précis
$PSVersionTable.psversion.Major


powershell - pause



La pause n'existant pas sous powershell, voici un équivalent pour Powershell

$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

Powershell - Garantie Dell



#ajout des informations du fichier "serial.txt"
Import-CSV "./serial.txt" | % {

#URL de la garantie DELL avec le serial du fichier serial.txt
$url = "http://www.dell.com/support/troubleshooting/us/en/04/Servicetag/"+$_.serial

#téléchargement de l'URL
$content = (new-object System.Net.WebClient).DownloadString($url)

#extract de l'information necessaire
$content -match 'with an end date of (?.*).'
$datefin = $matches['coontent']

#affichage des informations
#$datefin
#$_.serial

#ajout des informations dans un fichier txt
ADD-content -path "_serial_et_date_fin_garantie.txt" -value "$_.serial    $datefin"
}


Utilité du script:
Crée un tableau avec le numero de serie d'un machine Dell ainsi que sa date de fin de garantie

Besoin :
--------
1°) Connexion Internet
2°) Le script PowerShell necessite un fichier serial.txt avec inscrit sur la premiere ligne "serial" puis 1 serial Dell par ligne.

Utilisation :
-------------
En lancant le script "fin_garantie_dell.ps1", par un clic droit "executer avec powershell"



Résultat :
----------
On obtient un fichier "_serial_et_date_fin_garantie.txt" dans le même répertoire avec en 1ere colonne le serial, et en 2nd colonne, la date de fin de garantie au format US.

Batch pour lancer Powershell avec droits


Si vous cherchez comme moi la possibilité de lancer un batch (.bat) afin d'executer un script Powershell (.ps1) tout en sachant et en gardant que la configuration powershell de base empêche l'execution des scripts, voici la solution pour l'execution d'un unique script.







::autoriser l execution des scripts

powershell -executionpolicy bypass -noexit -file ".\add_domain.ps1"

pause


Ceci peut se traduire de la manière suivante:
execute PowerShell avec la polique d'execution Bypass( Ok pour cette fois)  noexit(ne pas sortir de la commande) -file (lance le fichier suivant add_domain.ps1

lundi 24 septembre 2012

Office message

Message Office Word :

Si vous obtenez ce message (Participer à l'amélioration des outils de vérification), c'est que vous avez lors du premier lancement de word valider sans regarder cette fenetre: (participez à la protection et à l'améliortaion de Microsoft Office.





Si vous avez changer d'avis :
Pour désactiver l'option :
Lancez Word,. Allez  dans Fichier / option / centre de gestion de la confidentialité /paramètres du centre de gestion de la confidentialité / option de confidentialité / décocher 's'inscrire au programme d'amélioration du produit"



mardi 18 septembre 2012

adobe reader et shockwave : desactiver les mises à jours

Pour Adobe Reader (ici : 9.0, valable également pour la version 10 en remplaçant simplement 9.0)

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Adobe\Acrobat Reader\9.0\FeatureLockdown\bUpdater
créer la clé AutoUpdate avec la valeur créer une REG_DWORD avec pour valeur : 0

Pour Adobe Shockwave.
 HKLM\SOFTWARE\Adobe\Shockwave 11\
créer la clé AutoUpdate avec la valeur  0