Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Création et "réglage" d'un utilisateur local...

8 réponses
Avatar
moi
Bonjour,

Pour des raisons un peu longue à expliquer (...)
je dois agir sur un ensemble de machines
(XP-Pro qui sont intégrées dans un domaine 2003)
pour

créer un utilisateur local et figer son mot de passe

lui appliquer une stratégie
pour bloquer l'accès à certains lecteurs (locaux zossi ...)
(éventuellement ...j'ai l'extrait reg associé )

L'idéal serait, qu'en plus, je puisse
provoquer la création de l'environnement,
comme lors d'une première connexion,

pour mettre sur le bureau tout neuf des raccourcis spéciaux
( avec lignes de commandes ...)
( ça c'est facile en vbs avec un objet WsShell )

Bref ...

Créer l'utilisateur avec Net User je pense savoir,
pour le mot de passe, en relisant la doc de net user j'espère trouver
ça.

mais créer l'environnement et appliquer la stratégie ,
avec un script , je ne suis pas sûr que ce soit si évident ...

donc, je suis à la recherche d'idées lumineuses
comme certains ici savent en avoir ...

Merci d'avance,

HB

8 réponses

Avatar
moi
Re - bonsoir,

En attendant d'autres idées
je commencais à faire ça en vbs
(langage qui me semble plus souple pour faire tout ça)
et, oh, bizarre....
l'objet utilisateur local récupéré par
GetObject("WinNT://./NomDeLogin, user")
possède bien
la méthode SetPassword
la propriété PasswordRequired

mais je n'y vois pas de propriétés qui
correspondent aux options de NET USER
suivantes :

/passwordchg:no
et
/expires:never

Docteur, est-ce normal ?

Si oui ...

Peut-on tester "simplement", en ligne de commande,
l'existence d'un utilisateur local ???
( auquel ca, je me passerais peut-être du vbs ...)

A+

HB
Avatar
Méta-MCI \(MVP\)
Bonsoir !


NET USER
va lister les utilisateurs locaux.


net user | find /C "moi"
affichera 1 si l'utilisateur "moi" existe ; et 0 s'il n'existe pas
(attention : si un nom d'utilisateur est préfixe d'un autre, ça
affichera 2 ou 3 ou ...)


exemple de batch utilisant net user :
@echo off
setlocal
for /F %%i in ('net user ^| find /C "moi"') DO set PRESENT=%%i
IF %PRESENT%==0 (
echo Utilisateur absent
) ELSE (
echo Utilisateur présent
)
endlocal


@+

MCI
Avatar
moi
Bonsoir,


NET USER
va lister les utilisateurs locaux.


ça je le savais mais ...


net user | find /C "moi"
affichera 1 si l'utilisateur "moi" existe ; et 0 s'il n'existe pas
(attention : si un nom d'utilisateur est préfixe d'un autre, ça
affichera 2 ou 3 ou ...)


... çà c'est déjà moins évident pour moi
car je reste imperméable aux richesse de ce magic ' pipe ;o)
Franchement je l'avoue ...
Mon niveau d'incompétence n'est pas loin... ;o(



exemple de batch utilisant net user :
@echo off
setlocal
for /F %%i in ('net user ^| find /C "moi"') DO set PRESENT=%%i
IF %PRESENT%==0 (
echo Utilisateur absent
) ELSE (
echo Utilisateur présent
)
endlocal




les guilllemets simples et doubles ...
et puis une boucle sur une seule valeur pour tester ...
trofor comme disent les jeunes ;o)
J'ai relu 4 fois avant de comprendre :o(((


Super beaucoup merci très beaucoup !!!!

C'est pil-poil ce qui me convient !

A+

HB

Avatar
moi
Notre ami Méta-MCI (MVP) tapota :



exemple de batch utilisant net user :
@echo off
setlocal
for /F %%i in ('net user ^| find /C "moi"') DO set PRESENT=%%i
IF %PRESENT%==0 (
echo Utilisateur absent
) ELSE (
echo Utilisateur présent
)
endlocal



Ouah ...

net user , je savais mais ça ...

j'ai relu lentement 4 fois avant de comprendre
ce que faisait la fausse boucle for .
sébo ...

Bravo et beaucoup merci !

C'est exactement ce dont je rêvais ;o)


A+

HB

Avatar
moi
re,

désolé pour le doublon
j'ai fais une fausse manip
et j'étais persuadé
que l'autre message
n'était pas parti...

HB
Avatar
O.B. [MVP]
bonjour moi,

Dans le news moi tapote :
pour mettre sur le bureau tout neuf des raccourcis spéciaux
( avec lignes de commandes ...)
( ça c'est facile en vbs avec un objet WsShell )


perso pour mettre les icones de racourci par VBS je fait ça :
-----------------------
'5c- copie icone sur le bureau
dim filename1, file1, fileexist1

filename1 = "C:Documents and SettingsAll UsersBureauracoucis.lnk"
Set file1 = CreateObject("Scripting.FileSystemObject")

if not file1.FileExists(filename1) then
chemin = "C:Documents and SettingsAll UsersBureau"
set ddr = CreateObject("Scripting.FileSystemObject")
ddr.CopyFile "prepacdracoucis.lnk", chemin & "racoucis.lnk"
end if
----------------------

Pour retirer les veilles je lance un reg par VBS
avec les clefs :
----------------------
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerPower]
"Heuristics"=hex:05,00,00,00,00,01,00,00,72,45,00,00,0b,00,00,00,f1,06,00,00
[HKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession ManagerPower]
"Heuristics"=hex:05,00,00,00,00,01,00,00,72,45,00,00,0b,00,00,00,f1,06,00,00
[HKEY_CURRENT_USERControl PanelDesktop]
"ScreenSaveActive"="0"
[HKEY_CURRENT_USERControl PanelPowerCfg]
"CurrentPowerPolicy"="3"
[HKEY_CURRENT_USERControl PanelPowerCfgPowerPolicies3]
"Name"="Toujours actif"
"Description"="Ce mode permet de conserver l'ordinateur disponible aux accès
par le réseau. Utilisez ce mode si vous ne disposez pas de système de mise
en éveil par le réseau."
"Policies"=hex:01,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,32,32,00,00,04,00,00,00,04,00,
00,00,00,00,39,77,2e,f2,07,00,00,00,00,00,84,03,00,00,00,00,00,00,08,07,00,
00,00,01,64,64,64,64,92,7c
----------------------

je prend pas mal de comande sur msdn ici :
http://msdn2.microsoft.com/en-us/library/aa394582(VS.85).aspx

comme par exemple sur des pc en réseau Poste à poste PC je modifie le
Worksgroup
mon exemple ci'dessou est donc pour un worksgroup mais on peut aussi
modifier le domaine avec ce type de commande (voir pour les options ici :
http://msdn2.microsoft.com/en-us/library/aa392154(VS.85).aspx)

----------------------
strDomain = "WORKSGROUP"
strPassword = " "
strUser = "UTILISATEUR"
Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName
Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!" &
strComputer & "rootcimv2:Win32_ComputerSystem.Name='" & strComputer & "'")
'ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, strPassword,
strDomain & "" & strUser, NULL, JOIN_DOMAIN + ACCT_CREATE)
ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain)
-------------------------


