Flash info

Une frénésie incontrollée poussent certains individus à convertir tous les scripts d'admin en PowerShell. L'un d'eux aurait été apperçu récemment près du campus universitaire de Talence.

 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
llefevre
Utilisateur

PowerShelleur Débutant
Messages: 5
graphgraph
Karma: 0  
Exécution de script à distance - 5/12/18 15:41 Bonjour,

Je cherche à exécuter un script à distance qui interroge le registre de mes clients.

Lorsque j'exécute le bout de script suivant

Code:

 $cred Get-credential $idsession = New-PSSession -ComputerName 10.254.3.43 -Credential $cred Invoke-Command -Session $idsession -ScriptBlock {C:\Script1_Update_notif.ps1}



J'obtiens un accès refusé ((Exception de HRESULT : 0x80070005 (E_ACCESSDENIED))

Des idées ?
  | | L'administrateur a désactivé l'accés public en écriture.
6ratgus
Utilisateur

PowerShelleur Platinum
Messages: 1539
graphgraph
Karma: 112  
Re:Exécution de script à distance - 6/12/18 10:14 salut llefevre

J'obtiens un accès refuséun problème de d'autorisation !!!

tu peut commencer par regarder ici

il faut surtout que le remote registry soit démarré

après ce sont principalement les utilisateurs admin qui on les droits pour ouvrir la base de registre
  | | L'administrateur a désactivé l'accés public en écriture.
llefevre
Utilisateur

PowerShelleur Débutant
Messages: 5
graphgraph
Karma: 0  
Re:Exécution de script à distance - 6/12/18 13:53 Merci pour ce retour et les liens.

Je vais ajouter quelques précisions :
- je souhaite travailler en WORKGROUP
- je suis administrateur local sur les machines
- le service de registre à distance est activé.
- WinRM est configuré sur les clients distant et le serveur distant

J'utilise WSUSClientManager pour interroger le registre de mes clients distants et les MAJs remontent bien dans la console donc je pense qu'à ce niveau c'est OK.

Message édité par: llefevre, à: 6/12/18 14:03
  | | L'administrateur a désactivé l'accés public en écriture.
llefevre
Utilisateur

PowerShelleur Débutant
Messages: 5
graphgraph
Karma: 0  
Re:Exécution de script à distance - 7/12/18 10:57 Salut,

J'ai du nouveau, j'arrive à me connecter sur le serveur distant à l'aide des cmdlets "Enter-PSSession" et "Invoke-Command", donc je pense qu'au niveau des pré-requis c'est bon :
- passage vers Powershell 5.1
- Ouvrir les ports 5985
- vérification des vSwitchs sur vCenter
- vérifier si les services sont activés (registre à distance...)
- mise en place de CredSSP en workgroup pour le double saut (délégation client et serveur)
- création d'une session persistante sur le serveur distant

J'ai essayé ceci comme morceau de code, mais j'obtiens un message d'erreur. (accès refusé)

Code:

 $cred Get-Credential $s = New-PSSession -ComputerName 10.254.3.43 Invoke-Command -FilePath C:\Users\llefevre\Desktop\Projets\Refonte WSUS\Powershell\Script1_Update_notif.ps1` -ComputerName 10.254.3.43 -Credential $cred




Et je suis en train de lire "Secret of powershell remoting" de Don Jones en espérant pouvoir trouver quelque chose.

Est-ce que vous voyez autre chose ?

llefevre
  | | L'administrateur a désactivé l'accés public en écriture.
6ratgus
Utilisateur

PowerShelleur Platinum
Messages: 1539
graphgraph
Karma: 112  
Re:Exécution de script à distance - 7/12/18 15:55 tu a l'air d'avoir tous vérifier

si tu a fait le Enable-PSRemoting et winrm quickconfig
je ne vois qu'un problème d'élévation

es que l'erreur ce trouve sur New-PSSession ou sur Invoke-Command

peut t'on avoir le message d'erreur en entier

si c'est réellement un problème de droit sur le remote (sur new-pssession) regarde sur ce site la configuration du paramètre TrustedHosts.

dernière idée, les autorisations d'exécution de script PS voir get-ExecutionPolicy -List

essai ça :
Code:

 Set-ExecutionPolicy -Scope UserPolicy -ExecutionPolicy Unrestricted

  | | L'administrateur a désactivé l'accés public en écriture.
llefevre
Utilisateur

PowerShelleur Débutant
Messages: 5
graphgraph
Karma: 0  
Re:Exécution de script à distance - 10/12/18 09:35 L'erreur se trouve sur Invoke-Command pour le morceau de script.

Code:

 <span style="color: #FF0000">Invoke-Command Parameter set cannot be resolved using the specified named parameters. At line:3 char:1 Invoke-Command -FilePath .\Script1_Update_notif.ps1` + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     + CategoryInfo          : InvalidArgument: (:) [Invoke-Command], ParameterBindingException     + FullyQualifiedErrorId :  AmbiguousParameterSet,Microsoft.PowerShell.Commands.InvokeCommandCommand   -ComputerName : The term '-ComputerName' is not recognized as the name of a cmdlet, function,  script file, or operable program. Check the spelling of the name, or if a path was  included, verify that the path is correct and try again. At line:4 char:1 + -ComputerName 10.254.3.43 -Credential $cred + ~~~~~~~~~~~~~     + CategoryInfo          : ObjectNotFound: (-ComputerName:String) [], CommandNotFoundException     + FullyQualifiedErrorId : CommandNotFoundException</span>



