Question
registre a distance
- steve
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 14 ans 5 mois #10399
par steve
registre a distance a été créé par steve
Bonjour,
je suis nouveau en PS et je souhaiterai une petite aide pour réaliser un petit script qui me serait bien utile.
Je voudrai recuperer le logon account utilisé lors du demarrage d'un service, donc parcourir tous les services de plusieurs machines distantes et recuperer cette valeur.
J'avais trouvé mon bonheur avec la commande get-itemproperty mais cette commande ne fonctionne pas a distance
Merci pour votre aide
je suis nouveau en PS et je souhaiterai une petite aide pour réaliser un petit script qui me serait bien utile.
Je voudrai recuperer le logon account utilisé lors du demarrage d'un service, donc parcourir tous les services de plusieurs machines distantes et recuperer cette valeur.
J'avais trouvé mon bonheur avec la commande get-itemproperty mais cette commande ne fonctionne pas a distance
Merci pour votre aide
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 14 ans 5 mois #10402
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:registre a distance
Bonjour,
Une solution consiste à passer par le WMI.
En effet, la Cmdlet 'Get-WMIObject' permet de passer des informations d'authentifications en paramètre : '-Credential'.
Via le WMI, on peut accéder à une classe qui permet d'accéder au registre, de liste les clefs, valeurs et données, de les modifier, d'en supprimer et d'en ajouter : stdRegProv .
[code:1]$objreg = Get-WmiObject -list -namespace root\default -computerName $ComputerName -credential $Credential | where-object { $_.name -eq \"StdRegProv\" }[/code:1]
Voir ici une explication de Laurent DARDENNE, dans ce même forum, sur le sujet, avec une approche un peu différente, sans passer par la Cmdlet 'Get-WmiObject' ...
L'exemple qu'il donne est le suivant :
[code:1]$MyCredential=Get-Credential
$MachineName=\"test\"
$WmiNameSpace=\"\\$MachineName\ROOT\default\"
$scope =New-Object System.Management.ManagementScope $WmiNameSpace
$scope.options.Username = $MyCredential.GetNetworkCredential().Username
$scope.options.Password = $MyCredential.GetNetworkCredential().Password
$stdReg= new-object System.Management.ManagementClass($Scope,\"\\$MachineName\ROOT\default:«»StdRegProv\",$null)[/code:1]
Enjoy
@ +
Matthew BETTON<br><br>Message édité par: Matthew BETTON, à: 12/10/11 11:34
Une solution consiste à passer par le WMI.
En effet, la Cmdlet 'Get-WMIObject' permet de passer des informations d'authentifications en paramètre : '-Credential'.
Via le WMI, on peut accéder à une classe qui permet d'accéder au registre, de liste les clefs, valeurs et données, de les modifier, d'en supprimer et d'en ajouter : stdRegProv .
[code:1]$objreg = Get-WmiObject -list -namespace root\default -computerName $ComputerName -credential $Credential | where-object { $_.name -eq \"StdRegProv\" }[/code:1]
Voir ici une explication de Laurent DARDENNE, dans ce même forum, sur le sujet, avec une approche un peu différente, sans passer par la Cmdlet 'Get-WmiObject' ...
L'exemple qu'il donne est le suivant :
[code:1]$MyCredential=Get-Credential
$MachineName=\"test\"
$WmiNameSpace=\"\\$MachineName\ROOT\default\"
$scope =New-Object System.Management.ManagementScope $WmiNameSpace
$scope.options.Username = $MyCredential.GetNetworkCredential().Username
$scope.options.Password = $MyCredential.GetNetworkCredential().Password
$stdReg= new-object System.Management.ManagementClass($Scope,\"\\$MachineName\ROOT\default:«»StdRegProv\",$null)[/code:1]
Enjoy
@ +
Matthew BETTON<br><br>Message édité par: Matthew BETTON, à: 12/10/11 11:34
Connexion ou Créer un compte pour participer à la conversation.
- LEON
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 69
- Remerciements reçus 0
il y a 14 ans 5 mois #10404
par LEON
Réponse de LEON sur le sujet Re:registre a distance
Bonjour,
Sinon en passant par le PS-Remoting?
[code:1]
Enter-PSSession -ComputerName localhost
Set-Location HKLM:
$Variable = Get-ChildItem HKLM:\SOFTWARE
Get-ItemProperty -Path $Variable
[/code:1]
Cordialement,
Showtime
Sinon en passant par le PS-Remoting?
[code:1]
Enter-PSSession -ComputerName localhost
Set-Location HKLM:
$Variable = Get-ChildItem HKLM:\SOFTWARE
Get-ItemProperty -Path $Variable
[/code:1]
Cordialement,
Showtime
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 14 ans 5 mois #10406
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:registre a distance
Effectivement le remoting est une bonne approche... A condition d'en avoir la possibilité, ce qui n'est pas le cas de tout le monde... Snif !
Pour une automatisation, une solution :
[code:1]$ScriptBlock = {
Set-Location HKLM:
$Variable = Get-ChildItem HKLM:\SOFTWARE
$ret = Get-ItemProperty -Path $Variable
return $ret
}
$ComputersList = Get-Content .\MaListe.txt
foreach($ComputerName in $ComputersList){
$resultat = Invoke-Command -ComputerName $ComputerName -Credential $Credential -ScriptBlock $ScriptBlock
Write-Host \"$ComputerName : $resultat\"
}[/code:1]
Pour une automatisation, une solution :
[code:1]$ScriptBlock = {
Set-Location HKLM:
$Variable = Get-ChildItem HKLM:\SOFTWARE
$ret = Get-ItemProperty -Path $Variable
return $ret
}
$ComputersList = Get-Content .\MaListe.txt
foreach($ComputerName in $ComputersList){
$resultat = Invoke-Command -ComputerName $ComputerName -Credential $Credential -ScriptBlock $ScriptBlock
Write-Host \"$ComputerName : $resultat\"
}[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- LEON
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 69
- Remerciements reçus 0
il y a 14 ans 5 mois #10407
par LEON
Réponse de LEON sur le sujet Re:registre a distance
RRRoooh merci Mathieu, je ne connaissais pas le Invoke-Command avec le -Scriptblock. C'est vraiment ultra puissant quand même PS
.
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 14 ans 5 mois #10412
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:registre a distance
Showtime écrit:
Je préfère Matthew
Showtime écrit:
Je pense que nous sommes plusieurs à nous efforcer chaque jour de le faire comprendre au plus grand nombre

Remarque : PowerShell... et WinRM ! Sans WinRM, le Remoting ne serait pas possible.
@ +
Matthew<br><br>Message édité par: Matthew BETTON, à: 12/10/11 17:44
Mathieu
Je préfère Matthew
Showtime écrit:
C'est vraiment ultra puissant quand même PS
.
Je pense que nous sommes plusieurs à nous efforcer chaque jour de le faire comprendre au plus grand nombre
Remarque : PowerShell... et WinRM ! Sans WinRM, le Remoting ne serait pas possible.
@ +
Matthew<br><br>Message édité par: Matthew BETTON, à: 12/10/11 17:44
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.045 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- registre a distance