Question
Reprendre le script sur autre session après reboot
- Brice
-
Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 9 ans 1 mois #23142
par Brice
Reprendre le script sur autre session après reboot a été créé par Brice
Bonjour à tous,
j'ai un script qui doit permettre de créer un utilisateur, puis après le redémarrage, de passer l'utilisateur en profil local a partir de sa session en reprenant le script utilisé précédemment.
Quelqu'un aurait t-il un moyen simple de faire ceci avec des commandes PS ? Peut-etre un Invoke-Command ?
Merci d'avance
<br><br>Message édité par: michmich, à: 9/02/17 09:03
j'ai un script qui doit permettre de créer un utilisateur, puis après le redémarrage, de passer l'utilisateur en profil local a partir de sa session en reprenant le script utilisé précédemment.
Quelqu'un aurait t-il un moyen simple de faire ceci avec des commandes PS ? Peut-etre un Invoke-Command ?
Merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 9 ans 1 mois #23145
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Reprendre le script sur autre session après reboot
Salut,
pas évident de te proposer qq chose sans le code sous les yeux. On connait +- la fin du traitement mais le début...
qq chose comme :
[code:1]
Traitement -Step One
#puis
Traitement -Step Two
[/code:1]
S'il y a une notion de reprise un Workflow peut être une piste à étudier. Reste à vérifier si on peut l'exécuter dans une session et le terminer dans une autre.
Pourquoi ne pas utiliser la clé de registre RunOnce ?
pas évident de te proposer qq chose sans le code sous les yeux. On connait +- la fin du traitement mais le début...
qq chose comme :
[code:1]
Traitement -Step One
#puis
Traitement -Step Two
[/code:1]
S'il y a une notion de reprise un Workflow peut être une piste à étudier. Reste à vérifier si on peut l'exécuter dans une session et le terminer dans une autre.
Pourquoi ne pas utiliser la clé de registre RunOnce ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Brice
-
Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 9 ans 1 mois #23147
par Brice
Réponse de Brice sur le sujet Re:Reprendre le script sur autre session après reboot
Merci pour ta réponse rapide Laurent 
Pardon,
Voici un extrait de mon code, je passe tout ce qui est crédential et connexion au domaine cela fonctionne, donc je crée mon utilisateur avec adsi :
[code:1]
$RegPath = \"HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\"
$RegRunOnce=\"HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce\"
$adsi = [ADSI]\"WinNT://$Env:ComputerName\"
#Vérifier si l'utilisateur a déjà été crée
if (& net users | select-string \"$INITIALE\"«») {
# Suppression en cas de poste ayant le meme nom d'utilisateur
$reponse= read-host \"user already exist, do you want to delete him ? (O)\"
if ($reponse -eq \"O\"«»){
$user = $adsi.delete('User', $INITIALE)
} else
{
write-host \"On quitte la MAJ\"
exit
}
} else
{
write-host \" user not found, create new user\"
}
# Création d'un nouvel utilisateur
$user = $adsi.Create('User', $INITIALE)
# Définit un mot de passe à l'utilisateur
$user.SetPassword('$PASSWORD')
# Enregistre l'utilisateur
$user.SetInfo()
#Connexion automatique au nouveau compte après redémarrage
write-host \"`n Register information into registery key `n \" -foregroundcolor \"Green\"
Set-ItemProperty $RegPath \"AutoAdminLogon\" -Value \"1\" -type String
Set-ItemProperty $RegPath \"DefaultUsername\" -Value \"$INITIALE\" -type String
Set-ItemProperty $RegPath \"DefaultPassword\" -Value \"$PASSWORD\" -type String
Set-ItemProperty $RegPath \"DefaultDomainName\" -Value \"$Domain\" -type String
#Attente du réseau (environ 100 secondes, soit 1 min 40)
#Set-ItemProperty $RegPath \"DWORD SyncForegroundPolicy\" -Value \"1\" -type String
#Set-ItemProperty $RegPath \"GpNetworkStartTimeoutPolicyValue\" -Value \"100\" -type String
[/code:1]
C'est sur cette piste que je suis parti
j'ai quelque chose comme :
[code:1]Set-ItemProperty $RegRunOnce -Name '!NextRun' -Value ('c:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -noexit -File \"C:\Users\adminvif\Desktop\RenameAndJoinDomainInOneReboot.ps1\"')[/code:1]
mais j'ai un message d'erreur :
[code:1]Set-ItemProperty : Impossible de trouver le chemin d'accès « C:\Windows\system32\HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce », car il n'existe pas.
Au caractère Ligne:1 : 1
+ Set-ItemProperty \"HKLM\Software\Microsoft\Windows\CurrentVersion\RunO ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Windows\syst...Version\RunOnce:«»String) [Set-ItemProperty], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetItemPropertyCommand[/code:1]
Edit: Je pense enlever le paramètre -noexit car je ne vois pas son utilité ici
<br><br>Message édité par: michmich, à: 9/02/17 11:45
pas évident de te proposer qq chose sans le code sous les yeux. On connait +- la fin du traitement mais le début...
Pardon,
Voici un extrait de mon code, je passe tout ce qui est crédential et connexion au domaine cela fonctionne, donc je crée mon utilisateur avec adsi :
[code:1]
$RegPath = \"HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\"
$RegRunOnce=\"HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce\"
$adsi = [ADSI]\"WinNT://$Env:ComputerName\"
#Vérifier si l'utilisateur a déjà été crée
if (& net users | select-string \"$INITIALE\"«») {
# Suppression en cas de poste ayant le meme nom d'utilisateur
$reponse= read-host \"user already exist, do you want to delete him ? (O)\"
if ($reponse -eq \"O\"«»){
$user = $adsi.delete('User', $INITIALE)
} else
{
write-host \"On quitte la MAJ\"
exit
}
} else
{
write-host \" user not found, create new user\"
}
# Création d'un nouvel utilisateur
$user = $adsi.Create('User', $INITIALE)
# Définit un mot de passe à l'utilisateur
$user.SetPassword('$PASSWORD')
# Enregistre l'utilisateur
$user.SetInfo()
#Connexion automatique au nouveau compte après redémarrage
write-host \"`n Register information into registery key `n \" -foregroundcolor \"Green\"
Set-ItemProperty $RegPath \"AutoAdminLogon\" -Value \"1\" -type String
Set-ItemProperty $RegPath \"DefaultUsername\" -Value \"$INITIALE\" -type String
Set-ItemProperty $RegPath \"DefaultPassword\" -Value \"$PASSWORD\" -type String
Set-ItemProperty $RegPath \"DefaultDomainName\" -Value \"$Domain\" -type String
#Attente du réseau (environ 100 secondes, soit 1 min 40)
#Set-ItemProperty $RegPath \"DWORD SyncForegroundPolicy\" -Value \"1\" -type String
#Set-ItemProperty $RegPath \"GpNetworkStartTimeoutPolicyValue\" -Value \"100\" -type String
[/code:1]
Pourquoi ne pas utiliser la clé de registre RunOnce?
C'est sur cette piste que je suis parti
[code:1]Set-ItemProperty $RegRunOnce -Name '!NextRun' -Value ('c:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -noexit -File \"C:\Users\adminvif\Desktop\RenameAndJoinDomainInOneReboot.ps1\"')[/code:1]
mais j'ai un message d'erreur :
[code:1]Set-ItemProperty : Impossible de trouver le chemin d'accès « C:\Windows\system32\HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce », car il n'existe pas.
Au caractère Ligne:1 : 1
+ Set-ItemProperty \"HKLM\Software\Microsoft\Windows\CurrentVersion\RunO ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Windows\syst...Version\RunOnce:«»String) [Set-ItemProperty], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetItemPropertyCommand[/code:1]
Edit: Je pense enlever le paramètre -noexit car je ne vois pas son utilité ici
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 9 ans 1 mois #23149
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Reprendre le script sur autre session après reboot
michmich écrit:
Et par contre je ne sais plus trop si c'est dans la ruche de l'utilisateur ou dans celle de la machine qu'il faut la créer...
Tu utilises un nom de chemin de registry pas de provider PS.mais j'ai un message d'erreur :
Et par contre je ne sais plus trop si c'est dans la ruche de l'utilisateur ou dans celle de la machine qu'il faut la créer...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 1 mois #23150
par Philippe
Réponse de Philippe sur le sujet Reprendre le script sur autre session
salut
une autre technique :
si tu a la possibilité d'écrire un fichier sur le disque local
au debut de la premiere partie du script si il n'existe pas tu crée un fichier en local (ex : c:\etape.txt)
si il existe tu passe a l'étape deux
à la fin tu efface le fichier local et le script local si besoin
si tu a plus de deux étape tu peut écrire dans le fichier l'étape en cours et dans le script lire l'étape dans le fichier et sauté a la bonne partie du script par un switch ou un if
la même technique fonctionne avec une clé de registre
apres pour relancer le script il y a run ou runone comme dis Laurent
ou le menu démarrage si il existe toujours !!!
.
une autre technique :
si tu a la possibilité d'écrire un fichier sur le disque local
au debut de la premiere partie du script si il n'existe pas tu crée un fichier en local (ex : c:\etape.txt)
si il existe tu passe a l'étape deux
à la fin tu efface le fichier local et le script local si besoin
si tu a plus de deux étape tu peut écrire dans le fichier l'étape en cours et dans le script lire l'étape dans le fichier et sauté a la bonne partie du script par un switch ou un if
la même technique fonctionne avec une clé de registre
apres pour relancer le script il y a run ou runone comme dis Laurent
ou le menu démarrage si il existe toujours !!!
.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 9 ans 1 mois #23151
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Reprendre le script sur autre session
6ratgus écrit:
Mieux vaut s'appuyer sur un mécanisme proposé par le système.
Humm, cette approche de 'fichier flag' nécessite d'intervenir sur le poste en cas d'exception imprévue dans le script.une autre technique :
si tu a la possibilité d'écrire un fichier sur le disque local
Mieux vaut s'appuyer sur un mécanisme proposé par le système.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.051 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Reprendre le script sur autre session après reboot