premier commit

tags/wpkg-packages-0.0.25-1
Daniel Berteaud 12 years ago
commit 84c6b4928c
  1. 22
      packages/wpkg.xml
  2. 330
      softwares/localgp.vbs
  3. 76
      wpkg-packages.spec

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<packages>
<package id="wpkg"
name="WPKG Client"
revision="17"
reboot="false"
priority="95">
<variable name="PKG_VERSION" value="0.1" />
<check type="registry" condition="equals" path="HKLM\SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Shutdown\0\0\Script" value="wpkg.bat" />
<check type="file" condition="exists" path="%SYSTEMROOT%\system32\GroupPolicy\Machine\Scripts\Shutdown\wpkg.bat" />
<install cmd='%COMSPEC% /C if not exist %SYSTEMROOT%\system32\GroupPolicy\Machine\Scripts\Shutdown mkdir %SYSTEMROOT%\system32\GroupPolicy\Machine\Scripts\Shutdown' />
<install cmd='xcopy /Y %SETTINGS%\wpkg\wpkg.bat %SYSTEMROOT%\system32\GroupPolicy\Machine\Scripts\Shutdown\' />
<install cmd='%COMSPEC% /C regedit /S %SOFTWARE%\wpkg\gp.reg' />
<install cmd='cscript //Nologo "%SOFTWARE%\misc\localgp.vbs" wpkg.bat false MACHINE' />
<upgrade include='install' />
</package>
</packages>

