Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Remoterechner in eine Domäne aufnehmen mit VBS/WSH

Frage Entwicklung VB for Applications

Mitglied: J3nny1981

J3nny1981 (Level 1) - Jetzt verbinden

21.02.2007, aktualisiert 26.02.2007, 4171 Aufrufe, 23 Kommentare

Hallo,
Ich möchte bei mehreren Remote-Rechnern (im LAN) die Rechnernamen ändern und diese dann zu einer Domäne hinzufügen.
Den Rechnernamen via "Remote" über eingabe der IP+Loakele admindaten habe ich geschafft.

Allerdings brauche ich jetzt noch ein VBS/WSH-Skript welches mir erlaubt, den Remoterechner in einer Domäne hinzuzufügen....

Ich stell mir das so vor, dass einfach IP + AdminDaten abgefragt werden, er dann connected und mich dann fragt in welche Domäne er aufgenommen werden soll, wieder mit DomänAdm_Name und Domän_Passw.
Ist das möglich? Wenn ja wie ?


Vielen Dank schonmal
Jenny
Mitglied: Alfredus
21.02.2007 um 14:20 Uhr
MSDN Artikel

So sollte der Domänenbeitritt funktionieren.

Gruß
Alfredus
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 14:25 Uhr
ja das habe ich auch shcon gefunden,
allerdings klappt das nur wenn man das beispiel script likal ausführt...

ich will es aber über remote ausführen..
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 14:25 Uhr
ja das habe ich auch shcon gefunden,
allerdings klappt das nur wenn man das beispiel script likal ausführt...

ich will es aber über remote ausführen..
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 14:26 Uhr
ja das habe ich auch shcon gefunden,
allerdings klappt das nur wenn man das beispiel script likal ausführt...

ich will es aber über remote ausführen..
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 14:26 Uhr
ja das habe ich auch shcon gefunden,
allerdings klappt das nur wenn man das beispiel script likal ausführt...

ich will es aber über remote ausführen..
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 14:26 Uhr
ja das habe ich auch shcon gefunden,
allerdings klappt das nur wenn man das beispiel script likal ausführt...

ich will es aber über remote ausführen..
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 14:26 Uhr
ja das habe ich auch shcon gefunden,
allerdings klappt das nur wenn man das beispiel script likal ausführt...

ich will es aber über remote ausführen..
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 14:26 Uhr
ja das habe ich auch shcon gefunden,
allerdings klappt das nur wenn man das beispiel script likal ausführt...

ich will es aber über remote ausführen..
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 14:26 Uhr
ja das habe ich auch shcon gefunden,
allerdings klappt das nur wenn man das beispiel script likal ausführt...

ich will es aber über remote ausführen..
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 14:26 Uhr
ja das habe ich auch shcon gefunden,
allerdings klappt das nur wenn man das beispiel script likal ausführt...

ich will es aber über remote ausführen..
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 14:26 Uhr
ja das habe ich auch shcon gefunden,
allerdings klappt das nur wenn man das beispiel script likal ausführt...

ich will es aber über remote ausführen..
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 14:26 Uhr
ja das habe ich auch shcon gefunden,
allerdings klappt das nur wenn man das beispiel script likal ausführt...

ich will es aber über remote ausführen..
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 14:26 Uhr
ja das habe ich auch shcon gefunden,
allerdings klappt das nur wenn man das beispiel script likal ausführt...

ich will es aber über remote ausführen..
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 14:27 Uhr
ja das habe ich auch shcon gefunden,
allerdings klappt das nur wenn man das beispiel script likal ausführt...

ich will es aber über remote ausführen..
Bitte warten ..
Mitglied: bastla
21.02.2007 um 14:54 Uhr
Hallo J3nny1981!

Hast Du schon versucht, in dem genannten Script die Zeile
01.
strComputer = objNetwork.ComputerName
durch
01.
strComputer = "Name des aufzunehmenden Computers"
zu ersetzen?

Ansatz Nr. 2: Du könntst das Script über PsExec ausführen lassen.

Grüße
bastla
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 15:28 Uhr
Also mein bisheriges Script um den Remotenamen zu ändern sieht so aus....
So ähnlich hatte ich mir das auch vorgestellt.... nur eben angepasst für den Domänbeitritt.
Wie kann man dieses Script anpassen?


01.
If Right(WScript.FullName, Len(WScript.Fullname) - Len(WScript.Path) -1) = "WScript.exe" Then 
02.
  WScript.CreateObject("WScript.Shell").Run "cmd /t:1F /k cscript //NoLogo " & Chr(34) & WScript.ScriptFullName & Chr(34) 