J'ai déjà ajouté mes hôtes de confiance pour winrm.

Ici sur le client et le serveur :
Code:

 PS C:\Users\AdministrateurGet-ExecutionPolicy -List         Scope ExecutionPolicy         ----- --------------- MachinePolicy       Undefined    UserPolicy       Undefined       Process       Undefined   CurrentUser       Undefined  LocalMachine    RemoteSigned



Quand j'exécute le code que tu m'as donné, j'obtiens ça.

Code:

 <span style="color: #FF0000">Set-ExecutionPolicy Cannot set-executionpolicyExecution policies at the machinepolicy or userpolicy scopes must be set through Group Policy</span>



En revanche, quand j'exécute le script principal, j'obtiens un accès refusé, veux-tu que je le poste ici ?

Message édité par: llefevre, à: 10/12/18 09:37

Message édité par: llefevre, à: 10/12/18 09:41
  | | L'administrateur a désactivé l'accés public en écriture.
6ratgus
Utilisateur

PowerShelleur Platinum
Messages: 1539
graphgraph
Karma: 112  
Re:Exécution de script à distance - 10/12/18 11:42 Parameter set cannot be resolved using the specified named parameters.

et

The term '-ComputerName' is not recognized as the name of a cmdlet

la premiere erreur indique qu'il ne trouve pas le script "Script1_Update_notif.ps1"
la deuxième qu'il ne connais pas la commande "-ComputerName"

pour commencer il faut mettre "-ComputerName" sur la même ligne que l'invoke
apres il faut indiquer dans le code le chemin ou ce trouve le script "Script1_Update_notif.ps1" sinon je crois que pas défaut il travail dans le dossier system32

pour ça :
Get-ExecutionPolicy -List

LocalMachine RemoteSigned

il semble que l'autorisation impose que tu utilise des scripts signé pour des exécution à distance


et enfin pour cette erreur :
Cannot set-executionpolicy. Execution policies at the machinepolicy or userpolicy scopes must be set through Group Policy
les autorisations d'exécutions sont contrôlé par une GPO du domaine
  | | L'administrateur a désactivé l'accés public en écriture.
llefevre
Utilisateur

PowerShelleur Débutant
Messages: 5
graphgraph
Karma: 0  
Re:Exécution de script à distance - 10/12/18 13:27 Merci pour ce retour.

J'ai mis la commande "-ComputerName" sur la même ligne que Invoke-Command.

J'ai également modifier le chemin.

J'ai remplacé RemoteSigned par Unrestricted.

Puis j'obtiens ceci :
Code:

  cmdlet Get-Credential at command pipeline position 1 Supply values for the following parameters: WARNING10.254.3.128Accès refusé. (Exception de HRESULT 0x80070005 (E_ACCESSDENIED))



Et enfin je vais mener des investigation concernant cette GPO.

Message édité par: llefevre, à: 10/12/18 13:30

Message édité par: llefevre, à: 10/12/18 13:31

Message édité par: llefevre, à: 10/12/18 13:31
  | | L'administrateur a désactivé l'accés public en écriture.
6ratgus
Utilisateur

PowerShelleur Platinum
Messages: 1539
graphgraph
Karma: 112  
Re:Exécution de script à distance - 10/12/18 16:47 soit dans le script "Script1_Update_notif.ps1" tu a un Get-Credential qui demande une saisie
soit tu n'a pas saisie de login/password pour la première ligne de ton code

PS : je viens de regarder ton dernier script et il ne correspond plus a ton premier message et bien sur il pose un problème qui peut donner les messages ci-dessus

la bonne version du script :
Code:

 $cred Get-credential $idsession = New-PSSession -ComputerName 10.254.3.43 -Credential $cred Invoke-Command -Session $idsession -FilePath "C:\Users\llefevre\Desktop\Projets\Refonte WSUS\Powershell\Script1_Update_notif.ps1"


petite info le script "Script1_Update_notif.ps1" doit être sur ton poste pas sur le serveur distant

Message édité par: 6ratgus, à: 10/12/18 17:02
  | | L'administrateur a désactivé l'accés public en écriture.
© 2018 PowerShell-Scripting.com