Question
activer wsman sur un pc distant wia wmi
- blanc
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 54
- Remerciements reçus 0
il y a 13 ans 9 mois #12049
par blanc
activer wsman sur un pc distant wia wmi a été créé par blanc
Bonjour,
Le but : depuis mon PC, je souhaite configurer sur un pc distant le service wsman pour qu'il accepte les appels http ( en gros faier winrm quickconfig /q sur un pc distant ).
Contexe du PC distant :
XP PRO SP3 avec powershellV2 et wsman installés.
J'ai éliminé psexec qui n'est pas autorisé (mais ....).
Avec wmi, je crée un process à distance avec les crédential d'un administrateur local de PC-Distant( pas de domaine ).
[code:1]$psec = ConvertTo-SecureString $mdp -asplaintext -force
$cred = New-Object System.Management.Automation.PSCredential $user, $psec
#$cmd='powershell -command \"&{ Set-WSManQuickConfig -Force }\" '
$cmd='c:\winnt\system32\cmd.exe /c c:\test.cmd'
#Set ObjWmiLocator = CreateObject(\"WbemScripting.SWbemLocator\"«»)
$locator = New-Object -ComObject \"WbemScripting.SWbemLocator\"
#Set objWMIService = objWmiLocator.ConnectServer (strIRGP,\"root\cimv2\",strUser2,strPwd2)
$oRemoteWmi = $locator.ConnectServer($computer,\"root\cimv2\",$user,$mdp)
#Set oClassProcess = objWMIService.Get(\"Win32_Process\"«»)
$oRemoteClassProcess=$oRemoteWmi.Get(\"Win32_Process\"«»)
# pour la position sur l'écran
#Set objProcessStartup = objWMIService.Get(\"Win32_ProcessStartup\"«»)
$oPS=$oRemoteWmi.Get(\"Win32_ProcessStartup\"«»)
#Set objMethod = oClassProcess.Methods_(\"Create\"«»)
$oMethodeCreate=$oRemoteClassProcess.Methods_|?{$_.name -eq 'create'}
#Set objInParameters = objMethod.inParameters.SpawnInstance_()
$oInParam=$oMethodeCreate.inParameters.SpawnInstance_()
#objInParameters.CommandLine = strExeName & strArgs
($oInParam.Properties_ | where {$_.name -eq \"CommandLine\"}).Value = $cmd
#objInParameters.CurrentDirectory = strCurrentDir
($oInParam.Properties_ | where {$_.name -eq \"CurrentDirectory\"}).Value = \"c:\\"
#Set objInParameters.ProcessStartupInformation = objProcessStartup
($oInParam.Properties_ | where {$_.name -eq \"ProcessStartupInformation\"}).Value = $oPS
#Set objOutParameters = oClassProcess.ExecMethod_(\"Create\", objInParameters)
$outParam = $oRemoteClassProcess.ExecMethod_(\"Create\", $oInParam)
#lecture code du pid
$remotePid = ($outParam.Properties_ | ?{$_.name -eq \"ProcessId\"}).Value
Write-Host \"remotePid = $remotePid\"
#comment savoir si la commande est terminée ?
[/code:1]
Mais ce process qui tourne sur le pc distant n'a pas le droit de configurer wsman.
Le process que je souhaite lancée sur PC-Distant pour configurer wsman est :
powershell.exe -command \"& {Set-WSManQuickConfig -Force}\"
J'ai essayé avec cmd.exe /c winrm.cmd quickconfig /q et cscript.exe winrm.vbs quickconfig /q
La partie WMI marche bien car je lance notepad.exe, powershell.exe, un cmd.exe pour lancer un script de contrôle déposé sur la machine distante pour les tests.
le script de contrôle qui m'a permis de trouver l'erreur retournée par powershell:
set >> c:\test.txt
echo %date% %time% >> c:\test.txt
powershell.exe -command \"&{ Set-WSManQuickConfig -Force}\" >> c:\test.txt 2>>&1
echo %date% %time% >> c:\test.txt
note : pour pouvoir faire de multiples tests, je supprime le listener http et la commande lancée à distance devrait le reconstruire
rem c:\winnt\system32\winrm delete winrm/config/Listener?Address=*+Transport=HTTP
Le message d'erreur de powershell est : \"accès refusé\"
18/06/2012 17:12:38,88
WinRM est déjà configuré pour recevoir des demandes sur cet ordinateur.
Set-WSManQuickConfig : <f:WSManFault xmlns:f=\"schemas.microsoft.com/wbem
/wsman/1/wsmanfault\" Code=\"5\" Machine=\"PC-Distant\"><f:Message>Accès refusé. </
f:Message></f:WSManFault>
Au niveau de ligne : 1 Caractère : 24
+ &{ Set-WSManQuickConfig <<<< -Force}
+ CategoryInfo : InvalidOperation: (
[Set-WSManQuickConfig], In
validOperationException
+ FullyQualifiedErrorId : WsManError,Microsoft.WSMan.Management.SetWSManQu
ickConfigCommand
18/06/2012 17:12:39,90
Pour cet \"accès refusé\"? Comment contourner?
Merci d'avance.
Noël
Message édité par: noel, à: 18/06/12 22:36<br><br>Message édité par: noel, à: 18/06/12 22:41
Le but : depuis mon PC, je souhaite configurer sur un pc distant le service wsman pour qu'il accepte les appels http ( en gros faier winrm quickconfig /q sur un pc distant ).
Contexe du PC distant :
XP PRO SP3 avec powershellV2 et wsman installés.
J'ai éliminé psexec qui n'est pas autorisé (mais ....).
Avec wmi, je crée un process à distance avec les crédential d'un administrateur local de PC-Distant( pas de domaine ).
[code:1]$psec = ConvertTo-SecureString $mdp -asplaintext -force
$cred = New-Object System.Management.Automation.PSCredential $user, $psec
#$cmd='powershell -command \"&{ Set-WSManQuickConfig -Force }\" '
$cmd='c:\winnt\system32\cmd.exe /c c:\test.cmd'
#Set ObjWmiLocator = CreateObject(\"WbemScripting.SWbemLocator\"«»)
$locator = New-Object -ComObject \"WbemScripting.SWbemLocator\"
#Set objWMIService = objWmiLocator.ConnectServer (strIRGP,\"root\cimv2\",strUser2,strPwd2)
$oRemoteWmi = $locator.ConnectServer($computer,\"root\cimv2\",$user,$mdp)
#Set oClassProcess = objWMIService.Get(\"Win32_Process\"«»)
$oRemoteClassProcess=$oRemoteWmi.Get(\"Win32_Process\"«»)
# pour la position sur l'écran
#Set objProcessStartup = objWMIService.Get(\"Win32_ProcessStartup\"«»)
$oPS=$oRemoteWmi.Get(\"Win32_ProcessStartup\"«»)
#Set objMethod = oClassProcess.Methods_(\"Create\"«»)
$oMethodeCreate=$oRemoteClassProcess.Methods_|?{$_.name -eq 'create'}
#Set objInParameters = objMethod.inParameters.SpawnInstance_()
$oInParam=$oMethodeCreate.inParameters.SpawnInstance_()
#objInParameters.CommandLine = strExeName & strArgs
($oInParam.Properties_ | where {$_.name -eq \"CommandLine\"}).Value = $cmd
#objInParameters.CurrentDirectory = strCurrentDir
($oInParam.Properties_ | where {$_.name -eq \"CurrentDirectory\"}).Value = \"c:\\"
#Set objInParameters.ProcessStartupInformation = objProcessStartup
($oInParam.Properties_ | where {$_.name -eq \"ProcessStartupInformation\"}).Value = $oPS
#Set objOutParameters = oClassProcess.ExecMethod_(\"Create\", objInParameters)
$outParam = $oRemoteClassProcess.ExecMethod_(\"Create\", $oInParam)
#lecture code du pid
$remotePid = ($outParam.Properties_ | ?{$_.name -eq \"ProcessId\"}).Value
Write-Host \"remotePid = $remotePid\"
#comment savoir si la commande est terminée ?
[/code:1]
Mais ce process qui tourne sur le pc distant n'a pas le droit de configurer wsman.
Le process que je souhaite lancée sur PC-Distant pour configurer wsman est :
powershell.exe -command \"& {Set-WSManQuickConfig -Force}\"
J'ai essayé avec cmd.exe /c winrm.cmd quickconfig /q et cscript.exe winrm.vbs quickconfig /q
La partie WMI marche bien car je lance notepad.exe, powershell.exe, un cmd.exe pour lancer un script de contrôle déposé sur la machine distante pour les tests.
le script de contrôle qui m'a permis de trouver l'erreur retournée par powershell:
set >> c:\test.txt
echo %date% %time% >> c:\test.txt
powershell.exe -command \"&{ Set-WSManQuickConfig -Force}\" >> c:\test.txt 2>>&1
echo %date% %time% >> c:\test.txt
note : pour pouvoir faire de multiples tests, je supprime le listener http et la commande lancée à distance devrait le reconstruire
rem c:\winnt\system32\winrm delete winrm/config/Listener?Address=*+Transport=HTTP
Le message d'erreur de powershell est : \"accès refusé\"
18/06/2012 17:12:38,88
WinRM est déjà configuré pour recevoir des demandes sur cet ordinateur.
Set-WSManQuickConfig : <f:WSManFault xmlns:f=\"schemas.microsoft.com/wbem
/wsman/1/wsmanfault\" Code=\"5\" Machine=\"PC-Distant\"><f:Message>Accès refusé. </
f:Message></f:WSManFault>
Au niveau de ligne : 1 Caractère : 24
+ &{ Set-WSManQuickConfig <<<< -Force}
+ CategoryInfo : InvalidOperation: (
validOperationException
+ FullyQualifiedErrorId : WsManError,Microsoft.WSMan.Management.SetWSManQu
ickConfigCommand
18/06/2012 17:12:39,90
Pour cet \"accès refusé\"? Comment contourner?
Merci d'avance.
Noël
Message édité par: noel, à: 18/06/12 22:36<br><br>Message édité par: noel, à: 18/06/12 22:41
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 13 ans 8 mois #12280
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:activer wsman sur un pc distant wia wmi
Salut,
Il n'est pas possible d'activer WinRM à distance, en tout cas via ce type de solution, pour des raisons de sécurité.
Une solution consiste à planifier l'exécution de la commande 'Enable-PSRemoting -Force'.
Copie le script à distance sur chaque machine puis utilises 'schtasks.exe' pour planifier son exécution, toujours à distance.
Source :
social.technet.microsoft.com/Forums/en-U...f-9c05-0e1a33412941/
Sinon, tu trouveras ici les 3 solutions pour configurer WinRM (De mémoire, Laurent et Richard en ont déjà parlé dans ce même forum) :
blogs.msdn.com/b/wmi/archive/2009/03/17/...winrm-listeners.aspx
@ +
Matthew
Il n'est pas possible d'activer WinRM à distance, en tout cas via ce type de solution, pour des raisons de sécurité.
Une solution consiste à planifier l'exécution de la commande 'Enable-PSRemoting -Force'.
Copie le script à distance sur chaque machine puis utilises 'schtasks.exe' pour planifier son exécution, toujours à distance.
Source :
social.technet.microsoft.com/Forums/en-U...f-9c05-0e1a33412941/
Sinon, tu trouveras ici les 3 solutions pour configurer WinRM (De mémoire, Laurent et Richard en ont déjà parlé dans ce même forum) :
blogs.msdn.com/b/wmi/archive/2009/03/17/...winrm-listeners.aspx
@ +
Matthew
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 13 ans 8 mois #12286
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:activer wsman sur un pc distant wia wmi
Alors j'ai déjà configuré WinRM a distance de mémoire.
Je lance un process PowerShell à distance via WMI et la classe Win32_Process avec la commande suivante :
[code:1]
powershell.exe -ExcutionPolicy byPass -Command \"Enable-PSRemoting -Force:$true -Confirm:$false\"[/code:1]
Il me semble bien que cela fonctionne.
Bien cordialement,
Richard Lazaro.
Je lance un process PowerShell à distance via WMI et la classe Win32_Process avec la commande suivante :
[code:1]
powershell.exe -ExcutionPolicy byPass -Command \"Enable-PSRemoting -Force:$true -Confirm:$false\"[/code:1]
Il me semble bien que cela fonctionne.
Bien cordialement,
Richard Lazaro.
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
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 13 ans 8 mois #12301
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:activer wsman sur un pc distant wia wmi
Bonsoir,
Je vais tester demain sur un XP.
@ +
Matthew
Je vais tester demain sur un XP.
@ +
Matthew
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 13 ans 8 mois #12321
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:activer wsman sur un pc distant wia wmi
Bonsoir,
J'ai testé mais ce n'était pas concluant. Au final, il n'y avait pas de listener créé... Toutefois, j'ai des doutes sur la configuration que j'ai utilisé. Il va falloir que je trouve un moment pour le faire sur une plateforme de tests perso (avec au moins un XP virtualisé).
Pour info, j'ai testé la commande dans une fenêtre DOS distante ouverte avec un psexec exécuté en tant qu'Admin : La commande renvoie un simple \"Access Denied\".
Je reviendrai ici lorsque j'aurais fait le test (Dans tous les cas, ça m'intéresse, bien qu'en entreprise, je le ferai bien volontiers via les GPO
).
@ +
Matthew
J'ai testé mais ce n'était pas concluant. Au final, il n'y avait pas de listener créé... Toutefois, j'ai des doutes sur la configuration que j'ai utilisé. Il va falloir que je trouve un moment pour le faire sur une plateforme de tests perso (avec au moins un XP virtualisé).
Pour info, j'ai testé la commande dans une fenêtre DOS distante ouverte avec un psexec exécuté en tant qu'Admin : La commande renvoie un simple \"Access Denied\".
Je reviendrai ici lorsque j'aurais fait le test (Dans tous les cas, ça m'intéresse, bien qu'en entreprise, je le ferai bien volontiers via les GPO
@ +
Matthew
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.100 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- activer wsman sur un pc distant wia wmi