Renommer nom ordinateur

Résolu
Signaler
Messages postés
38
Date d'inscription
vendredi 29 juin 2007
Statut
Membre
Dernière intervention
2 août 2007
-
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
Bonjour à tous,

je voudrais renommer le nom de mon pc (sous windows xp) en vbs.
Si quelqu'un pouvait m'aider ce serait sympa.
J'ai déjà trouver ça mais ca ne fonctionne pas :  http://www.vbfrance.com/codes/CHANGER-NOM-ORDINATEUR_145.aspx

Il faudrait avoir la possibilier de demander à l'utilisateur via une messageBox de choisir le nom qu'il souhaite.

16 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
WMI ....

http://msdn2.microsoft.com/en-US/library/aa393056.aspx


strComputer = "."
Set objWMIService = GetObject("winmgmts:\" & strComputer & "\root\CIMV2")
Set objShare = objWMIService.Get("Win32_ComputerSystem.Name='SERVER'")
Set objInParam = objShare.Methods_("Rename").inParameters.SpawnInstance_()
objInParam.Properties_.Item("Name") = "server2"
objInParam.Properties_.Item("Password") = "admin"
objInParam.Properties_.Item("UserName") = "administrator"
Set objOutParams = objWMIService.ExecMethod("Win32_ComputerSystem.Name='SERVER'", "Rename", objInParam)
Wscript.echo "ReturnValue: " & objOutParams.ReturnValue

(tiré de http://www.aspfree.com/c/a/VB.NET/ListingModifying-Server-Information-with-Visual-BasicNET-and-VBScript-Using-WMI/4/)
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
utilises l'API

SetComputerNameEx

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
38
Date d'inscription
vendredi 29 juin 2007
Statut
Membre
Dernière intervention
2 août 2007

Le problème se situe dans le début du code, il doit y avoir un problème de déclaration!
Si quelqu'un voyait d'où cela viendrait ce m'aiderait beaucoup.
merci

Declare Function SetComputerNameEx Lib "kernel32" Alias "SetComputerNameExA" (ByVal NameType As COMPUTER_NAME_FORMAT, ByVal lpBuffer As String) As Long


Dim Changer As Long


If WScript.Arguments.Unnamed.length>0 Then
 changer = WScript.Arguments.Unnamed.Item(0)
ElseIf  InStr(1,WScript.FullName, "csript") > 0 Then
 WScript.StdOut.WriteLine "Saisissez le nom de l'ordinateur :"
 changer = WScript.StdIn.ReadLine
Else
 changer = InputBox ("Saisissez le nom de l'ordinateur :", "Informations nom d'ordinateur")
End If




Public Function ChangerNomOrdi(NouveauNomOrdi As String) As Boolean
    On Error Resume Next
    Changer = SetComputerNameEx(NouveauNomOrdi)
    If Err.Number = 0 Then
        ChangerNomOrdi = True
    Else
        ChangerNomOrdi = False
    End If
End Function




'Pour Changer le nom de votre ordinateur :


Dim Retour As Boolean


Retour = ChangerNomOrdi("MonOrdi")
If Retour = True Then
    MsgBox("Le nom de votre ordinateur a été changé")
Else
    MsgBox("Le nom de votre ordinateur n'a pas été changé")
End If
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Bonjour,

Casy va passer par là et te rappeler qu'il faut "typer" en Integer et pas en Long sous VB.Net.
Messages postés
38
Date d'inscription
vendredi 29 juin 2007
Statut
Membre
Dernière intervention
2 août 2007

merci de ta réponse, mais ca ne fonctionne toujours pas, ca bug dès la 1ere ligne.

Je suis désolé de pas être trop doué mais j'ai découvert le vbs cette semaine et j'ai un peu de mal.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Attends là...
"j'ai découvert le vbs cette semaine et j'ai un peu de mal"

VBS est une chose et VB.Net en est une autre !!!!!
Messages postés
38
Date d'inscription
vendredi 29 juin 2007
Statut
Membre
Dernière intervention
2 août 2007

merci pour votre aide
Messages postés
7
Date d'inscription
dimanche 3 juin 2007
Statut
Membre
Dernière intervention
11 juin 2008

guivara1985

Salut tt le monde ;),

bein je c pa comment le dire mais je ss pa pro a vb, donc g pa compris comment faire pour ke je puisse fonctionner ce code.

merci de me repondre
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
le code est on ne peut plus clair, pourtant :


'# Renomme la machine nommée "SERVER" en "server2"
Dim objWMIService 'As Object
Dim objShare 'As Object
Dim objInParam 'As Object
Dim objOutParams 'As Object

Set objWMIService = GetObject("winmgmts:\" & strComputer & "\root\CIMV2")
Set objShare = objWMIService.Get("Win32_ComputerSystem.Name='SERVER'")
Set objInParam = objShare.Methods_("Rename").inParameters.SpawnInstance_()

objInParam.Properties_.Item("Name") = "server2" '# Nouveau nom de la machine
objInParam.Properties_.Item("UserName") = "administrator" '# login d'un admin
objInParam.Properties_.Item("Password") = "admin" '# son mot de passe

Set objOutParams = objWMIService.ExecMethod("Win32_ComputerSystem.Name='SERVER'", "Rename", objInParam)

MsgBox "ReturnValue: " & objOutParams.ReturnValue
Messages postés
7
Date d'inscription
dimanche 3 juin 2007
Statut
Membre
Dernière intervention
11 juin 2008

guivara1985

salut Renfield,

g esseyer ton code sur vb6 mais sa pa marcher , lors de l'execution il m'affiche la presence de kke bug.

merci de me montrer comment faire.
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
faut que tu adaptes le code, pour y inclure le nom de ta machine...

ok, ok, je te mache ça :

Public Function RenameComputer(ByRef vsOldName As String, ByRef vsNewName As String, ByRef vsAdminLogin As String, ByRef vsAdminPassword As String) As Long
Dim objWMIService As Object
Dim objShare As Object
Dim objInParam As Object
Dim objOutParams As Object
On Error GoTo Handler
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set objShare = objWMIService.Get("Win32_ComputerSystem.Name='" & vsOldName & "'")
Set objInParam = objShare.Methods_("Rename").inParameters.SpawnInstance_()

objInParam.Properties_.Item("Name") = vsNewName
objInParam.Properties_.Item("UserName") = vsAdminLogin
objInParam.Properties_.Item("Password") = vsAdminPassword

Set objOutParams = objWMIService.ExecMethod("Win32_ComputerSystem.Name='" & vsOldName & "'", "Rename", objInParam)

RenameComputer = objOutParams.ReturnValue
Exit Function
Handler:
RenameComputer = Err.Number
End Function
Messages postés
7
Date d'inscription
dimanche 3 juin 2007
Statut
Membre
Dernière intervention
11 juin 2008

guivara1985

Merci bien Renfield de ta reponse, mais je c pa eske je dois modifier les champs: Name , Username et Password ds le code ke tu m'a envoyer ou bien je l'utilise comme il est.

merci a+;)
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
1- oublie le langage SMS sur ce site
2- utilises la fonction 'RenameComputer' telle quelle, transmets lui simplement les parametres adéquats
Messages postés
7
Date d'inscription
dimanche 3 juin 2007
Statut
Membre
Dernière intervention
11 juin 2008

guivara1985

Désolé Renfield, pour le langage SMS, et merci de ta reponse. je vais esseyer le code et te dire le resultat.

A++
Messages postés
3
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
12 juin 2008

Salut tt le monde
moi aussi je veux changer le nom complet( pas le nom netbios)de mon ordi (pas un serveur) à l'aide d'un script
pouvez vous m'aider
merci
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
as-tu essayé la fonction décrite quelques messages plus haut ? (RenameComputer)