@ -0,0 +1,330 @@
'*********************************************************
' En-tête
'*********************************************************
' °Author : BLUTEAU Erwan et christian grandjean
' °Date : 28.01.2011
' °Version : 3.0
'
' °Script description :
' Add entries in local GPO for "Machine => Startup/Shutdown" or "User
' => Logon/Logoff" entries.
'
' °Script parameters :
' sScript = Script or application to run
' sParameters = command line parameters
' sAddInStartupOrLogin
' True = Startup / Logon
' False = Shutdown / Logoff
' sMACHINEorUSER
' MACHINE = Machine Policy
' USER = User Policy
'
' °Script workflow :
' 1. Set ini file to normal mode
' 2. Edit ini file
' 3. Create/Add changes
' 4. Delete GPO registry key
' 5. Set ini file to hidden mode
' 6. Run GPUPDATE to integrate entries in registry
'
' °Remarks :
' The script accept maximum 9 entries in ini file
'
'********************************************************
' Fin en-tête
'*********************************************************
Const ForReading =1 'Constante pour l ouverture en lecture d un fichier
Const ForWriting = 2
const ForAppending = 8
Const DeleteReadOnly = True
'*********************************************************
'recupération des paramétres
'*********************************************************
Set objArgs = Wscript.Arguments ' Objet pour récupérer les arguments
'Param 1
TargetRunningScript=Wscript.Arguments(0)
'Param 2
if Wscript.Arguments.count <= 3 then
TargetRunningScriptParam=""
else
TargetRunningScriptParam = Wscript.Arguments(1)
if Wscript.Arguments.count >= 5 then
for i = 2 to Wscript.Arguments.count-3
TargetRunningScriptParam = TargetRunningScriptParam & " " & Wscript.Arguments(i)
next
end if
end if
'Param 3
TargetTime=Wscript.Arguments(Wscript.Arguments.count-2)
'Param 4
TargetGPO=Wscript.Arguments(Wscript.Arguments.count-1)
'wscript.echo "param1=" & TargetRunningScript
'wscript.echo "param2=" & TargetRunningScriptParam
'wscript.echo "param3=" & TargetTime
'wscript.echo "param4=" & TargetGPO
'LANCEMENT SCRIPT
WriteGPOScriptPolicyGPTINIFILE TargetTime,TargetGPO
WriteGPOScriptPolicy TargetRunningScript,TargetRunningScriptParam,TargetTime,TargetGPO
'*********************************************************
' FIN
'*********************************************************
'WScript.Sleep 10000
WScript.Quit
'*********************************************************
' LES FONCTIONS
'*********************************************************
Sub WriteGPOScriptPolicyGPTINIFILE(ByVal sAddInStartupOrLogin, ByVal sMACHINEorUSER)
Dim objFSO,ooShell
Dim sSys32
Dim FicGptIni, PathGptIni, TmpVar, NbrLigne, i,ext, version
Dim TABGptIni()
Set ooShell = CreateObject("WSCript.Shell") 'Pour RUN de commandes
Set objFSO = CreateObject("Scripting.FileSystemObject") '
Set sSys32 = objFSO.GetSpecialFolder(1)
PathGptIni = sSys32 & "\GroupPolicy\gpt.ini"
PathGptIniTMP = PathGptIni & ".tmp"
NbrLigne = 0
IF not objFSO.FileExists(PathGptIni) Then
Set FicGptIni = objFSO.OpenTextFile(PathGptIni, ForWriting,true)
FicGptIni.write("[General]")
FicGptIni.close
end if
Set FicGptIni = objFSO.OpenTextFile(PathGptIni, ForReading)
Do Until FicGptIni.AtEndOfStream
NbrLigne = NbrLigne + 1
TmpVar = FicGptIni.ReadLine()
ReDim preserve TABGptIni(NbrLigne)
TABGptIni(NbrLigne)=TmpVar
'wscript.echo TABGptIni(NbrLigne)
Loop
'wscript.echo "***********************"
'wscript.echo "***********************"
if sMACHINEorUSER = "MACHINE" then
gPCMachineLine = 0
generalLine = 0
For i = 0 to NbrLigne
if instr(1,TABGptIni(i),"gPCMachineExtensionNames", 1) then
gPCMachineLine = 1
if instr(TABGptIni(i),"[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}]") then
'wscript.echo "deja présent"
else
ext = right(TABGptIni(i),len(TABGptIni(i))-instr(TABGptIni(i),"="))
TABGptIni(i) = "gPCMachineExtensionNames=" & "[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}]" & ext
end if
end if
if instr(1,TABGptIni(i),"Version=",1) AND (instr(1,TABGptIni(i),"gPCFunctionalityVersion",1)=0) then
version = right(TABGptIni(i),len(TABGptIni(i))-instr(TABGptIni(i),"="))
version = version + 65536
TABGptIni(i) = "Version=" & version
end if
if instr(1,TABGptIni(i),"[General]", 1) then
generalLine = 1
end if
if i = NbrLigne AND generalLine = 0 then
TABGptIni(i) = TABGptIni(i) & vbNewLine & "[General]"
end if
if i = NbrLigne AND gPCMachineLine = 0 then
TABGptIni(i) = TABGptIni(i) & vbNewLine & "gPCMachineExtensionNames=" & "[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}]" & vbNewLine & "Version=1"
end if
Next
end if
if sMACHINEorUSER = "USER" then
gPCUserLine = 0
For i = 0 to NbrLigne
if instr(TABGptIni(i),"gPCUserExtensionNames") then
if instr(TABGptIni(i),"[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B66650-4972-11D1-A7CA-0000F87571E3}]") then
'wscript.echo "deja présent"
else
ext = right(TABGptIni(i),len(TABGptIni(i))-instr(TABGptIni(i),"="))
TABGptIni(i) = "gPCUserExtensionNames=" & "[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B66650-4972-11D1-A7CA-0000F87571E3}]" & ext
end if
end if
if instr(TABGptIni(i),"Version=") AND (instr(TABGptIni(i),"gPCFunctionalityVersion")=0) then
version = right(TABGptIni(i),len(TABGptIni(i))-instr(TABGptIni(i),"="))
version = version + 1
TABGptIni(i) = "Version=" & version
end if
if i = NbrLigne AND gPCUserLine = 0 then
TABGptIni(i) = TABGptIni(i) & vbNewLine & "gPCUserExtensionNames=" & "[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}]" & vbNewLine & "Version=1"
end if
Next
end if
on error goto 0
If objFSO.FileExists(PathGptIniTMP) Then
objFSO.DeleteFile(PathGptIniTMP)
End If
Set FicGptIniTEMP = objFSO.OpenTextFile(PathGptIniTMP, ForWriting,true)
for k = 0 to NbrLigne
'wscript.echo TABGptIni(k)
FicGptIniTEMP.write(TABGptIni(k) & vbNewLine)
next
FicGptIniTEMP.close
objFSO.CopyFile PathGptIniTMP, PathGptIni, 1
If objFSO.FileExists(PathGptIniTMP) Then
objFSO.DeleteFile(PathGptIniTMP)
End If
End Sub
'*********************************************************
Sub WriteGPOScriptPolicy(ByVal sScript, ByVal sParameters, ByVal sAddInStartupOrLogin, ByVal sMACHINEorUSER)
Dim sScriptPath, sSys32, sTMP
Dim oINI, ooShell, ooFSO, oINIProperties, oRegFile
Dim iLastStartup, iLastShutdown
Dim sOption1, sOption2, sStartup, sShutdown
sStartup = ""
sShutdown = ""
sMACHINEorUSER = Ucase(sMACHINEorUSER)
Set ooShell = CreateObject("WSCript.Shell")
Set ooFSO = CreateObject("Scripting.FileSystemObject")
Set sSys32 = ooFSO.GetSpecialFolder(1)
' Check if COMPUTER or USER Policy
If sMACHINEorUSER = "MACHINE" Then
sScriptPath = sSys32 & "\GroupPolicy\Machine\Scripts\scripts.ini"
Elseif sMACHINEorUSER = "USER" Then
sScriptPath = sSys32 & "\GroupPolicy\User\Scripts\scripts.ini"
Else
WScript.Echo "Please set value for sMACHINEorUSER !"
WScript.Quit
End If
If (Not ooFSO.FileExists(sScriptPath)) Then
' Add new value in startup or shutdown
If sAddInStartupOrLogin Then
iLastStartup = 0
If sMACHINEorUSER = "MACHINE" Then sStartup = VbCrLf & "[Startup]"
If sMACHINEorUSER = "USER" Then sStartup = VbCrLf & "[Logon]"
sStartup = sStartup & VbCrLf & iLastStartup & "CmdLine=" & sScript
sStartup = sStartup & VbCrLf & iLastStartup & "Parameters=" & sParameters
Else
iLastShutdown = 0
If sMACHINEorUSER = "MACHINE" Then sStartup = VbCrLf & "[Shutdown]"
If sMACHINEorUSER = "USER" Then sStartup = VbCrLf & "[Logoff]"
sShutdown = sShutdown & VbCrLf &iLastShutdown & "CmdLine=" & sScript
sShutdown = sShutdown & VbCrLf &iLastShutdown & "Parameters=" & sParameters
End If
Else
' Set file as normal
Set oINIProperties = ooFSO.GetFile(sScriptPath)
oINIProperties.Attributes = 0 'The File become Hidden!
' read
Set oINI = ooFSO.OpenTextFile(sScriptPath, 1)
iLastStartup = 0
iLastShutdown = 0
Do While 1 = 1
On Error Resume Next
sTMP = oINI.ReadLine
'If sTMP = VbCrLf Then sTMP = ""
If Err > 0 Then Exit Do
On Error GoTo 0
If InStr(1, UCase(sTMP), UCase("[Startup]")) > 0 And sMACHINEorUSER = "MACHINE" Then sOption1 = sTMP
If InStr(1, UCase(sTMP), UCase("[Shutdown]")) > 0 And sMACHINEorUSER = "MACHINE" Then sOption2 = sTMP
If InStr(1, UCase(sTMP), UCase("[Logon]")) > 0 And sMACHINEorUSER = "USER" Then sOption1 = sTMP
If InStr(1, UCase(sTMP), UCase("[Logoff]")) > 0 And sMACHINEorUSER = "USER" Then sOption2 = sTMP
If sOption1 = "[Startup]" And sOption2 <> "[Shutdown]" Or sOption1 = "[Logon]" And sOption2 <> "[Logoff]" Then
sStartup = sStartup & VbCrLf & sTMP
On Error Resume Next
'WScript.Echo CInt(Left(sTMP, 1))
iLastStartup = Cint(Left(sTMP, 1)) + 1
On Error GoTo 0
'WScript.Echo "Start Next value = " & iLastStartup
Else
sShutdown = sShutdown & VbCrLf & sTMP
On Error Resume Next
'WScript.Echo CInt(Left(sTMP, 1))
iLastShutdown = CInt(Left(sTMP, 1)) + 1
On Error GoTo 0
'WScript.Echo "Shutdown Next value = " & iLastShutdown
End If
Loop
' Add new value in startup or shutdown
If sAddInStartupOrLogin Then
' If key dont exist
If InStr(1, sStartup, "[Startup]") = 0 And sMACHINEorUSER = "MACHINE" Then sStartup = VbCrLf & "[Startup]"
If InStr(1, sStartup, "[Logon]") = 0 And sMACHINEorUSER = "USER" Then sStartup = VbCrLf & "[Logon]"
' Don't add the script agin if it's already there. Not very foolproof but....
If InStr(1, sStartup, "CmdLine=" & sScript, 1) = 0 Then
sStartup = sStartup & VbCrLf &iLastStartup & "CmdLine=" & sScript
sStartup = sStartup & VbCrLf & iLastStartup & "Parameters=" & sParameters
End If
Else
' If key dont exist
If InStr(1, sShutdown, "[Shutdown]") = 0 And sMACHINEorUSER = "MACHINE" Then sShutdown = VbCrLf & "[Shutdown]"
If InStr(1, sShutdown, "[Logoff]") = 0 And sMACHINEorUSER = "USER" Then sShutdown = VbCrLf & "[Logoff]"
If InStr(1, sShutdown, "CmdLine=" & sScript, 1) = 0 Then
sShutdown = sShutdown & VbCrLf & iLastShutdown & "CmdLine=" & sScript
sShutdown = sShutdown & VbCrLf & iLastShutdown & "Parameters=" & sParameters
End If
End If
' Close file
oINI.Close
End If
On Error GoTo 0
' prin result
'WScript.Echo sStartup & sShutdown
' Write result in ini file
Set oINI = ooFSO.CreateTextFile(sScriptPath, True)
oINI.WriteLine sStartup & sShutdown
oINI.Close
' Set file as hidden
Set oINIProperties = ooFSO.GetFile(sScriptPath)
oINIProperties.Attributes = 2 'The File become Hidden!
' Remove registry key
'Set oRegFile = ooFSO.CreateTextFile(CurDir & "\~TMP-REG-WriteGPOScriptPolicy-Script.reg", True)
'oRegFile.WriteLine "Windows Registry Editor Version 5.00"
'oRegFile.WriteLine "[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts]"
'oRegFile.Close
'oShell.Run "REGEDIT /S " & CurDir & "\~TMP-REG-WriteGPOScriptPolicy-Script.reg"
'oFSO.DeleteFile CurDir & "\~TMP-REG-WriteGPOScriptPolicy-Script.reg", True
' Check if COMPUTER or USER Policy
If sMACHINEorUSER = "MACHINE" Then
' Reload configuration from ini file
ooShell.Run "GPUPDATE /Target:Computer /Wait:30", 0, True
'if err.number <> 0 then
' wscript.echo "ERREUR : " & err.Number & " : " & err.Description
' wscript.sleep 10000
'end if
Elseif sMACHINEorUSER = "USER" Then
' Reload configuration from ini file
ooShell.Run "GPUPDATE /Target:User /Force /Wait:30", 0, True
Else
WScript.Echo "Please set value for sMACHINEorUSER !"
WScript.Quit
End If
End Sub

@ -0,0 +1,76 @@
%define version 0.0.1
%define release 0.beta1
Name: wpkg-packages
Version: %{version}
Release: %{release}%{?dist}
Summary: Meta package for WPKG on iPasserelle
Group: System/Softwares
URL: http://www.ipasserelle.com
Source0: %{name}-%{version}.tar.gz
License: misc
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot
BuildArch: noarch
BuildRequires: unix2dos
Requires: ipasserelle-gp
Requires: wpkg-7zip
Requires: wpkg-adminpack
Requires: wpkg-adobe_reader
Requires: wpkg-cacert
Requires: wpkg-ccleaner
Requires: wpkg-cleaner
Requires: wpkg-firefox
Requires: wpkg-flash
Requires: wpkg-fusioninventory
Requires: wpkg-ghostscript
Requires: wpkg-gimp
Requires: wpkg-inkscape
Requires: wpkg-itunes
Requires: wpkg-jre
Requires: wpkg-libreoffice
Requires: wpkg-logs
Requires: wpkg-notepad++
Requires: wpkg-ntp
Requires: wpkg-pdfcreator
Requires: wpkg-productkey
Requires: wpkg-putty
Requires: wpkg-sambawin7
Requires: wpkg-scribus
Requires: wpkg-skype
Requires: wpkg-sumatrapdf
Requires: wpkg-thunderbird
Requires: wpkg-tightvnc
Requires: wpkg-vlc
Requires: wpkg-winscp
%description
Meta package to install WPKG supported softwares on iPasserelle
%prep
%setup -q -n %{name}-%{version}
%build
unix2dos packages/*
%install
/bin/rm -rf %{buildroot}
mkdir -p %{buildroot}/home/e-smith/files/shares/wpkg/files/packages
mkdir -p %{buildroot}/home/e-smith/files/shares/wpkg/files/softwares/misc
cp -r softwares/* %{buildroot}/home/e-smith/files/shares/wpkg/files/softwares/misc/
cp -r packages/* %{buildroot}/home/e-smith/files/shares/wpkg/files/packages/
%files
%defattr(-,root,root)
%doc CHANGELOG.git
/home/e-smith/files/shares/wpkg/files/
%clean
/bin/rm -rf %{buildroot}
%changelog
* Tue Jun 5 2012 Daniel Berteaud <daniel@firewall-services.com>
- initial release
Loading…
Cancel
Save