IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Script en tâche plannifié ne fonctionne pas sans ouverture de session admin


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 15
    Points
    15
    Par défaut Script en tâche plannifié ne fonctionne pas sans ouverture de session admin
    Bonjour,

    je n'ai que peu de connaissances en scripting et je dois vérifier un script dans mon entreprise.

    Le script récupère dans l'AD les numéros de téléphone afin de créer un fichier excel automatiquement, et donc mettre à jour automatiquement la liste téléphonique de nos différents sites.
    Ce script a été mis en place par un alternant qui ne fait pus partie de la société et je suis arrivé au moment où il quittait la société.

    Dans les informations qu'il a laissé, il précise que le script qui se lance en tâche automatique ne peut-être lancé qu'avec le compte administrateur du domaine ce qui présente pour moi un petit problème ne voulant pas laisser cette session ouverte sans cesse et ce qui peut générer des soucis si nous avons à redémarrer le serveur vu que la session ne s'ouvre pas automatiquement.

    J'aimerai que la tâche puisse se lancer avec l'option "Exécuter même si aucun utilisateur n'a ouvert de session" mais après la mise en place de cette option hier et la fermeture de la session, il s'avère que le script ne s'est pas lancé.

    Je soupçonne le fait que le script lance excel et qu'il ne puisse apparemment pas le faire sans session ouverte mais je ne suis sûr de rien.

    Y a t-il quelque chose que je puisse modifier dans le script afin que celui-ci se lance sans qu'il n'y ait obligatoirement la session administrateur du domaine ouverte, et idéalement sans qu'aucune session ne soit ouverte ?

    Merci de votre aide.

    Ci dessous, le script en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    Import-Module activedirectory
    ADD-content -path "$pwd\debug.log" -value "$Date Date = $(Get-Date -UFormat "%Y%m%d")"
    Function Release-Ref ($ref) 
      {
        ([System.Runtime.InteropServices.Marshal]::ReleaseComObject(
        [System.__ComObject]$ref) -gt 0)
        [System.GC]::Collect()
        [System.GC]::WaitForPendingFinalizers() 
      }
    
    Function ConvertCSV-ToExcel
    {
    [CmdletBinding()] 
    Param
      (  
        [parameter(Mandatory=$False,Position=1)][string]$inputfile,  
        [parameter(Mandatory=$False,Position=1)][string]$output,
        [parameter(Mandatory=$False,Position=1)][string]$sheet
                
      )
        
    #Create Excel Com Object
    $excel = new-object -com excel.application
    
    #Show Excel application
    $excel.Visible = $False
    
    #Add workbook
    if ($sheet -eq "1"){
    $outfilename = "E:\Script\Script_annuaire\dlf.xlsx"
     }
    else {
    $outfilename = "E:\Script\Script_annuaire\annuaire dlf(temp).xlsx"
    }
    $workbook = $excel.workbooks.open("$outfilename")
    
    #Use the first worksheet in the workbook
    if ($sheet -eq "1"){ $worksheet1 = $workbook.worksheets.Item(1)}
    else {$worksheet1 = $workbook.worksheets.Item(2)}
    
    #Remove other worksheets that are not needed
    #$workbook.worksheets.Item(2).delete()
    #$workbook.worksheets.Item(2).delete()
    
    #Start row and column
    $r = 2
    $c = 1
    
    #Begin working through the CSV
    $file = (GC $inputfile)
    ForEach ($f in $file) {
      $arr = ($f).split(';')
      ForEach ($a in $arr) {
        $worksheet1.Cells.Item($r,$c) = "$(($a).replace('"',''))"
        $c++
        }
      $c = 1
      $r++    
      } 
        
    #Select all used cells
    $range = $worksheet1.UsedRange
    
    #Autofit the columns
    $range.EntireColumn.Autofit() | out-null 
    
    #Save spreadsheet
    $excel.displayalerts = $false
    if ($sheet -eq "1"){
     $workbook.saveas("E:\Script\Script_annuaire\annuaire dlf(temp).xlsx")
    $excel.displayalerts = $true
    #ADD-content -path "$pwd\debug.log" -value "Enregistrement du fichier annuaire dlf(temp).xlsx"
     }
    else {
    $workbook.saveas("E:\Script\Script_annuaire\annuaire dlf.xlsx")
    $excel.displayalerts = $true
    #ADD-content -path "$pwd\debug.log" -value "en registrement du fichier annuaire DLF.xlsx"
    }
    
    
    #Close Excel
    $excel.quit() 
    
    #Release processes for Excel
    $a = Release-Ref($range)
    $a = Release-Ref($worksheet1)
    $a = Release-Ref($workbook)
    }
    
    Get-AdUser -Filter {OfficePhone -like "*" -AND Company -like "DLF"} -Properties givenName,sn,OfficePhone,HomePhone,description,Department,Company,Mobilephone | 
    select-object @{name="Service";expression={$_.Department}}, @{name="Nom";expression={$_.sn+" "+$_.givenName}}, @{name="N° interne";expression={$_.OfficePhone}},@{name="Ligne SDA";expression={$_.HomePhone}}, @{name="N° Mobile";expression={$_.MobilePhone}} | 
    Sort-Object Service, Nom | 
    Export-Csv -path "E:\Script\Script_annuaire\annuaire dlf.csv" -Delimiter ";" -encoding UTF8 -notypeinformation
    ConvertCSV-ToExcel -inputfile "E:\Script\Script_annuaire\annuaire dlf.csv" -output "E:\Script\Script_annuaire\dlf.xlsx" -sheet "1"
    Remove-Item "E:\Script\Script_annuaire\annuaire dlf.csv"
    
    Get-AdUser -Filter {OfficePhone -like "*" -AND Company -like "DLF"} -Properties givenName,sn,OfficePhone,HomePhone,description,Department,Company,Mobilephone | 
    select-object @{name="Service";expression={$_.Department}}, @{name="Nom";expression={$_.sn+" "+$_.givenName}}, @{name="N° interne";expression={$_.OfficePhone}},@{name="Ligne SDA";expression={$_.HomePhone}}, @{name="N° Mobile";expression={$_.MobilePhone}} | 
    Sort-Object Nom | 
    Export-Csv -path "E:\Script\Script_annuaire\annuaire dlf.csv" -Delimiter ";" -encoding UTF8 -notypeinformation
    ConvertCSV-ToExcel -inputfile "E:\Script\Script_annuaire\annuaire dlf.csv" -output "E:\Script\Script_annuaire\annuaire dlf(temp).xlsx" -sheet "2"
    Remove-Item "E:\Script\Script_annuaire\annuaire dlf.csv"
    Remove-Item "E:\Script\Script_annuaire\annuaire dlf(temp).xlsx"

  2. #2
    Membre régulier
    Homme Profil pro
    Technicien en télécommunication
    Inscrit en
    Mai 2013
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien en télécommunication
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 199
    Points : 73
    Points
    73
    Par défaut
    Bonjour,
    comment as tu paramétré ta tâche planifiée ?
    Dans action tu as indiqué quoi dans Programme/script et dans argument ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par patito1975 Voir le message
    Bonjour,
    comment as tu paramétré ta tâche planifiée ?
    Dans action tu as indiqué quoi dans Programme/script et dans argument ?
    Bonjour,

    Au niveau paramétrage, comme je l'ai indiqué dans mon message, ce n'est pas moi qui ai mis en place la tâche planifiée.
    En option de sécurité nous avons :
    Utiliser le compte suivant pour exécuter cette tâche : le compte admin du domaine
    à la base, l'option choisie était "N'exécuter que si un utilisateur a ouvert une session" mais je l'ai basculée vers "Exécuter même si aucun utilisateur n'a ouvert de session"
    la case "Exécuter avec les autorisations maximales" est cochée

    La tâche exécute un script compilé en .exe (car il y a en fait 4 scripts identiques où seul le site diffère)

    L'action est "Démarrer un programme" et pointe vers un programme sur un de ses disques.

    Ce que je trouve bizarre également, c'est que dans les résultat de la dernière exécution, on n'a pas d'échec, pourtant les fichiers en questions ne sont pas à jour.

    Merci pour votre aide

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Essaye de planifié la tâche avec le compte administrateur.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Akharin Voir le message
    Essaye de planifié la tâche avec le compte administrateur.
    Bonjour,

    Le script fonctionne très bien lorsque la session administrateur du domaine est ouverte, même verrouillée.
    Mais comme je l'ai indiqué, nous aimerions que ce script puisse fonctionner même si aucune session n'est ouverte.

  6. #6
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par corly Voir le message
    Je soupçonne le fait que le script lance excel et qu'il ne puisse apparemment pas le faire sans session ouverte mais je ne suis sûr de rien.
    D'après cet article et ce post similaire, il te faut construire le fichier XL autrement, par exemple Open XML ou OLE DB qui dans ce cas nécessite l'installation d'un prérequis.
    Mais pour ce dernier je n'ai pas testé l'Update.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Points : 439
    Points
    439
    Par défaut
    Il me semble que microsoft déconseille l'utilisation d'excel sur une session serveur en arrière plan ...

    http://support.microsoft.com/kb/257757

    bonne lecture.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Je vais plancher sur les différentes propositions.

    Je ne crois pas l'avoir précisé mais le script est un script AutoIT qui lance 4 scripts powershell.

    Hier, j'avais modifié les paramètres afin que le script se lance sous mon nom d'utilisateur, avec les mêmes paramètres que l'alternant avait mis en place, le script apparait comme s'étant exécuté avec succès mais les fichiers en partage n'ont pas été modifiés.

    Il faut que l'on regarde au niveau des droits, s'il n'y aurait pas de blocages à ce niveau, car les scripts effectuent un extract de données de l'AD (nom, service, téléphone), crée un csv qu'il colle dans un répertoire en local en se basant sur un fichier source en local également.
    Ensuite il copie ces nouveaux "annuaires" (créés en local) sur un partage afin que tous les utilisateurs puissent y avoir accès.

    Je reste à l'écoute de vos propositions, je vous tiens informés.

    Merci

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/09/2009, 11h42
  2. Réponses: 6
    Dernier message: 16/01/2009, 15h21
  3. [MySQL] Script d'inscription qui ne fonctionne pas
    Par brotic dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/11/2008, 20h47
  4. Réponses: 2
    Dernier message: 30/06/2008, 09h27
  5. Réponses: 4
    Dernier message: 08/02/2007, 20h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo