jeudi 26 avril 2018

Migration

Si vous devez sauvegarder le profil d'un utilisateur (W7-10), voici un petit script:

mkdir %~dp0%username%\

net use > %~dp0%username%\lecteurs_reseau.txt
%~dp0%Listeimprimante.vbs

move "%~dp0imprimante.txt" "%~dp0%username%\"
move "%~dp0imprimanteDefault.txt" "%~dp0%username%\"

rem echo %~dp0

cls
@echo Office va se fermer . sauvegarder vos document avant d aller plus loin
pause
taskkill /IM outlook.exe
taskkill /IM excel.exe
taskkill /IM word.exe



rem xcopy /S /Q /H /Y "%userprofile%\OneDrive\*" "%~dp0%username%\OneDrive\"
rem xcopy /S /Q /H /Y "%userprofile%\OneDrive Entreprise – Modifications *\*" "%~dp0%username%\OneDrive Entreprise – Modifications non synchronisées\"

xcopy /S /Q /H /Y "%userprofile%\Contacts\*" "%~dp0%username%\Contacts\"
xcopy /S /Q /H /Y "%userprofile%\Favorites\*" "%~dp0%username%\Favorites\"

xcopy /S /Q /H /Y "%userprofile%\AppData\Roaming\Microsoft\Sticky Notes\*" "%~dp0%username%\AppData\Roaming\Microsoft\Sticky Notes\"
xcopy /S /Q /H /Y "%userprofile%\AppData\Roaming\Microsoft\Excel\*" "%~dp0%username%\AppData\Roaming\Microsoft\Excel\"
xcopy /S /Q /H /Y "%userprofile%\AppData\Roaming\Microsoft\Proof\*" "%~dp0%username%\AppData\Roaming\Microsoft\Proof\"
xcopy /S /Q /H /Y "%userprofile%\AppData\Roaming\Microsoft\Signatures\*" "%~dp0%username%\AppData\Roaming\Microsoft\Signatures\"
xcopy /S /Q /H /Y "%userprofile%\AppData\Roaming\Microsoft\Templates\*" "%~dp0%username%\AppData\Roaming\Microsoft\Templates\"
xcopy /S /Q /H /Y "%userprofile%\AppData\Roaming\Microsoft\UProof\*" "%~dp0%username%\AppData\Roaming\Microsoft\UProof\"

xcopy /S /Q /H /Y "%userprofile%\AppData\Roaming\Mozilla\*" "%~dp0%username%\AppData\Roaming\Mozilla\"
xcopy /S /Q /H /Y "%userprofile%\AppData\Local\Google\*" "%~dp0%username%\AppData\Local\Google\"
xcopy /S /Q /H /Y "%userprofile%\AppData\Roaming\Apple\*" "%~dp0%username%\AppData\Roaming\Apple\"

xcopy /S /Q /H /Y "%userprofile%\Desktop\*" "%~dp0%username%\Desktop\"
xcopy /S /Q /H /Y "%userprofile%\Documents\*" "%~dp0%username%\Documents\"
xcopy /S /Q /H /Y "%userprofile%\Pictures\*" "%~dp0%username%\Pictures\"
xcopy /S /Q /H /Y "%userprofile%\Music\*" "%~dp0%username%\Music\"
xcopy /S /Q /H /Y "%userprofile%\downloads\*" "%~dp0%username%\downloads\"
xcopy /S /Q /H /Y "%userprofile%\Videos\*" "%~dp0%username%\Videos\"
xcopy /S /Q /H /Y "%userprofile%\AppData\Local\Microsoft\Outlook\*.pst" "%~dp0%username%\AppData\Local\Microsoft\Outlook\*.pst"



pause
cls
pause
echo pensez aux lecteurs reseau
echo pensez aux imprimantes
echo pensez signatures par défaut
Et le script ListeImprimante à mettre au meme :
Const ForWriting = 2
Dim fso, f  
strComputer = "."

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from Win32_Printer")

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(".\imprimante.txt", ForWriting,true)
set f2 = fso.OpenTextFile(".\imprimanteDefault.txt", ForWriting,true)

