Bug Winst ?

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

Bug Winst ?

Beitrag von nicolaslebrun »

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 ?

Beitrag von Antoine GUEVARA »

Bonjour,

Et avec $CmdLine[0] $CmdLine[1] et $CmdLine[2] cela donne quoi ?
nicolaslebrun
Beiträge: 107
Registriert: 18 Apr 2011, 11:43

Re: Bug Winst ?

Beitrag von nicolaslebrun »

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: 107
Registriert: 18 Apr 2011, 11:43

Re: Bug Winst ?

Beitrag von nicolaslebrun »

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 ?

Beitrag von poterealpopolo »

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 ?

Beitrag von poterealpopolo »

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
Antworten