Question [Résolu] Problème d'execution à distance

Plus d'informations
il y a 10 ans 11 mois #14634 par Quentin
Bonjour à tous,

J'aimerai faire un script permettant de déplacer a distance des ordinateurs d'une OU à une autre.
Jusqu'à la tout va bien sauf que : Je dois le faire depuis un compte local (Administrateur) d'un PC. Je ne peux avoir accès qu'à l'AD depuis un compte admin de domaine.
Pour facilité le script, je le lance depuis un batch.

Fichier 2.ps1

[code:1]#Regarde le nom du PC
#$NAME = (Get-WmiObject Win32_ComputerSystem).name

$cred = Get-Credential
Enter-PSSession -ComputerName norbert -Credential $cred

$test = Read-Host \"Nom du PC \"
# AD DEPLACER UN PC DE COMPUTER VERS GERERPARSCE
$obj = [ADSI] 'LDAP://OU=xxxxx,DC=xxxx,DC=xxx'
$obj.MoveHere(\"LDAP://CN=$test,CN=xxxx,DC=xxxx,DC=xxx\", \"CN=$test\"«»)

exit[/code:1]

Fichier installPart2.bat
[code:1]@echo off
:: Ici on défini les droits d'éxecution pour les script powershell
powershell Set-ExecutionPolicy Unrestricted
powershell C:\2.ps1 -Verb runAs

:: On remet les droits d'éxecution en restricted
powershell Set-ExecutionPolicy Restricted

cd C:\
del 1.ps1
del 2.ps1
del installPart1.bat

:: On a fini les scripts, on les delete.
echo Les script sont fini.
pause
del installPart2.bat[/code:1]


Le script se déroule bien quand je l’exécute depuis un console powershel en ADMIN (et que je copie/colle les commande une à une), mais lorsque que je veux l'executer depuis le script batch (en admin lui aussi) il me met une erreur de récupération du membre...

Merci d'avance de votre précieuse aide.

Quentin.<br><br>Message édité par: quentin96, à: 25/04/13 09:52

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

Plus d'informations
il y a 10 ans 11 mois #14642 par Matthew BETTON
Bonjour,

Peux tu poster ici le message d'erreur exact que tu récupères, entre balises [ c o d e] ?

@ +

Matthew BETTON

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

Plus d'informations
il y a 10 ans 11 mois #14648 par Quentin
Salut,

Merci de ta réponse rapide.

Le code erreur est :
[code:1]L'exception suivante s'est produite lors de la récupération du membre « MoveHer
e » : « Le domaine spécifié n'existe pas ou n'a pas pu être contacté.
 »
Au niveau de C:\2.ps1 : 10 Caractère : 14
+ $obj.MoveHere &lt;&lt;&lt;&lt; (\&quot;LDAP://CN=$test,CN=Computers,DC=xxxx,DC=xxx\&quot;, \&quot;CN=$test\&quot;
)
+ CategoryInfo : NotSpecified: (:«») [], ExtendedTypeSystemExceptio
n
+ FullyQualifiedErrorId : CatchFromBaseGetMember
[/code:1]

A++<br><br>Message édité par: quentin96, à: 23/04/13 14:44

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

Plus d'informations
il y a 10 ans 11 mois #14652 par Matthew BETTON
Tu rencontre un problème de contexte d'exécution.

Les lignes :

[code:1]$cred = Get-Credential
Enter-PSSession -ComputerName norbert -Credential $cred[/code:1]

Ne permettent pas l'exécution du code qui suit (toujours dans 2.ps1) sur la machine distante.

Le mécanisme que tu utilises, via un batch qui exécute un script PowerShell, me paraît étrange et complexe. Il peut être simplifié en quelque chose comme ceci :

[code:1]
$Credential = Get-Credential

$test = Read-Host \&quot;Nom du PC \&quot;

$ScriptBlock = {
param($PCName)
$obj = [ADSI] 'LDAP://CN=$PCName,OU=xxxxx,DC=xxxx,DC=xxx'
$obj.MoveHere(\&quot;LDAP://OU=xxx,DC=xxxx,DC=xxx\&quot;, \&quot;CN=$PCName\&quot;«»)
}

Invoke-Command -ScriptBlock $ScriptBlock -ArgumentList $test -ComputerName norbert -Credential $Credential
[/code:1]

La Cmdlet 'Invoke-Command' va exécuter le ScriptBlock '$ScriptBlock' sur la machine nommée 'norbert'. On passe le nom du PC à déplacer en argument du ScriptBlock.

Le contexte d'exécution du ScriptBlock sera celui donné lors de la récupération du Credential (à priori, un compte Admin du domaine concerné).

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

Plus d'informations
il y a 10 ans 11 mois #14670 par Quentin
Salut.

Merci pour la cmdlet. Le script fonctionne maintenant.

Au passage, est-ce que avec ce script toujours, je pourrai exécuter du code powershell pour AD ? Car il faudrait que ce même PC soit membre d'un groupe (appellé SCE Managed Group).

Encore merci.

Quentin

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

Plus d'informations
il y a 10 ans 11 mois #14672 par Matthew BETTON
Salut,

quentin96 écrit:

Salut.

Au passage, est-ce que avec ce script toujours, je pourrai exécuter du code powershell pour AD ? Car il faudrait que ce même PC soit membre d'un groupe (appellé SCE Managed Group).


Je ne sais pas répondre à ta question ...

@ +

Matthew BETTON

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

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