Renamecomputer.vbs für W2K-Clients gesucht.
Unsere Absicht ist es, in einer W2K3-Dömane mithilfe eines Scriptes per Remote die Computernamen der Clients zu ändern. Ein vorhandenes Script (http://techinfo.cnwl.ac.uk/Windows%20Scripts/default.asp?dest=Rename%20 ..) funktioniert bei XP-Client perfekt.
Leider haben wir festgestellt, daß diese Methode nicht bei W2K-Clients funktioniert.
Eine mögliche Ursache könnte sein, daß WMI unter W2K diese Funktionalität nicht unterstützt.
Ein Tipp eines Kollegen war, ein Startupscript zu schreiben, welches diese Aktion durchführt.
Wer kann ein solches Programmieren?
Oder hat jemand eine andere Idee, wie wir die W2K-Clients per Remote umbenennen können?
Vielen Dank
Leider haben wir festgestellt, daß diese Methode nicht bei W2K-Clients funktioniert.
Eine mögliche Ursache könnte sein, daß WMI unter W2K diese Funktionalität nicht unterstützt.
Ein Tipp eines Kollegen war, ein Startupscript zu schreiben, welches diese Aktion durchführt.
Wer kann ein solches Programmieren?
Oder hat jemand eine andere Idee, wie wir die W2K-Clients per Remote umbenennen können?
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 75948
Url: https://administrator.de/contentid/75948
Ausgedruckt am: 20.11.2024 um 03:11 Uhr
6 Kommentare
Neuester Kommentar
Im Script, Ja.
Wird für das ErrorHandling in Scripten verwendet.
Wenn ein Fehler auftaucht, dann springt der Code dorthin. Mit Err.Description und Err.Source kannst Du den Fehler ausgeben lassen (Gibt übrigens gute Tut's dazu )
Kannst es natürlich auch so machen:
Z.Bsp.
[Scriptanfang]
On Error Resume Next
[ScriptEnde]
Msgbox Err.Source & " ; " & Err.Description
*Räusper* Wenn Du aber solche Fragen stellst, bist Du sicher dass Du so etwas wirklich per Script machen willst? *Hüstel* 0
Wird für das ErrorHandling in Scripten verwendet.
Wenn ein Fehler auftaucht, dann springt der Code dorthin. Mit Err.Description und Err.Source kannst Du den Fehler ausgeben lassen (Gibt übrigens gute Tut's dazu )
Kannst es natürlich auch so machen:
Z.Bsp.
[Scriptanfang]
On Error Resume Next
[ScriptEnde]
Msgbox Err.Source & " ; " & Err.Description
*Räusper* Wenn Du aber solche Fragen stellst, bist Du sicher dass Du so etwas wirklich per Script machen willst? *Hüstel* 0
Ich würde es so machen:
Aber sonst ja...
Als Startupscript kannst Du etwas in dieser Art nehmen:
Habe leider keine Zeit mehr zum Erklären. Schau mal , ob Du es verstehst.
rc =
oWMIComputerSystem.Rename(sNew,sDomainPasswd,sDomainUser)
if rc <> 0 then
WScript.Echo "Rename failed with
error: " & rc
else
WScript.Echo "Successfully renamed
" & sOld & " to "
& sNew
wscript.echo "Now rebooting"
rebootMachine sOld
end if
Msgbox Err.Source & " ; " & Err.Description
oWMIComputerSystem.Rename(sNew,sDomainPasswd,sDomainUser)
if rc <> 0 then
WScript.Echo "Rename failed with
error: " & rc
else
WScript.Echo "Successfully renamed
" & sOld & " to "
& sNew
wscript.echo "Now rebooting"
rebootMachine sOld
end if
Msgbox Err.Source & " ; " & Err.Description
Aber sonst ja...
Als Startupscript kannst Du etwas in dieser Art nehmen:
strComputer = InputBox("Enter computer name or IP.", "Logged-on user")
strNamespace = "root\cimv2"
strUserName = InputBox _
("Enter user name.", "Logged-on user", "administrator")
strPassword = InputBox _
("Enter password.", "Logged-on user", "password")
dim objWMILocator ' SWbemLocator object
dim objWMIService ' SWbemServices object
Set objWMILocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objWMILocator.ConnectServer _
(strComputer, strNamespace, strUserName, strPassword)
Set colComputer = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
For Each objComputer in colComputer
strNewName = objComputer.UserName
Wscript.Echo "Logged-on user: " & objComputer.UserName
Next
yesno = MsgBox _
("Would you like to rename this computer?", _
vbYesNo, "Rename computer")
if yesno = 6 then
Set colComputers = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
strNewName = InputBox _
("Enter new computer name.", "Rename computer", strNewName)
For Each objComputer in colComputers
ObjComputer.Rename(strNewName)
Next
MsgBox "The computer named "&strOldName _
&" was renamed to "& strNewName
end if
strNamespace = "root\cimv2"
strUserName = InputBox _
("Enter user name.", "Logged-on user", "administrator")
strPassword = InputBox _
("Enter password.", "Logged-on user", "password")
dim objWMILocator ' SWbemLocator object
dim objWMIService ' SWbemServices object
Set objWMILocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objWMILocator.ConnectServer _
(strComputer, strNamespace, strUserName, strPassword)
Set colComputer = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
For Each objComputer in colComputer
strNewName = objComputer.UserName
Wscript.Echo "Logged-on user: " & objComputer.UserName
Next
yesno = MsgBox _
("Would you like to rename this computer?", _
vbYesNo, "Rename computer")
if yesno = 6 then
Set colComputers = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
strNewName = InputBox _
("Enter new computer name.", "Rename computer", strNewName)
For Each objComputer in colComputers
ObjComputer.Rename(strNewName)
Next
MsgBox "The computer named "&strOldName _
&" was renamed to "& strNewName
end if
Habe leider keine Zeit mehr zum Erklären. Schau mal , ob Du es verstehst.
Hab da noch was bei Microsoft gefunden, was Dir weiterhelfen könnte
Rename Computer
Musst nur noch eine kleine Routine einbauen, damit nicht bei jedem Anmelden der Computer umbenannt wird.
Das fertige Script in die GPO, damit es beim Systemstart ausgeführt wird und Deiner Migration dürfte nichts mehr im Wege stehen.
Rename Computer
Musst nur noch eine kleine Routine einbauen, damit nicht bei jedem Anmelden der Computer umbenannt wird.
Das fertige Script in die GPO, damit es beim Systemstart ausgeführt wird und Deiner Migration dürfte nichts mehr im Wege stehen.