SelectEtoile : Base de connaissance SGBD

Comment contourner le probleme du double-hop ?

1

Le but de cet article est de décrire quelques exemples pratiques de contournement du probleme double-hop.

Cet article sera alimenté au fur et à mesure de mes tests.

Par contre, n'hésitez pas à faire des commentaires ou à me renvoyer des infos ou contournements.

 

Description de mon problème :

Je dois lancer un script powershell en remote sur des serveurs windows pour lister des fichiers se trouvant sur un partage réseau. J'ai une erreur "access denied" sur les fichiers du sharedisk.

Une explication en français est faite dans cet article décrivant ce phénomène double-hop : http://blogs.msdn.com/b/dev/archive/2007/07/04/probl-me-d-authentification-dans-un-double-hop-pourquoi-comment-l-viter.aspx

 

 

Résolution via le gestion de tache

Dans cet exemple, je vais créer une tache avec un compte AD et lancer le powershell au travers de cette tache.

Elle sera supprimé une fois le résultat obtenu.

 

Voici le script powershell de la création de la tache :

$taskname = (get-date -format "'list_file_sharedisk'_yyyyMMddhhmmss")

$output = "C:\task_output_$taskname"

$commandline = "powershell -command 'list_file_sharedisk.ps1 -Sharedisk $sharedisk -outputfile $output'"

echo $commandline

schtasks /create /tn $taskname /tr $commandline /sc weekly  /ru $windowslogin /rp '$windowspassword' | out-null

schtasks /run /tn $taskname | out-null

write-host "Waiting task execution."

$exitcode = 0

do {

  $taskStatus = schtasks /query /fo csv /v | convertfrom-csv | ? { $_.TaskName.TrimStart("\") -eq "$taskname"}

  write-host "." -nonewline

  sleep 2

  write-host $taskStatus

  $exitcode = $taskStatus."Last Result"

} while ($taskStatus."Status" -eq "Running")

write-host "Success!"

schtasks /delete /tn $taskname /f | out-null

get-content -Path $output

Remove-Item $output

write-host $exitcode

exit $exitcode

 

 

 

La suite au prochain épisode....

 

 

 

Ajouter un Commentaire


Code de sécurité
Rafraîchir