Question Déploiement d'un fichier

Plus d'informations
il y a 17 ans 6 mois #3250 par michault
Réponse de michault sur le sujet Re:Déploiement d'un fichier
Bonjour,
Suite au conseil de Laurent, j'ai paramétré entièrement mon script pour dispatch
mais en testant les différents cas je me suis rendu compte que mon test sur les résultat d'existence des fichiers via get-content n'était pas bon.:angry:

Quelqu'un a-t-il une idée?
Merci

[code:1]#DispatchDefrag.ps1
# Paramètres: $ouparm :L'Unité d'Organisation dont on veut récupérer les ordinateurs.
# $drive : Disque exemple C$
# $cmd : *.cmd exemple Defrag+Shutdown.cmd
# $job : *.job exemple DEFRAG.job
# $log : Fichier trace
Param($ouparm,$drive,$cmd,$job,$log)

#Définition des constantes
$domain = \",DC=domaine,DC=fr\"
$OU= $ouparm + $domain

$Batch=1|select Drive,Path,Name,FullPath
$Batch.Drive,$Batch.Path,$Batch.Name=$drive,\"BATCH\",$cmd
$Batch.FullPath=\"$($Batch.Drive)\$($Batch.Path)\$($Batch.Name)\"

get-QADComputer -searchRoot $OU | Select-Object Name | where {$_.Name -like 'PC*'} |
ForEach-Object {

$path = \"\\\" + $_.Name + \"\\" + $Batch.drive + \"$\"
$pathcmd = \"\\\" + $_.Name + \"\\" + $Batch.FullPath
$pathtasks = \"\\\" + $_.Name + \"\\" + $Batch.drive + \"$\Windows\Tasks\\" + $job
$nametasks = $job.split('.job')

Get-Content -Path $pathcmd -ErrorAction SilentlyContinue | Out-Null
if ($true)
{
$_.Name + \": $($Batch.FullPath) trouvé\" | Out-File $log -Append -NoClobber
Get-Content -Path $pathtasks -ErrorAction SilentlyContinue | Out-Null
if ($true)
{
$_.Name + \": $($job) trouvé\" | Out-File $log -Append -NoClobber
}
else
{
schtasks /create /tn \"$($nametasks)\" /tr \"$($Batch.FullPath)\" /s $_.Name /sc once /st 05:00:00 /ru sftfdom\administrateur /rp password | Out-Null
$_.Name + \": Copy +Tasks OK\" | Out-File $log -Append -NoClobber
}
}
else
{
Copy-Item \"c:\PWRSHELL\BATCH\\" -Destination $path -Recurse -ErrorAction SilentlyContinue -ErrorVariable Copyerror
if ($true)
{
Get-Content $pathtasks -ErrorAction SilentlyContinue | Out-Null
if ($true)
{
$_.Name + \": $($job) trouvé\" | Out-File $log -Append -NoClobber
}
else
{
schtasks /create /tn \"$($nametasks)\" /tr \"$($Batch.FullPath)\" /s $_.Name /sc once /st 05:00:00 /ru sftfdom\administrateur /rp password | Out-Null
$_.Name + \": Copy +Tasks OK\" | Out-File $log -Append -NoClobber
}
}
else
{
$_.Name + \": \" + $Copyerror | Out-File $log -Append -NoClobber
}
}
}[/code:1]

Message édité par: chm69, à: 17/11/08 13:04<br><br>Message édité par: chm69, à: 17/11/08 15:47

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 6 mois #3252 par michault
Réponse de michault sur le sujet Re:Déploiement d'un fichier
Je viens de trouver Test-path beaucoup plus approprié
mais mon test retour dans result n'est pas bon.

AU SECOURS:angry:

[code:1]#DispatchDefrag.ps1
# Paramètres: $ouparm :L'Unité d'Organisation dont on veut récupérer les ordinateurs.
# $drive : Disque exemple C$
# $cmd : *.cmd exemple Defrag+Shutdown.cmd
# $job : *.job exemple DEFRAG.job
# $log : Fichier trace
Param($ouparm,$drive,$cmd,$job,$log)

#Définition des constantes
$domain = \&quot;,DC=domaine,DC=fr\&quot;
$OU= $ouparm + $domain

$Batch=1|select Drive,Path,Name,FullPath
$Batch.Drive,$Batch.Path,$Batch.Name=$drive,\&quot;BATCH\&quot;,$cmd
$Batch.FullPath=\&quot;$($Batch.Drive)\$($Batch.Path)\$($Batch.Name)\&quot;


get-QADComputer -searchRoot $OU | Select-Object Name | where {$_.Name -like 'PC*'} |
ForEach-Object {

$path = \&quot;\\\&quot; + $_.Name + \&quot;\\&quot; + $Batch.drive
$pathcmd = \&quot;\\\&quot; + $_.Name + \&quot;\\&quot; + $Batch.FullPath
$pathtasks = \&quot;\\\&quot; + $_.Name + \&quot;\\&quot; + $Batch.drive + \&quot;\Windows\Tasks\\&quot; + $job
$nametasks = $job.split('.job')

Test-Path -Path $pathcmd -OutVariable $result
Write-Host $result
if ($result = $true)
{
$_.Name + \&quot;: $($Batch.FullPath) trouvé\&quot; | Out-File $log -Append -NoClobber
Test-Path -Path $pathtasks -OutVariable $result
if ($result = $true)
{
$_.Name + \&quot;: $($job) trouvé\&quot; | Out-File $log -Append -NoClobber
}
else
{
schtasks /create /tn \&quot;$($nametasks)\&quot; /tr \&quot;$($Batch.FullPath)\&quot; /s $_.Name /sc once /st 05:00:00 /ru sftfdom\administrateur /rp password | Out-Null
$_.Name + \&quot;: Copy +Tasks OK\&quot; | Out-File $log -Append -NoClobber
}
}
else
{
Copy-Item \&quot;c:\PWRSHELL\BATCH\\&quot; -Destination $path -Recurse -ErrorAction SilentlyContinue -ErrorVariable Copyerror
if ($?)
{
Test-Path $pathtasks -outVariable $result
if ($result = $true)
{
$_.Name + \&quot;: $($job) trouvé\&quot; | Out-File $log -Append -NoClobber
}
else
{
schtasks /create /tn \&quot;$($nametasks)\&quot; /tr \&quot;$($Batch.FullPath)\&quot; /s $_.Name /sc once /st 05:00:00 /ru sftfdom\administrateur /rp password | Out-Null
$_.Name + \&quot;: Copy +Tasks OK\&quot; | Out-File $log -Append -NoClobber
}
}
else
{
$_.Name + \&quot;: \&quot; + $Copyerror | Out-File $log -Append -NoClobber
}
}
}[/code:1]

Message édité par: chm69, à: 17/11/08 13:11<br><br>Message édité par: chm69, à: 17/11/08 15:48

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 6 mois #3253 par xyz
Réponse de xyz sur le sujet Re:Déploiement d'un fichier
chm69 écrit:

mon test sur les résultat d'existence des fichiers via get-content n'était pas bon.:angry:

Je comptais te demander le pourquoi d'un tel usage de Get-content, si c'est pour tester un chemin utilise Test-Path.
Du coup cela simplifiera la lecture. Il reste l'usage du log qui je pense peut être amélioré, de plus au vue des 3-4 instructions le mieux est de ne tracer que les échecs, à moins que tu souhaites savoir si cela à fonctionné ou pas.<br><br>Message édité par: Laurent Dardenne, à: 17/11/08 13:12

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 6 mois #3254 par michault
Réponse de michault sur le sujet Re:Déploiement d'un fichier
Salut à toi Laurent

Voilà je pense avoir trouver ma solution

[code:1]$result = Test-Path $pathtasks
if ($result -eq $true)[/code:1]

Pour le log, effectivement je préfère tout avoir.
Quand ce sera rodé, seuls les echecs seront stockés.

Il me reste à utiliser le crédential .
@+ et encore merci pour ton aide précieuse<br><br>Message édité par: chm69, à: 17/11/08 15:48

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 6 mois #3263 par michault
Réponse de michault sur le sujet Re:Déploiement d'un fichier
Mon script de déploiement est réécrit (1ère version dans contribution sous le titre \&quot;lancer un défrag à distant\&quot;; Je le posterai quand il sera aux petits oignons)

Mon script de réveille dans PC et de l'éxécution de la tâche planifiée (dans le même post) ne fonctionne pas car il me manque encore une étape.

Explication:
Je réveille bien le PC mais le schtasks / run échoue.
Si après le réveil du PC, j'ouvre une session, il abouti.

Ma question comment puis-je ouvrir une session entre mon wakeuppc et mon schtasks / run?

je pense à mstsc par exemple.

Quelqu'un a-t-il déjà fait çà?

merci d'avance aux pros qui m'ont déjà beaucoup aidé et désolé d'avoir posté dans contribution 2 scripts pas tout à fait aboutis.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 6 mois #3265 par xyz
Réponse de xyz sur le sujet Re:Déploiement d'un fichier
chm69 écrit:

Je réveille bien le PC mais le schtasks / run échoue.
Si après le réveil du PC, j'ouvre une session, il abouti.

As tu essayé avec /RU \&quot;NT AUTHORITY\SYSTEM\&quot;
chm69 écrit:

et désolé d'avoir posté dans contribution 2 scripts pas tout à fait aboutis.

\&quot;pas encore aboutis\&quot; :)

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.045 secondes
Propulsé par Kunena