For Each objPrinter in colInstalledPrinters

if (objPrinter.Name <> "Fax") and (objPrinter.Name <> "Microsoft Office Live Meeting 2007 Document Writer") and (objPrinter.Name <> "Microsoft XPS Document Writer")  Then
        f.write(objPrinter.Name & vbnewline)
    end if

if (objPrinter.Default = true) then
    f2.write(objPrinter.Name & vbnewline)
end if


Next

Migration : VBS : PS :Signature Outlook



Si vous souhaitez enregistrer le nom des signatures utilisées pour les nouveaux emails et réponse dans Outlook, voici un petit script VBS (et PowerShell) pour afficher ces informations.

VBS:

Const ForReading = 1, ForWriting = 2
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")


Set objWord = CreateObject("Word.Application")
Set objEmailOptions = objWord.EmailOptions
Set objSignatureObject = objEmailOptions.EmailSignature

msgbox (objSignatureObject.NewMessageSignature)
Set f = fso.OpenTextFile("c:\temp\mail_signature_new.txt", ForWriting,true)
f.write(objSignatureObject.NewMessageSignature)

msgbox (objSignatureObject.ReplyMessageSignature)
Set f = fso.OpenTextFile("c:\temp\mail_signature_rep.txt", ForWriting,true)
f.write(objSignatureObject.ReplyMessageSignature)
'objSignatureObject.ReplyMessageSignature = "Signature"

PowerShell: 

#Set the signature as default for new emails
$MSWord = New-Object -ComObject word.application
$EmailOptions = $MSWord.EmailOptions
$EmailSignature = $EmailOptions.EmailSignature

$wshell = New-Object -ComObject Wscript.Shell
$wshell.Popup($EmailSignature.NewMessageSignature,0,"Done",0x1)
$wshell.Popup($EmailSignature.ReplyMessageSignature,0,"Done",0x1)

$file = new-item "c:\temp\email_new.txt" –type file -force
add-content $file $EmailSignature.NewMessageSignature

$file = new-item "c:\temp\email_rep.txt" –type file -force
add-content $file $EmailSignature.ReplyMessageSignature

#$EmailSignature.NewMessageSignature = "agadou" #insert the signature name
#$EmailSignature.ReplyMessageSignature ="agadou"

$MSWord.Quit()

VBS : Ou Suis je ?

Les scripts "Ou Suis je" sont très simple, ils affichent l'emplacement du script :
Ici un exemple en VBS:

Msgbox (Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName,"\")))

En Batch:

echo Le dossier courant est : %~dp0

En PowerShell



$CurrentDir = [System.IO.Path]::GetDirectoryName($myInvocation.MyCommand.Definition)


Vidage des condensateurs sur PC fixe et portable

Problème de carte mère, de carte réseau, de PC qui ne s'allume plus.
Un vidage des condensateurs est toujours une solution très rapide à mettre en oeuvre et qui dépanne bien.

1°) Retirer les sources d'alimentation (Cable electrique, chargeur, batteries)
( sur les HP il y a souvent une batterie inamovible : tant pis)

2°) Vidage des condensateurs :
 HP : Appuyez 15 secondes sur le bouton ON/OFF de l'ordinateur

 LENOVO : Sous le PC portable entre le pied et la batterie, se trouve un trou pour y glisser un trombone, utilisez le pendant 5secondes.

 PC Fixe : Appuyez plusieurs fois sur le bouton ON/OFF (5 à 7 fois)

HP Hard Drive - 3F0

Bonjour,

Après une petite mise à jour windows ainsi qu'un reset usine du BIOS, l'ordinateur HP ProBook 455 G4 ne démarre plus sur Windows mais affiche une erreur disque dur 3F0.
Comme on peut le voir sur plusieurs forum, il s'agit d'une erreur de disque dur.
Alors que de nombreuses personnes préconisent de racheter le disque, il existe une petite manipulation qui permet de relancer le système.

UEFI / LEGACY
Auparavent, il n'exisistait qu'un système de Boot, on ne se posait pas de question c'était le LEGACY (Heritage en Anglais). Puis une nouvelle technologie est apparu: l'UEFI qui permet de mettre en place pas mal d'option.
Ces deux systèmes sont disponibles dans le BIOS mais un disque installé en LEGACY ne démarrera pas si le BIOS est en UEFI et inversement.
Il faut donc utiliser le bon système.
En gros si ca marche pas, on change.

Comme indiqué ici : Boot selon les machines
un F10 au démarrage nous emmene dans le BIOS
on va dans les "options de boot" et sélectionne le LEGACY (qui desactive le secure BOOT)
On sauvegarde et reboot.
HP propose une nouvelle fonctionnalité un code à resaisir pour appliquer la modification du Bios.
Vu qu'on est francais on a tendance à faire Shift ou MAJ + &é"''(- pour avoir les chiffres) , mais ici on n'utilise pas le Shift/Maj car clavier US.
l'option est donc appliqué, et le système Windows démarre.




vendredi 20 avril 2018

webcam et script

Decouverte d'outils:

L'outil CommandCam.exe est bien pratique si vous souhaitez prendre une photo en ligne de commande.

De base, il prend directement une image, mais plusieurs arguments peuvent être associés :
-spécifier la source si plusieurs webcam (/devname, /devserial, /devnum)
-la redondances toutes les x secondes (/delay)
-l'emplacement de l'image enregistrée (/filename)
 -mode silencieux (/quiet)

L'outil est très léger (64ko) et bien pratique.

On pourra l'associer à d'autres outils tel que PSexec pour l’exécuter à distance.
d'autre arguments peuvent être associés:
-le nom de la machine distante (\\computername)
-Copier l'executable sur la machine distante (-c c:\windows\system32\notepad.exe) (sans guillemets)
-ecraser l'executable si copie (-c -f)
pour plus de facilité, vous pouvez utiliser l'outil FEPSTOOLS

on met tout ça en VBS par exemple:

PCName = InputBox("Entrer le NOM de PC?","?","minint-6BKDFR5")
'connaitre l'emplacement du script
strPath = Wscript.ScriptFullName
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(strPath)
strFolder = objFSO.GetParentFolderName(objFile)
'Test ping machine
PING = objShell.Run("Ping.exe " & PCName, 0,TRUE)
'Msgbox "Resultat du PING " & PING
            if PING = 1 Then
                msgbox "Pc injoignable"
                WScript.Quit
            end if

Set objShell = CreateObject("WScript.Shell")
set objScriptExec = objShell.Exec("cmd.exe /k "&strFolder&"\PsExec.exe \\"&PCName&" -c -f "&strFolder&"\commandcam.exe /quiet /filename c:\capture.bmp")
'recuperer la capture:
set objScriptExec = objShell.Exec("cmd.exe /k move /Y \\"&PCName&"\c$\capture.bmp "&strFolder&"\"&PCName&"-%DATE:~0,2%%DATE:~3,2%%DATE:~6,2%-%time:~0,2%%time:~3,2%.bmp")

On pourra y associer des recherches via AD, une élévation de droits (via un autre script VBS ou avec PSEXEC)

jeudi 12 avril 2018

la session a été ouverte en utilisant le profil par défaut du système



Si vous avez ce message d'erreur sur Windows 7:
"la session a été ouverte en utilisant le profil par défaut du système"
ou
"echec de l'ouverture de session par le service de profil utilisateur"

Voici les manipulations à faire:
-Redémarrer le PC avec la touche F8 enfoncé pour démarrer en mode sans echec
-lancer regedit
-recherchez et renommez la clef:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S1-5-XXXXXX
en
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S1-5-XXXXXX.OLD

et renommez au meme endroit 
S1-5-XXXXXX.BAK
en
S1-5-XXXXXX  

redémarrez l'ordinateur, tout est ok