Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Encore plus fort que Windows Server Core Configurator (cf. https://blogs.technet.com/longhorn/archive/2008/10/09/outil-de-configuration-pour-windows-server-2008-core.aspx) voici le script de configuration disponible dans Microsoft Hyper-V Server 2008.
Fabrice a trouvé la config et surtout récupéré le script sur sa machine Microsoft Hyper-V Server 2008. Good Job ;-)
La documentation https://www.microsoft.com/downloads/details.aspx?FamilyId=E1E111C9-FA69-4B4D-8963-1DD87804C04F&displaylang=en
Voici le script il est dans "%windir%\system32\en-US\hvconfig.vbs" (de là à le réutiliser pour les installations core...)
'-------------------------------------------
' Copyright (c) Microsoft Corporation. All rights reserved.
'
' Version 1.0
' hvconfig.vbs - Configuration script used to setup a Hyper-V machine for remote configuration
'
'
'-------------------------------------------
const L_Msg001_Text = "No IP address"
const L_Msg002_Text = " No IP "
const L_Msg003_Text = "No active network adapters found."
const L_Msg004_Text = "Warning"
const L_Msg005_Text = " Hyper-V Configuration"
const L_Msg006_Text = "1) Domain/Workgroup: "
const L_Msg007_Text = "2) Computer Name: "
const L_Msg008_Text = "3) Network Settings"
const L_Msg009_Text = "4) Add Local Administrator"
const L_Msg010_Text = "5) Windows Update Settings: "
const L_Msg011_Text = "6) Download and Install Updates: "
const L_Msg012_Text = "7) Remote Desktop: "
const L_Msg013_Text = "8) Regional and Language Options"
const L_Msg014_Text = "9) Date and Time"
const L_Msg015_Text = "10) Log Off User"
const L_Msg016_Text = "11) Restart Server"
const L_Msg017_Text = "12) Shut Down Server"
const L_Msg018_Text = "13) Exit to Command Line"
const L_Msg019_Text = "Enter number to select an option: "
const L_Msg020_Text = "Change Domain/Workgroup Membership"
const L_Msg021_Text = "Join (D)omain or (W)orkgroup? (Blank=Cancel) "
const L_Msg022_Text = "Domain"
const L_Msg023_Text = "Workgroup"
const L_Msg024_Text = "Machine currently joined to a domain."
const L_Msg025_Text = "Do you want to remove this computer from the current domain now?"
const L_Msg026_Text = "Specify an authorized domain\user: "
const L_Msg027_Text = "Removing computer from current domain..."
const L_Msg028_Text = "You must restart your computer to apply these changes."
const L_Msg029_Text = "Restart now?"
const L_Msg030_Text = "Restart"
const L_Msg031_Text = "Specify domain\user: "
const L_Msg032_Text = "Join Domain"
const L_Msg033_Text = "Enter new computer name (Blank=Cancel): "
const L_Msg034_Text = "Computer Name"
const L_Msg035_Text = "Changing Computer name..."
const L_Msg036_Text = "Enter account to join local Administrators group (Blank=Cancel): "
const L_Msg037_Text = "Adding to local Administrators group..."
const L_Msg038_Text = "Local Administrators Group"
const L_Msg039_Text = "User added to local Administrators group."
const L_Msg040_Text = "User not found."
const L_Msg041_Text = "User already in local Administrators group."
const L_Msg042_Text = "Failed to add user to local Administrators group."
const L_Msg043_Text = "Windows Update currently set to: "
const L_Msg044_Text = "Select (A)utomatic or (M)anual updates: "
const L_Msg045_Text = "Automatic"
const L_Msg046_Text = "System will check for and install updates every day at 3:00 AM."
const L_Msg047_Text = "Enabling Automatic updates..."
const L_Msg048_Text = "Manual"
const L_Msg049_Text = "System will never check for updates."
const L_Msg050_Text = "Disabling Automatic updates..."
const L_Msg051_Text = "Windows Update set to "
const L_Msg052_Text = "Update Settings"
const L_Msg053_Text = "(E)nable or (D)isable Remote Desktop? (Blank=Cancel) "
const L_Msg054_Text = "1) Allow only clients running Remote Desktop with Network Level Authentication (more secure)"
const L_Msg055_Text = "2) Allow clients running any version of Remote Desktop (less secure)"
const L_Msg056_Text = "Enter selection: "
const L_Msg057_Text = "Enabling Remote Desktop..."
const L_Msg058_Text = "Remote Desktop enabled for clients running any version of Remote Desktop (less secure)."
const L_Msg059_Text = "Remote Desktop"
const L_Msg060_Text = "Remote Desktop enabled for clients only running Remote Desktop with Network Level Authentication (more secure)."
const L_Msg061_Text = "Failed to disable Remote Desktop."
const L_Msg062_Text = "Disabling Remote Desktop..."
const L_Msg063_Text = "Remote Desktop disabled."
const L_Msg064_Text = "Are you sure you want to log off?"
const L_Msg065_Text = "Log Off"
const L_Msg066_Text = "Are you sure you want to restart?"
const L_Msg067_Text = "Are you sure you want to shut down?"
const L_Msg068_Text = "Shut Down"
const L_Msg069_Text = "Enabled (all clients)"
const L_Msg070_Text = "Enabled (more secure clients only)"
const L_Msg071_Text = "Disabled"
const L_Msg072_Text = "--------------------------------"
const L_Msg073_Text = " Network settings"
const L_Msg074_Text = "Available Network Adapters"
const L_Msg075_Text = "Index# IP address Description"
const L_Msg076_Text = "Select Network Adapter Index# (Blank=Cancel): "
const L_Msg077_Text = " Network Adapter Settings"
const L_Msg078_Text = "NIC Index"
const L_Msg079_Text = "Description"
const L_Msg080_Text = "IP Address"
const L_Msg081_Text = "DHCP enabled"
const L_Msg082_Text = "Preferred DNS Server"
const L_Msg083_Text = "Alternate DNS Server"
const L_Msg084_Text = "1) Set Network Adapter IP Address"
const L_Msg085_Text = "2) Set DNS Servers"
const L_Msg086_Text = "3) Clear DNS Server Settings"
const L_Msg087_Text = "4) Return to Main Menu"
const L_Msg088_Text = "Select option: "
const L_Msg089_Text = "Select (D)HCP, (S)tatic IP (Blank=Cancel): "
const L_Msg090_Text = "Set Static IP"
const L_Msg091_Text = "Enter static IP address: "
const L_Msg092_Text = "Enter subnet mask (Blank = Default "
const L_Msg093_Text = "): "
const L_Msg094_Text = "Enter default gateway: "
const L_Msg095_Text = "Setting NIC to static IP..."
const L_Msg096_Text = "The IP address could not be changed."
const L_Msg097_Text = "Network Settings"
const L_Msg098_Text = "Setting NIC to use DHCP..."
const L_Msg099_Text = "DNS Servers"
const L_Msg100_Text = "Enter new preferred DNS server (Blank=Cancel): "
const L_Msg101_Text = "Preferred DNS server set."
const L_Msg102_Text = "Enter alternate DNS server (Blank = none): "
const L_Msg103_Text = "Alternate DNS server set."
const L_Msg104_Text = "Alternate DNS server could not be set."
const L_Msg105_Text = "Preferred DNS server could not be set."
const L_Msg106_Text = "DNS servers removed. DNS servers will be automatically obtained from network."
const L_Msg107_Text = "DNS servers could not be deleted."
const L_Msg108_Text = "Failed to join workgroup"
const L_Msg109_Text = "Welcome to workgroup: "
const L_Msg110_Text = "Unknown"
const L_Msg111_Text = "Inspecting system..."
const L_Msg112_Text = "Please specify a valid IP address."
const L_Msg113_Text = "IP addresses with 127 are not valid because they are reserved for loopback addresses. Please specify some other valid value between 1 and 223."
const L_Msg114_Text = "Access is denied."
const L_Msg115_Text = "The parameter is incorrect."
const L_Msg116_Text = "The system cannot open the specified object."
const L_Msg117_Text = "Unable to update the password."
const L_Msg118_Text = "Logon failure: unknown username or password."
const L_Msg119_Text = "The specified domain either does not exist or could not be contacted."
const L_Msg120_Text = "The account already exists."
const L_Msg121_Text = "The machine is already joined to the domain."
const L_Msg122_Text = "The machine is not currently joined to a domain."
const L_Msg123_Text = "Failed to join domain."
const L_Msg124_Text = "Name of domain to join: "
const L_Msg125_Text = "Name of workgroup to join: "
const L_Msg126_Text = "Joining "
const L_Msg127_Text = "..."
const L_Msg128_Text = "==============================================================================="
const L_Msg129_Text = "E" '(E)nable
const L_Msg130_Text = "D" '(D)isable
const L_Msg131_Text = "S" '(S)tatic IP
const L_Msg132_Text = "D" '(D)HCP
const L_Msg133_Text = "W" '(W)orkgroup
const L_Msg134_Text = "D" '(D)omain
const L_Msg135_Text = "In a domain environment, specify domain\username."
const L_Msg136_Text = "In a workgroup environment, specify username."
const L_Msg137_Text = "M" 'Manual
const L_Msg138_Text = "A" 'Automatic
const L_Msg139_Text = "Subnet Mask"
const L_Msg140_Text = "Default Gateway"
const L_Msg141_Text = "Last manual check: "
const WUA_Script = "cscript WUA_SearchDownloadInstall.vbs"
Dim CmdResults
Dim pcname
Dim group_type
Dim groupname
Dim InDomain
Dim MgmtNIC
Dim patching_status
Dim Autopatch
Dim Update_schedule
Dim objNetAdapter
Dim DNSsetting
Dim DisplayIP
Dim objWshScriptExec
Dim TS_status
Dim ResultsTitle
Set oShell = WScript.CreateObject ("WScript.shell")
Set objWMIService = GetObject( "winmgmts:\\.\root\cimv2")
'Force to run with cscript
if Instr(1,Wscript.FullName,"Cscript",vbTextCompare)=0 then
oShell.Run "cscript " & chr(34) & wscript.ScriptFullName & chr(34)
wscript.quit
end if
GetInitialStatusValues()
Do
' Get NICs
Set nics = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration where IPenabled=TRUE")
' Try to select the first NIC with an active IP
for each n in nics
MgmtNIC= n.index
Set objNetAdapter = GetObject("winmgmts:Win32_NetworkAdapterConfiguration=" & MgmtNIC)
exit for
next
' Deal with case where NICs go away
if MgmtNIC="" then
'No active NIC
DisplayIP = L_Msg003_Text
else
Set objNetAdapter = GetObject("winmgmts:Win32_NetworkAdapterConfiguration=" & MgmtNIC)
if objNetAdapter.IPenabled then
DisplayIP = objNetAdapter.IPAddress(0)
else
'No Active NICs
DisplayIP = L_Msg003_Text
end if
end if
' Get Domain status
InDomain = GetDomainStatus()
' Get Remote Desktop status
CheckRemoteDesktop()
wscript.echo
wscript.echo L_Msg128_Text
wscript.echo L_Msg005_Text
wscript.echo L_Msg128_Text
wscript.echo
wscript.echo L_Msg006_Text & group_type &": " & groupname
wscript.echo L_Msg007_Text & pcname
if MgmtNIC="" then
wscript.echo L_Msg008_Text & vbTab & vbTab & vbTab & DisplayIP
else
wscript.echo L_Msg008_Text
end if
wscript.echo L_Msg009_Text
wscript.echo ""
wscript.echo L_Msg010_Text & Update_schedule
wscript.echo L_Msg011_Text & L_Msg141_Text & patching_status
wscript.echo L_Msg012_Text & TS_status
wscript.echo ""
wscript.echo L_Msg013_Text
wscript.echo L_Msg014_Text
wscript.echo ""
wscript.echo L_Msg015_Text
wscript.echo L_Msg016_Text
wscript.echo L_Msg017_Text
wscript.echo ""
wscript.echo L_Msg018_Text
For i=1 to 2
wscript.echo
next
wscript.StdOut.Write L_Msg019_Text
OptionSelection = Wscript.StdIn.ReadLine
wscript.echo
Select Case OptionSelection
Case "1" 'Change Domain/workgroup name
wscript.echo
wscript.echo L_Msg020_Text
do
wscript.echo
wscript.StdOut.Write L_Msg021_Text
DorW = Wscript.StdIn.ReadLine
'added ascw(DorW)=164 and ascw(DorW)=1072 to detect Russian character choice
loop until ucase(DorW)=ucase(L_Msg134_Text) or ucase(DorW)=ucase(L_Msg133_Text) or DorW="" or ascw(DorW)=164 or ascw(DorW)=1072
if ucase(DorW)=ucase(L_Msg133_Text) or ascw(DorW)=1072 then
'Join Workgroup
'If in a domain, we need to remove it first before joining a workgroup
if InDomain then
confirm = msgbox(L_Msg024_Text & vbCRLF & L_Msg025_Text,VBYesNo,L_Msg004_Text)
if confirm=vbYes then
wscript.StdOut.Write L_Msg026_Text
domainuser = Wscript.StdIn.ReadLine
wscript.echo
wscript.echo L_Msg027_Text
targetstr = "netdom remove %computername% /domain:" & NewGroupName & " /userd:" & domainuser & " /passwordd:*"
result= oShell.Run(targetstr,1,TRUE)
if result=0 then
confirm = msgbox(L_Msg028_Text & vbCRLF & L_Msg029_Text, VBYesNo,L_Msg030_Text)
if confirm=vbYes then oShell.Run "shutdown /r /t 0",1
else
DomainAccessErrorMsg(result)
end if
end if
else
JoinWorkgroup()
end if
end if
if ucase(DorW)=ucase(L_Msg134_Text) or ascw(DorW)=164 then
'Joining Domain
group_type= L_Msg022_Text
wscript.StdOut.Write L_Msg124_Text
NewGroupName = Wscript.StdIn.ReadLine
wscript.StdOut.Write L_Msg026_Text
domainuser = Wscript.StdIn.ReadLine
wscript.echo
wscript.echo L_Msg126_Text & NewGroupName & L_Msg127_Text
targetstr = "netdom join %computername% /domain:" & NewGroupName & " /userd:" & domainuser & " /passwordd:*"
result= oShell.Run(targetstr,1,TRUE)
if result=0 then
confirm = msgbox(L_Msg028_Text & vbCRLF & L_Msg029_Text, VBYesNo,L_Msg032_Text)
if confirm=vbYes then oShell.Run "shutdown /r /t 0",1
else
DomainAccessErrorMsg(result)
end if
end if
Case "2" 'Change Computer Name
wscript.StdOut.Write L_Msg033_Text
NewComputerName = Wscript.StdIn.ReadLine
if NewComputerName<>"" then
ResultsTitle= L_Msg034_Text
wscript.echo L_Msg035_Text
wscript.echo
if not InDomain then
'In workgroup
Set objWshScriptExec = oShell.Exec("netdom renamecomputer %computername% /force /NewName:" & NewComputerName)
DisplayCmdLineOutput()
result= objWshScriptExec.exitcode
else
'In Domain
wscript.StdOut.Write L_Msg026_Text
domainuser = Wscript.StdIn.ReadLine
result = oShell.Run("netdom renamecomputer %computername% /force /NewName:" & NewComputerName & " /userd:" & domainuser & " /passwordd:*",1,TRUE)
if result<>0 then
DomainAccessErrorMsg(result)
end if
end if
if result=0 then
confirm = msgbox(L_Msg028_Text & vbCRLF & L_Msg029_Text, VBYesNo,L_Msg030_Text)
if confirm=vbYes then oShell.Run "shutdown /r /t 0",1
end if
end if
Case "3" 'Change Management NIC Assignment
If MgmtNIC<>"" then
ManagementNICsettings()
else
'Display no active NIC message
DisplayIP = L_Msg003_Text
Msgbox DisplayIP,vbExclamation,L_Msg004_Text
end if
Case "4" 'Add Account to local admin
wscript.echo L_Msg135_Text
wscript.echo L_Msg136_Text
wscript.echo
wscript.StdOut.Write L_Msg036_Text
AddUserAcct = Wscript.StdIn.ReadLine
if AddUserAcct="" then
'cancel
else
if not InDomain then
'Handle workgroup case by creating account first
targetstr = "net user " & AddUserAcct & " * /add"
result= oShell.Run(targetstr,1,TRUE)
end if
wscript.echo L_Msg037_Text
targetstr= "net localgroup administrators /add " & AddUserAcct
result= oShell.Run(targetstr,7,TRUE)
select case result
Case 0
msgbox L_Msg039_Text & vbCrLf & AddUserAcct,vbInformation,L_Msg038_Text
Case 1
msgbox L_Msg040_Text & vbCrLf & AddUserAcct,vbCritical,L_Msg038_Text
Case else
msgbox L_Msg042_Text & vbCrLf & AddUserAcct,vbCritical,L_Msg038_Text
end select
end if
Case "5" 'Update Settings
wscript.echo L_Msg043_Text & Update_schedule
wscript.StdOut.Write L_Msg044_Text
updateselection = Wscript.StdIn.ReadLine
if ucase(updateselection)=ucase(L_Msg138_Text) then
'Make updates automatic
Update_schedule= L_Msg045_Text
strSchedule= L_Msg046_Text
wscript.echo
wscript.echo L_Msg047_Text
oShell.Run "Cscript %WinDir%\System32\SCregEdit.wsf /AU 4" & NewComputerName,7,TRUE
end if
if ucase(updateselection)=ucase(L_Msg137_Text) then
'Make updates manual
Update_schedule= L_Msg048_Text
strSchedule= L_Msg049_Text
wscript.echo
wscript.echo L_Msg050_Text
oShell.Run "Cscript %WinDir%\System32\SCregEdit.wsf /AU 1" & NewComputerName,7,TRUE
end if
if ucase(updateselection)=ucase(L_Msg137_Text) or ucase(updateselection)=ucase(L_Msg138_Text) then
oShell.Run "Net stop wuauserv",7,TRUE
oShell.Run "Net start wuauserv",7,TRUE
MsgBox L_Msg051_Text & Update_schedule & ". " & strSchedule, vbInformation, L_Msg052_Text
end if
Case "6" 'Install Security Patches
'Install all patches
oShell.Run WUA_Script,1,False
on error resume next
patching_status = Now()
oShell.RegWrite "HKLM\Software\Microsoft\HyperVServerQuickSettings\PatchDate",patching_status
on error goto 0
Case "7" 'Enable/disable Remote Desktop
WScript.Echo
wscript.StdOut.Write L_Msg053_Text
rd = Wscript.StdIn.ReadLine
if ucase(rd)=ucase(L_Msg129_Text) then ' Enable
do
wscript.echo
wscript.echo L_Msg054_Text
wscript.echo
wscript.echo L_Msg055_Text
wscript.echo
wscript.StdOut.Write L_Msg056_Text
rdsecuritylevel = Wscript.StdIn.ReadLine
loop while not (rdsecuritylevel="1" or rdsecuritylevel="2")
wscript.echo
wscript.echo L_Msg057_Text
'Enable Remote Desktop Admin mode
result=oShell.Run("Cscript %WinDir%\System32\Scregedit.wsf /ar 0 " & NewComputerName,7,TRUE)
oShell.Run "Cscript %WinDir%\System32\Scregedit.wsf /cs 1 " & NewComputerName,7,TRUE
if result=0 then
if rdsecuritylevel=2 then
'Allow WinXP and Win 2003 clients
oShell.Run "Cscript %WinDir%\System32\Scregedit.wsf /cs 0 " & NewComputerName,7,TRUE
msgbox L_Msg058_Text,Information,L_Msg059_Text
else
msgbox L_Msg060_Text,Information,L_Msg059_Text
end if
else
msgbox L_Msg061_Text,vbCritical,L_Msg059_Text
end if
end if
if ucase(rd)=ucase(L_Msg130_Text) then
wscript.echo
wscript.echo L_Msg062_Text
'Disable Remote Desktop mode
result=oShell.Run("Cscript %WinDir%\System32\Scregedit.wsf /ar 1 " & NewComputerName,7,TRUE)
oShell.Run "Cscript %WinDir%\System32\Scregedit.wsf /cs 1 " & NewComputerName,7,TRUE
if result=0 then
msgbox L_Msg063_Text,vbInformation,L_Msg059_Text
else
msgbox L_Msg061_Text,vbCritical,L_Msg059_Text
end if
end if
Case "8" 'Set Region and Language
oShell.Run "control intl.cpl"
Case "9" 'Set Date and Time
oShell.Run "control timedate.cpl"
Case "10" 'Logoff
confirm = msgbox(L_Msg064_Text, vbYesNo+vbDefaultButton2,L_Msg065_Text)
if confirm=vbYes then
oShell.Run "logoff",7,True
end if
Case "11" ' Restart
confirm = msgbox(L_Msg066_Text, vbYesNo+vbDefaultButton2,L_Msg030_Text)
if confirm=vbYes then oShell.Run "shutdown /r /t 0",1
Case "12" ' Shut Down
confirm = msgbox(L_Msg067_Text, vbYesNo+vbDefaultButton2,L_Msg068_Text)
if confirm=vbYes then oShell.Run "shutdown /s /t 0",1
Case "13" 'Exit
wscript.quit
Case Else
'msgbox "--- Invalid input! ---"
end Select
Loop until OptionSelection="13" 'Loops back to main menu unless exiting
wscript.quit
sub CheckRemoteDesktop()
' True if Remote Desktop enabled
Dim Sh, sKey, sValueName, sValue, nValue
Set Sh = CreateObject("WScript.Shell")
sKey = "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\"
sValueName = "fDenyTSConnections"
sValue = Sh.RegRead(SKey & sValueName)
if sValue=0 then
nValue= Sh.RegRead(sKey & "WinStations\RDP-Tcp\UserAuthentication")
if nValue = 0 then
TS_status= L_Msg069_Text
else
TS_status= L_Msg070_Text
end if
else
TS_status= L_Msg071_Text
end if
End sub
Function LegalNicSelected(pickedNIC)
LegalNicSelected=False
For Each nic in nics
if pickedNIC=CStr(nic.Index) then
LegalNicSelected=True
end if
Next
end Function
Sub ManagementNICsettings()
Set nics = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration where IPenabled=TRUE")
Set objNetAdapter = GetObject("winmgmts:Win32_NetworkAdapterConfiguration=" & MgmtNIC)
wscript.echo
wscript.echo L_Msg072_Text
wscript.echo L_Msg073_Text
wscript.echo L_Msg072_Text
wscript.echo
wscript.echo
wscript.echo L_Msg074_Text
wscript.echo
wscript.echo L_Msg075_Text
For Each nic in nics
if nic.IPenabled then
DisplayIP = nic.IPAddress(0)
else
DisplayIP=L_Msg002_Text
end if
wscript.echo
'Adjust spacing for non EN-US
if instr(L_Msg075_Text,"Index#") then
wscript.StdOut.Write " " & nic.Index & VBTab & DisplayIP & VBTab & left(nic.Description,54)
else
wscript.StdOut.Write " " & nic.Index & VBTab & VBTab & DisplayIP & VBTab & left(nic.Description,47)
end if
Next
wscript.Echo
do
wscript.Echo
wscript.StdOut.Write L_Msg076_Text
SelectedNIC = Wscript.StdIn.ReadLine
loop until LegalNicSelected(SelectedNIC) or SelectedNIC = ""
if SelectedNIC="" then
'Do nothing, Cancel was selected, return to main menu
else
'Set the MgmtNIC to a legal value
MgmtNIC=SelectedNIC
do
wscript.echo
wscript.echo L_Msg072_Text
wscript.echo L_Msg077_Text
wscript.echo L_Msg072_Text
wscript.echo
Set nics = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration where IPenabled=TRUE")
Set objNetAdapter = GetObject("winmgmts:Win32_NetworkAdapterConfiguration=" & MgmtNIC)
'Display NIC info (IP, DHCP, DNS)
For Each nic in nics
if nic.index=cint(MgmtNIC) then
if nic.IPenabled then
DisplayIP = nic.IPAddress(0)
else
DisplayIP=L_Msg002_Text
end if
wscript.echo
wscript.echo L_Msg078_Text & vbTab & vbTab & MgmtNIC
wscript.echo L_Msg079_Text & vbTab & vbTab & nic.Description
wscript.echo L_Msg080_Text & vbTab & vbTab & DisplayIP
wscript.echo L_Msg139_Text & vbTab & vbTab & nic.IPSubnet(0)
wscript.echo L_Msg081_Text & vbTab & vbTab & nic.DHCPenabled
on error resume next
DefaultGateway= cstr(nic.DefaultIPGateway(0))
if err<>0 then
DefaultGateway=""
end if
on error goto 0
wscript.echo L_Msg140_Text & vbTab & vbTab & DefaultGateway
on error resume next
primarydns= cstr(nic.DNSServerSearchOrder(0))
if err<>0 then
primarydns=""
end if
altdns= cstr(nic.DNSServerSearchOrder(1))
if err<>0 then
altdns=""
end if
on error goto 0
wscript.echo L_Msg082_Text & vbTab & primarydns
wscript.echo L_Msg083_Text & vbTab & altdns
end if
Next
'Display Network Adapter Options
wscript.echo
wscript.echo L_Msg084_Text
wscript.echo L_Msg085_Text
wscript.echo L_Msg086_Text
wscript.echo L_Msg087_Text
wscript.echo
wscript.echo
do
wscript.StdOut.Write L_Msg088_Text
NIC_option = Wscript.StdIn.ReadLine
loop until (left(NIC_option,1)>= "1" and left(NIC_option,1) <= "4") or NIC_option=""
Select Case NIC_option
Case "1" ' Set NIC IP to DCHP or Static
'---- Set IP for Selected NIC
wscript.echo
wscript.echo
wscript.StdOut.Write L_Msg089_Text
IPtypeSelection = Wscript.StdIn.ReadLine
Select Case ucase(IPtypeSelection)
Case ucase(L_Msg131_Text) 'Set Static IP
wscript.echo L_Msg090_Text
do
wscript.StdOut.Write L_Msg091_Text
ip_address = wscript.StdIn.ReadLine
loop until CheckStaticIP(ip_address)
wscript.StdOut.Write L_Msg092_Text & DefaultNetmask(ip_address) & L_Msg093_Text
netmask = wscript.StdIn.ReadLine
if netmask="" then netmask=DefaultNetmask(ip_address)
' Get Gateway
do
wscript.StdOut.Write L_Msg094_Text
gateway = wscript.StdIn.ReadLine
loop until CheckStaticIPGateway(gateway)
strIPAddress = Array(ip_address)
strSubnetMask = Array(netmask)
strGateway = Array(gateway)
strGatewayMetric = Array(1)
wscript.echo L_Msg095_Text
'clear out all gateway entries first
arrClearGateways = Array()
errGateways = objNetAdapter.SetGateways(arrClearGateways, null)
objNetAdapter.ReleaseDHCPLease
errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
If errEnable=0 Then
Set objNetAdapter = GetObject("winmgmts:Win32_NetworkAdapterConfiguration=" & MgmtNIC)
Else
msgbox L_Msg096_Text,vbCritical,L_Msg097_Text
wscript.echo L_Msg096_Text
End If
Case ucase(L_Msg132_Text) 'Set DHCP
wscript.echo
wscript.echo L_Msg098_Text
'clear out all gateway entries first
arrClearGateways = Array()
errGateways = objNetAdapter.SetGateways(arrClearGateways, null)
errEnable = objNetAdapter.EnableDHCP()
objNetAdapter.RenewDHCPLease
If errEnable = 0 Then
Set objNetAdapter = GetObject("winmgmts:Win32_NetworkAdapterConfiguration=" & MgmtNIC)
Else
msgbox L_Msg096_Text,vbCritical,L_Msg097_Text
wscript.echo L_Msg096_Text
End If
Case Else
'Cancel
end Select
Case "2" ' Change DNS
wscript.echo L_Msg099_Text
wscript.echo
wscript.StdOut.Write L_Msg100_Text
DNSServer = wscript.StdIn.ReadLine
strDNSServer=Array(DNSServer)
if DNSServer="" then
'Cancelled
else
'Set Preferred DNS
errDNS = objNetAdapter.SetDNSServerSearchOrder(strDNSServer)
If errDNS=0 Then
'Preferred DNS successfully set, set alternate
msgbox L_Msg101_Text,vbInformation,L_Msg097_Text
wscript.StdOut.Write L_Msg102_Text
altDNSServer = wscript.StdIn.ReadLine
strDNSServer=Array(DNSServer,altDNSServer)
if altDNSServer="" then
'skip entering alternate DNS
else
errDNS = objNetAdapter.SetDNSServerSearchOrder(strDNSServer)
If errDNS=0 Then
'Alternate DNS successfully set
msgbox L_Msg103_Text,vbInformation,L_Msg097_Text
wscript.echo L_Msg103_Text
else
msgbox L_Msg104_Text,vbCritical,L_Msg097_Text
wscript.echo L_Msg104_Text
end If
end if
else
msgbox L_Msg105_Text,vbCritical,L_Msg097_Text
end If
end if
Case "3" ' Remove DNS server settings
'clear out all entries and reset
arrDNSServers = Array()
errDNS = objNetAdapter.SetDNSServerSearchOrder(arrDNSServers)
If errDNS=0 Then
'DNS successfully cleared
msgbox L_Msg106_Text,vbInformation,L_Msg097_Text
wscript.echo L_Msg106_Text
else
msgbox L_Msg107_Text,vbCritical,L_Msg097_Text
wscript.echo L_Msg107_Text
end If
Case "4" ' return to Main Menu
Case else
end Select
Loop Until NIC_option="4" or NIC_option=""
end if
end sub
sub DisplayCmdLineOutput()
Set objStdOut = objWshScriptExec.StdOut
CmdResults = ""
While Not objStdOut.AtEndOfStream
strLine = objStdOut.ReadLine
wscript.echo strLine
CmdResults = CmdResults & vbCrLF & strLine
Wend
If len(CmdResults)>2 then msgbox CmdResults,vbInformation,resultstitle
end sub
sub JoinWorkgroup
group_type= L_Msg023_Text
wscript.StdOut.Write L_Msg125_Text
NewGroupName = Wscript.StdIn.ReadLine
wscript.echo
wscript.echo L_Msg126_Text & NewGroupName & L_Msg127_Text
targetstr = "Wmic computersystem where name=" & chr(34) & "%computername%" & chr(34) & " call joindomainorworkgroup name=" & chr(34) & NewGroupName & chr(34)
returncode = oShell.Run(targetstr,7,TRUE)
if returncode<>0 then
msgbox L_Msg108_Text,VBCritical,L_Msg023_Text
else
msgbox L_Msg109_Text & NewGroupName,vbInformation,L_Msg023_Text
end if
end sub
Sub GetInitialStatusValues()
wscript.echo L_Msg111_Text
on error resume next
regexists = oShell.RegRead("HKLM\SOFTWARE\Microsoft\HyperVserverQuickSettings\PatchDate")
if isEmpty(regexists) then
oShell.RegWrite "HKLM\Software\Microsoft\HyperVServerQuickSettings\PatchDate",L_Msg110_Text
end if
' Get update settings status
AutoPatch = oShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\AUOptions")
if AutoPatch=4 then
Update_schedule = L_Msg045_Text
else
Update_schedule = L_Msg048_Text
end if
patching_status = oShell.RegRead("HKLM\SOFTWARE\Microsoft\HyperVserverQuickSettings\PatchDate")
Set nics = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration where IPenabled=TRUE")
' Try to select the first NIC with an active IP
if MgmtNIC="" then
DisplayIP = L_Msg001_Text
for each n in nics
MgmtNIC= n.index
Set objNetAdapter = GetObject("winmgmts:Win32_NetworkAdapterConfiguration=" & MgmtNIC)
exit for
next
end if
if MgmtNIC="" then
'Display no active NIC message
DisplayIP = L_Msg003_Text
Msgbox DisplayIP,vbExclamation,L_Msg004_Text
end if
on error goto 0
End Sub
Function CheckStaticIP(ip)
on error resume next
IPstart = left(ip,instr(ip,".")-1)
on error goto 0
if IPstart>=1 and IPstart<224 then
CheckStaticIP=TRUE
else
msgbox L_Msg112_Text,vbCritical,L_Msg097_Text
CheckStaticIP=FALSE
end if
if IPstart=127 then
CheckStaticIP=FALSE
msgbox L_Msg113_Text,vbCritical,L_Msg097_Text
end if
end function
Function CheckStaticIPGateway(ip)
on error resume next
IPstart = left(ip,instr(ip,".")-1)
on error goto 0
if (IPstart>=1 and IPstart<224) or ip="" then
CheckStaticIPGateway=TRUE
else
msgbox L_Msg112_Text,vbCritical,L_Msg097_Text
CheckStaticIPGateway=FALSE
end if
if IPstart=127 then
CheckStaticIPGateway=FALSE
msgbox L_Msg113_Text,vbCritical,L_Msg097_Text
end if
end function
Function DefaultNetmask(ip)
DefaultNetmask=""
on error resume next
IPstart = left(ip,instr(ip,".")-1)
on error goto 0
if IPstart>=0 and IPstart <127 then
DefaultNetmask="255.0.0.0"
end if
if IPstart>127 and IPstart <224 then
DefaultNetmask="255.255.255.0"
end if
end function
Sub DomainAccessErrorMsg(result)
Select Case result
Case 5 strErrorDescription = L_Msg114_Text
Case 87 strErrorDescription = L_Msg115_Text
Case 110 strErrorDescription = L_Msg116_Text
Case 1323 strErrorDescription = L_Msg117_Text
Case 1326 strErrorDescription = L_Msg118_Text
Case 1355 strErrorDescription = L_Msg119_Text
Case 2224 strErrorDescription = L_Msg120_Text
Case 2691 strErrorDescription = L_Msg121_Text
Case 2692 strErrorDescription = L_Msg122_Text
Case else strErrorDescription = L_Msg123_Text
End Select
msgbox strErrorDescription,vbCritical,L_Msg022_Text
end sub
Function GetDomainStatus()
Set colItems = objWMIService.ExecQuery( "Select * from Win32_ComputerSystem", , 48 )
For Each objItem in colItems
pcname = objItem.Name
strComputerDomain = objItem.Domain
If objItem.PartOfDomain Then
group_type= L_Msg022_Text
groupname= strComputerDomain
GetDomainStatus=TRUE
Else
group_type= L_Msg023_Text
groupname= strComputerDomain
GetDomainStatus=FALSE
End If
Next
end Function
Tags: Microsoft+Hyper-V+Server