--
Olivier B.
MVP Windows Shell/User
"le savoir est fait pour être partagé"
http://www.benquet.com

merci de ne répondre que dans le newsgroup
sinon retirer le "pas_de_spam_" devant mon adresse
(adresse rarement relevée)

Avatar
Gilles LAURENT [MVP]
"moi" a écrit dans le message de
news:%
| Re - bonsoir,

Bonsoir,

| En attendant d'autres idées
| je commencais à faire ça en vbs
| (langage qui me semble plus souple pour faire tout ça)
| et, oh, bizarre....
| l'objet utilisateur local récupéré par
| GetObject("WinNT://./NomDeLogin, user")
| possède bien
| la méthode SetPassword
| la propriété PasswordRequired
|
| mais je n'y vois pas de propriétés qui
| correspondent aux options de NET USER
| suivantes :
|
| /passwordchg:no
| et
| /expires:never
|
| Docteur, est-ce normal ?

Ces options sont définies dans la propriété UserFlags :

Set oUser=GetObject("WinNT://./MyUser,User")
nFlags=oUser.Get("UserFlags")
nFlags=nFlags Or &H40 ' /passwordchg:no
nFlags=nFlags Or &H10000 ' expires:never
oUser.Put "UserFlags", nFlags
oUser.SetInfo

| Si oui ...

Donc Non :-)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
moi
Notre ami Gilles LAURENT [MVP] tapota :

(...)
Bonjour,



Ces options sont définies dans la propriété UserFlags :

Set oUser=GetObject("WinNT://./MyUser,User")
nFlags=oUser.Get("UserFlags")
nFlags=nFlags Or &H40 ' /passwordchg:no
nFlags=nFlags Or &H10000 ' expires:never
oUser.Put "UserFlags", nFlags
oUser.SetInfo

Si oui ...


Donc Non :-)


Merci beaucoup !!!

A+

HB