03.
  WScript.Quit 
04.
End If 
05.
WScript.StdOut.WriteLine String(80, "=") 
06.
WScript.StdOut.WriteLine "(R)ename(R)emote(C)omputer" & vbCrLf 
07.
WScript.StdOut.WriteLine String(80, "=") 
08.
WScript.StdOut.WriteLine "Das Skript wurde am " & now & " gestartet." 
09.
WScript.StdOut.WriteLine  
10.
WScript.StdOut.Write "Computer oder IP-Adresse -> " 
11.
Computer = WScript.StdIn.ReadLine() 
12.
WScript.StdOut.Write "Lokaler Administrator    -> " 
13.
PC_Adm = WScript.StdIn.ReadLine() 
14.
WScript.StdOut.Write "Kennwort                 -> " 
15.
PC_PSW = WScript.StdIn.ReadLine() 
16.
On Error Resume Next 
17.
Set WMILocator =CreateObject("WbemScripting.SWbemLocator") 
18.
WMILocator.Security_.AuthenticationLevel = 6 
19.
Set WMI = WMILocator.ConnectServer(Computer, "root\cimv2" , PC_Adm, PC_PSW) 
20.
If Err.Number = 0 Then 
21.
  WScript.StdOut.WriteLine 
22.
  WScript.StdOut.Write "Neuer Computername       -> " 
23.
  NeuerName = WScript.StdIn.ReadLine() 
24.
  Err.Clear 
25.
  Set CompSys = WMI.ExecQuery ("Select * from Win32_ComputerSystem") 
26.
  For Each Item In CompSys 
27.
    Item.Rename NeuerName 
28.
  Next 
29.
  If Err.Number = 0 Then 
30.
    WScript.StdOut.WriteLine Computer & " wurde in " & NeuerName & " umbenannt." 
31.
    WScript.StdOut.WriteLine "Der Computer wird jetzt neugestartet." 
32.
    WScript.CreateObject("WScript.Shell").Run "shutdown.exe -r -m \\" & Computer 
33.
  Else 
34.
    WScript.StdOut.WriteLine Err.Description 
35.
  End If  
36.
Else 
37.
  WScript.StdOut.WriteLine 
38.
  WScript.StdOut.Write "Bei dem Versuch eine Verbindung mit den Remotecomputer herzusstellen," & vbCrLf & "ist ein Fehler aufgetreten -> " 
39.
  WScript.StdOut.WriteLine Err.Description  
40.
End If 
41.
 
42.
 
Bitte warten ..
Mitglied: Alfredus
21.02.2007 um 15:52 Uhr
ich will es aber über remote ausführen..

*?*

Bei WMI ist es wurscht(naja fast immer) wo es ausgeführt wird. Entscheidend ist, auf welchen Computer die Methode Win32_ComputerSystem Class#JoinDomainOrWorkgroup() angewandt wird.

Fülle die Variable objNetwork.ComputerName mit dem Namen des PCs und gibt bei den Kontendaten die Daten eines Admins mit.

Gruß
Alfredus
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 15:58 Uhr
mhh ich verstehs nicht,,
ich habs nun so versucht, aber es funktioniert nicht... er führt den reboot und domainänderrung lokal durch....

01.
Const JOIN_DOMAIN             = 1 
02.
Const ACCT_CREATE             = 2 
03.
Const ACCT_DELETE             = 4 
04.
Const WIN9X_UPGRADE           = 16 
05.
Const DOMAIN_JOIN_IF_JOINED   = 32 
06.
Const JOIN_UNSECURE           = 64 
07.
Const MACHINE_PASSWORD_PASSED = 128 
08.
Const DEFERRED_SPN_SET        = 256 
09.
Const INSTALL_INVOCATION      = 262144 
10.
 
11.
Dim intOk, Computer, PC_Adm, PC_PSW, NeueDomaene 
12.
Dim strDomain, strPassword, strUser 
13.
 
14.
strDomain   = Domäne 
15.
strUser     = ADMIN 
16.
strPassword = PAsswort 
17.
 
18.
 
19.
If Right(WScript.FullName, Len(WScript.Fullname) - Len(WScript.Path) -1) = "WScript.exe" Then 
20.
  WScript.CreateObject("WScript.Shell").Run "cmd /t:1F /k cscript //NoLogo " & Chr(34) & WScript.ScriptFullName & Chr(34) 
21.
  WScript.Quit 
22.
End If 
23.
WScript.StdOut.WriteLine String(80, "=") 
24.
WScript.StdOut.WriteLine "(R)ename(R)emote(C)omputer" & vbCrLf 
25.
WScript.StdOut.WriteLine String(80, "=") 
26.
WScript.StdOut.WriteLine "Das Skript wurde am " & now & " gestartet." 
27.
WScript.StdOut.WriteLine  
28.
WScript.StdOut.Write "Computer oder IP-Adresse -> " 
29.
Computer = WScript.StdIn.ReadLine() 
30.
WScript.StdOut.Write "Lokaler Administrator    -> " 
31.
PC_Adm = WScript.StdIn.ReadLine() 
32.
WScript.StdOut.Write "Kennwort                 -> " 
33.
PC_PSW = WScript.StdIn.ReadLine() 
34.
'On Error Resume Next 
35.
Set WMILocator =CreateObject("WbemScripting.SWbemLocator") 
36.
WMILocator.Security_.AuthenticationLevel = 6 
37.
Set WMI = WMILocator.ConnectServer(Computer, "root\cimv2" , PC_Adm, PC_PSW) 
38.
If Err.Number = 0 Then 
39.
 'If((strDomain <> "") or (strUser <> "") or (strPassword <> "")) Then 
40.
 Set ws = WScript.CreateObject("WScript.Shell") 
41.
 
42.
 Set objNetwork = CreateObject("WScript.Network")  
43.
 strComputer = objNetwork.ComputerName 
44.
  
45.
 Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _ 
46.
    strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _ 
47.
        strComputer & "'") 
48.
  
49.
 intOk = objComputer.JoinDomainOrWorkGroup(strDomain, _ 
50.
                                                strPassword, _ 
51.
                                                strDomain & "\" & strUser, _ 
52.
                                                NULL, _ 
53.
                                                JOIN_DOMAIN + ACCT_CREATE) 
54.
 
55.
 If intOk = 0 then 
56.
   wscript.echo SUCCESS, "Join Domain erfolgreich mit: " & strDomain 
57.
  Else 
58.
    wscript.echo ERROR, "Join Domain fehlgeschlagen mit: " & strDomain 
59.
 End If 
60.
 
61.
 ws.Run "shutdown.exe -r -f -t 0 -c ""Windows XP wird neu gestartet""", 1, False 
62.
End IF
Bitte warten ..
Mitglied: bastla
21.02.2007 um 16:15 Uhr
Hallo J3nny1981!

In die Variable "strComputer" wird immer der lokale Computername geschrieben (siehe "strComputer = objNetwork.ComputerName"). Wenn Du stattdessen Deinen eingegebenen Computernamen "Computer" zuweist (oder in der Folge anstelle von "strComputer" nur "Computer" verwendest), hättest Du sicher eine bessere Chance ...

Grüße
bastla
Bitte warten ..
Mitglied: Alfredus
21.02.2007 um 16:24 Uhr
h habs nun so versucht, aber es funktioniert nicht... er führt den reboot und domainänderrung lokal durch....

Ja und? So hast du es ja auch im Skript stehen!

strComputer = objNetwork.ComputerName

mach deine Eingabe des Zielrechners mit dem stdin#read hinfällig. Es wird immer der Rechner genommen auf dem das Skript ausgeführt wird!

ws.Run "shutdown.exe -r -f -t 0 -c ""Windows XP wird neu gestartet""", 1, False

Führt auf dem Rechner auf dem das Skript ausgeführt wird ein Reboot durch.

Mein Tipp: Entweder beherzigst du obige Ratschläge oder nimmst das Skript von Mircofsoft mit der Änderung von Bastla....oder latsch halt zu den PCs und hebe sie in die Domäne...

Gruß
Alfredus
Bitte warten ..
Mitglied: J3nny1981
21.02.2007 um 16:36 Uhr
ok...

"strComputer = objNetwork.ComputerName"

habe ich nun in

"strComputer = Computer " umbenannt


dann meckert er aber bei :

Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _
strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _
strComputer & "'")
Bitte warten ..
Mitglied: bastla
21.02.2007 um 18:16 Uhr
Hallo J3nny1981!

Da waren die beiden WMI-Zugriffsmethoden vermischt. Ich kann das leider nicht selbst testen und bin daher auf Vermutungen angewiesen - ändere versuchsweise den letzten Teil auf
01.
If Err.Number = 0 Then 
02.
    intOk = WMI.JoinDomainOrWorkGroup(strDomain, _ 
03.
                                                strPassword, _ 
04.
                                                strDomain & "\" & strUser, _ 
05.
                                                NULL, _ 
06.
                                                JOIN_DOMAIN + ACCT_CREATE) 
07.
 
08.
    If intOk = 0 then 
09.
        wscript.echo SUCCESS, "Join Domain erfolgreich mit: " & strDomain 
10.
    Else 
11.
        wscript.echo ERROR, "Join Domain fehlgeschlagen mit: " & strDomain 
12.
    End If 
13.
End If
Den Neustart würde ich momentan hintanstellen bzw zumindest so schreiben:
01.
ws.Run "shutdown.exe -r -f -m \\" & Computer & " -t 0 -c ""Windows XP wird neu gestartet""", 1, False
Grüße
bastla
Bitte warten ..
Mitglied: J3nny1981
26.02.2007 um 12:06 Uhr
Hallo, also ich habe nun mein script weiter verändert, auch mit euren Vorshlägen.
So siehts nun aus. Er meldet sich ohne fehler bei dem remote rechner an. Dann fragt er die Domain ab. Dann kommt die Meldung:

"Join Domain erfolgreich mit: 0
Das Objekt unterstützt diese Eigenschaft oder Methode nicht."

Warum steht da 0 ? Normal sollte er doch die Domain angeben?




Const JOIN_DOMAIN = 1
Const ACCT_CREATE = 2
Const ACCT_DELETE = 4
Const WIN9X_UPGRADE = 16
Const DOMAIN_JOIN_IF_JOINED = 32
Const JOIN_UNSECURE = 64
Const MACHINE_PASSWORD_PASSED = 128
Const DEFERRED_SPN_SET = 256
Const INSTALL_INVOCATION = 262144


Dim intOk
Dim strDomain, strPassword, strUser
strDomain = INF-POOL
strUser = Joiner
strPassword = Jackhal


If Right(WScript.FullName, Len(WScript.Fullname) - Len(WScript.Path) -1) = "WScript.exe" Then
WScript.CreateObject("WScript.Shell").Run "cmd /t:1F /k cscript //NoLogo " & Chr(34) & WScript.ScriptFullName & Chr(34)
WScript.Quit
End If
WScript.StdOut.WriteLine String(80, "=")
WScript.StdOut.WriteLine "(R)ename(R)emote(C)omputer" & vbCrLf
WScript.StdOut.WriteLine String(80, "=")
WScript.StdOut.WriteLine "Das Skript wurde am " & now & " gestartet."
WScript.StdOut.WriteLine
WScript.StdOut.Write "Computer oder IP-Adresse -> "
Computer = WScript.StdIn.ReadLine()
WScript.StdOut.Write "Lokaler Administrator -> "
PC_Adm = WScript.StdIn.ReadLine()
WScript.StdOut.Write "Kennwort -> "
PC_PSW = WScript.StdIn.ReadLine()
On Error Resume Next
Set WMILocator =CreateObject("WbemScripting.SWbemLocator")
WMILocator.Security_.AuthenticationLevel = 6
Set WMI = WMILocator.ConnectServer(Computer, "root\cimv2" , PC_Adm, PC_PSW)
If Err.Number = 0 Then
WScript.StdOut.WriteLine
WScript.StdOut.Write "Bitte Domänname angeben -> "
Domaene = WScript.StdIn.ReadLine()
Err.Clear
Set ws = WScript.CreateObject("WScript.Shell")

Set objNetwork = CreateObject("WScript.Network")
strComputer = computer

If Err.Number = 0 Then

intOk = WMI.JoinDomainOrWorkGroup(strDomain, _
strPassword, _
strDomain & "\" & strUser, _
NULL, _
JOIN_DOMAIN + ACCT_CREATE)

If intOk = 0 then
wscript.echo SUCCESS, "Join Domain erfolgreich mit: " & strDomain
Else
wscript.echo ERROR, "Join Domain fehlgeschlagen mit: " & strDomain
End If
End If




Dann ahbe ich noch eine frage. In einem Script welches lokal die Domaine ändert steht noch folgendes:

Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _
strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _
strComputer & "'")


was bewirkt das? Bzw wie kann ich das "umbauen" das es auch mit dem remotescript funktioniert????


Vielen Dank
Jenny
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows 7
gelöst PC wieder in Domäne aufnehmen, lokale Anmeldung nicht möglich (2)

Frage von Bluejet zum Thema Windows 7 ...

Windows Userverwaltung
gelöst Client in Domäne via VPN Verbindung aufnehmen (6)

Frage von Robgro zum Thema Windows Userverwaltung ...

Windows Userverwaltung
gelöst Programmupdates ohne Adminrechte für die User einer Domäne (3)

Frage von M.Marz zum Thema Windows Userverwaltung ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...