Bug Winst ?

Ce forum est destiné au support entre utilisateurs de logiciel OPSI
nicolaslebrun
Beiträge: 86
Registriert: 18 Apr 2011, 11:43

Bug Winst ?

Beitragvon nicolaslebrun » 13 Feb 2012, 12:13

Bonjour,

Je pense avoir découvert un bug...

Code: Alles auswählen

[Actions]
Message "Installation de owm-comptes-locaux en cours ..."
DefVar $UserName$
Set $UserName$ = GetProductProperty("Local_Login", "secours")
DefVar $UserPassWord$
Set $UserPassWord$ = GetProductProperty("Local_PassWord", "help!")
DefVar $UserGroup$
Set $UserGroup$ = GetProductProperty("Local_UserGroup", "Utilisateurs")
Execwith_Autoit "autoit3.exe" PASS $UserName$ $UserPassWord$ $UserGroup$

[ExecWith_Autoit]
$UserName = $CmdLine[1]
$Password = $CmdLine[2]
$UserGroup = $CmdLine[3]
MsgBox(0,"", $UserName & $Password & &UserGroup


Winst n'envoie qu'un seul paramètre parmi les trois $UserName$ $UserPassWord$ $UserGroup$

Par contre, il y a bien 3 paramètre si je fais

Code: Alles auswählen

Execwith_Autoit "autoit3.exe" PASS one two three



Autre chose, Winst n'accepte pas le passage de /LetThemGo pour Autoit

Des solutions ?

Cordialement

Nicolas Lebrun

Antoine GUEVARA
Beiträge: 54
Registriert: 13 Apr 2011, 22:01
Wohnort: GIP RECIA - France

Re: Bug Winst ?

Beitragvon Antoine GUEVARA » 13 Feb 2012, 13:38

Bonjour,

Et avec $CmdLine[0] $CmdLine[1] et $CmdLine[2] cela donne quoi ?

nicolaslebrun
Beiträge: 86
Registriert: 18 Apr 2011, 11:43

Re: Bug Winst ?

Beitragvon nicolaslebrun » 13 Feb 2012, 19:09

Bonjour,

Non, non, le pb n'est pas là ... $CmdLine[0] donne le nombre d'arguments... C'est une instruction Autoit. Je pourrais cependant le tester mais c'est pas ça. (Faire un msgbox supplémentaire)

Si je fais l'appel par

Code: Alles auswählen

Execwith_Autoit "autoit3.exe" PASS one two three


Les journaux d'install m'informent que les 3 paramètres sont passés...

Mais si je fais

Code: Alles auswählen

Execwith_Autoit "autoit3.exe" PASS $UserName$ $UserPassWord$ $UserGroup$


Les journaux d'install me disent que l'appel s'est fait uniquement avec la valeur de la première variable ... pas les deux autres...
J'ai essayé des guillemets, mais alors il ne convertit pas les variables.

Je crois vraiment qu'il y a un bug winst.

Nicolas

nicolaslebrun
Beiträge: 86
Registriert: 18 Apr 2011, 11:43

Re: Bug Winst ?

Beitragvon nicolaslebrun » 14 Feb 2012, 22:09

Je confirme le bug sur les dernières versions

opsi-winst installed success none 4.11.2.3-1

le log me donne

Code: Alles auswählen

[5] [14/02/2012 22:02:13] message Installation de owm-comptes-locaux en cours ...
[5] [14/02/2012 22:02:13]
[5] [14/02/2012 22:02:13] Set  $UserName$ = GetProductProperty("Local_Login", "secours")
[6] [14/02/2012 22:02:13]   The value of the variable "$UserName$" is now: "secours"
[5] [14/02/2012 22:02:13]
[5] [14/02/2012 22:02:13] Set  $UserPassWord$ = GetProductProperty("Local_PassWord", "help!")
[6] [14/02/2012 22:02:13]   The value of the variable "$UserPassWord$" is now: "help!"
[5] [14/02/2012 22:02:13]
[5] [14/02/2012 22:02:13] Set  $UserGroup$ = GetProductProperty("Local_UserGroup", "Utilisateurs")
[6] [14/02/2012 22:02:13]   The value of the variable "$UserGroup$" is now: "Utilisateurs"
[5] [14/02/2012 22:02:13]
[5] [14/02/2012 22:02:13] Execution of Execwith_Autoit
[6] [14/02/2012 22:02:13]   c:\opsi.org\tmp\_winstbat_1.bat saved back
[6] [14/02/2012 22:02:13]   Executing "autoit3.exe"  "c:\opsi.org\tmp\_winstbat_1.bat"  help!
[6] [14/02/2012 22:02:19]               
[6] [14/02/2012 22:02:19]               output:
[6] [14/02/2012 22:02:19]               --------------
[6] [14/02/2012 22:02:19]   
[6] [14/02/2012 22:02:19] Delete "c:\opsi.org\tmp\_winstbat_*"
[6] [14/02/2012 22:02:19]   Search "c:\opsi.org\tmp\"
[6] [14/02/2012 22:02:19]   File "c:\opsi.org\tmp\_winstbat_1.bat"
[6] [14/02/2012 22:02:19]     The file has been deleted
[1] [14/02/2012 22:02:19] ___________________


avec ce fichier setup.ins

Code: Alles auswählen

[Actions]
Message "Installation de owm-comptes-locaux en cours ..."

DefVar $UserName$
Set $UserName$ = GetProductProperty("Local_Login", "secours")

DefVar $UserPassWord$
Set $UserPassWord$ = GetProductProperty("Local_PassWord", "help!")

DefVar $UserGroup$
Set $UserGroup$ = GetProductProperty("Local_UserGroup", "Utilisateurs")

Execwith_Autoit "autoit3.exe" PASS $UserPassWord$ $UserName$ $UserGroup$
;WINST /LetThemGo


[ExecWith_Autoit]
; Init objects
Const $ADS_UF_DONT_EXPIRE_PASSWD = 0X10000
Const $ADS_UF_PASSWD_CANT_CHANGE = 0X40
$UserName = $CmdLine[1]
$Password = $CmdLine[2]
$UserGroup = $CmdLine[3]

$strComputer = @ComputerName
$Description = "Utilisateur de secours"
; Check if account exists .. if not create it
$objUser = ObjGet("WinNT://" & $strComputer & "/" & $UserName)
If @Error then
    $colAccounts = ObjGet("WinNT://" & $strComputer & "")
    $objUser = $colAccounts.Create("user", $UserName)
    $objUser.SetPassword ($Password)
    $objUser.Put ("Fullname", $Description)
    $objUser.Put ("Description", $Description)
    $objUser.SetInfo
EndIf
; Changement du mot de passe
$objUser = ObjGet("WinNT://" & @ComputerName & "/" & $UserName)
$objUser.SetPassword($Password)
$objUser.SetInfo
; Lit les reglages courant et BitOR pour s'assurer que "Le mot de passe n'expire jamais est on"
$oldFlags = $objUser.Get("UserFlags")
$newFlags = BitOR($oldFlags,$ADS_UF_DONT_EXPIRE_PASSWD)
$objUser.Put ("UserFlags", $newFlags) ;expire the password
$objUser.SetInfo
;Ajout l'utilisateur a un groupe
;     cette instruction passe pas ... group users ? administrators ?
MsgBox(0,"debug", $UserName & " " & $Password & " " & $UserGroup)
$objGroup = ObjGet("WinNT://" & $strComputer & "/" & $UserGroup",group")
$objGroup.Add($objUser.ADsPath)
;lit les réglages et s'assure que le mot de passe ne peut pas être changé
$oldFlags = $objUser.Get("UserFlags")
$newFlags = BitOR($oldFlags,$ADS_UF_PASSWD_CANT_CHANGE)
$objUser.Put ("UserFlags", $newFlags) ;expire the password
$objUser.SetInfo


Dois-je poster ailleurs ?

Nicolas

Benutzeravatar
poterealpopolo
Beiträge: 61
Registriert: 25 Mai 2011, 23:38

Re: Bug Winst ?

Beitragvon poterealpopolo » 15 Feb 2012, 17:01

Bonjour,

je vais rentrer le bug aux developpeurs d'opsi.

Je vous tiendrai au courant dans les prochaines jours.

Bien à vous
Représentant Officiel OPSI Francophone
http://www.opensides.eu official certified partner
http://www.opsi.org/fr

Benutzeravatar
poterealpopolo
Beiträge: 61
Registriert: 25 Mai 2011, 23:38

Re: Bug Winst ?

Beitragvon poterealpopolo » 20 Feb 2012, 18:22

Bonjour,

Il semble y avoir un problème en passant des variables (tout fonctionne très bien avec des chaînes).

Mais ce n'est pas vraiment un problème parce qu'il ya une meilleure façon de faire le travail:

Vous pouvez utiliser des constantes et des variables winst directement à l'intérieur de chaque section secondaire, car ils seront remplacés par leur valeur avant l'exécution.

Il est donc possible d'écrire:

Code: Alles auswählen

Execwith_Autoit "autoit3.exe"


[ExecWith_Autoit]

; Init objects

Const $ADS_UF_DONT_EXPIRE_PASSWD = 0X10000

Const $ADS_UF_PASSWD_CANT_CHANGE = 0X40

$UserName = "$UserPassWord$"

$Password = "$UserName$"

$UserGroup = "$UserGroup$"


Bien à vous
Représentant Officiel OPSI Francophone
http://www.opensides.eu official certified partner
http://www.opsi.org/fr