Description

Password hash and salt values should always be securely protected in storage. An attacker able to compromise a specific hash and salt value from a database may succeed in using other types of brute-force attacks against the compromised hash.

In the example given, the four-byte salt would require an attacker to maintain 4.3 trillion values for every given plaintext value. Assuming the victim required passwords of only 4 alphabetical characters in length with no other complexity requirements (a very weak password policy by our standards), defeating a four-byte salt would require the attacker to have a database of 2 x 10^15 precomputed hashes handy. Assuming each of these hashes only required one byte to store, this would require 2 petabytes of storage.

Script

PowerShell
cls 
 
function BaseConfig( $object )  
{ 
  Write-Host " ##########################################################" 
  Write-Host " # 0、按顺序执行1~7步操作操作;                            #" -ForegroundColor Green 
  Write-Host " # 1、网卡接口信息配置(IP、接口名称等);                #" 
  Write-Host " # 2、开启防火墙远程管理策略;                            #" 
  Write-Host " # 3、激活Windows管理说明(WMI)信号;                    #" 
  Write-Host " # 4、开启远程桌面访问;                                  #" 
  Write-Host " # 5、启用Windows Reomote Management(WinRM)远程管理功能; #" 
  Write-Host " # 6、安装Hyper-V角色;                                    #" 
  Write-Host " # 7、禁止用户账户控制;                                  #" 
  Write-Host " # 8、修改计算机名;                                      #" 
  Write-Host " # 9、激活服务器;                                        #" 
  Write-Host " # 10、将服务器加入、退出域;                             #" 
  Write-Host " # 11、修改用户密码;                                     #" 
  Write-Host " # 12、防火墙出、入站端口配置;                           #" 
  Write-Host " # ########################################################" 
 
  $Check = Read-Host "请选择您要执行的操作(输入编号即可)" 
   
  if(($Check -eq 0) -or ($Check -eq 1)) 
  { 
    Write-Host "当前接口信息如下:" 
    netsh interface ipv4 show interface    
    $IntefaceName = Read-Host "请输入需要修改的接口名称" 
    $NewIntefaceName = Read-Host "请输入新的接口名称" 
    $InterfaceAddress = Read-Host "请输入服务器需配置的IP地址" 
    $InterfaceMask = Read-Host "请输入服务器需配置的子网掩码" 
    $InterfaceGateWay = Read-Host "请输入服务器需配置的网关" 
    $InterfaceDNS = Read-Host "请输入服务器需配置的DNS地址" 
     
    netsh interface ipv4 set address name=$IntefaceName source=static address=$InterfaceAddress mask=$InterfaceMask gateway=$InterfaceGateWay 
    netsh interface ipv4 set dns name=$IntefaceName source=static address=$InterfaceDNS register=primary 
     netsh interface set interface name=$IntefaceName newname=$NewIntefaceName 
     
    Write-Host "网卡接口信息配置成功!" -ForegroundColor Green 
  } 
 
  if(($Check -eq 0) -or ($Check -eq 2)) 
  { 
    netsh advfirewall set currentprofile settings remotemanagement enable 
    netsh advfirewall set allprofiles state off 
     
    Write-Host "成功开启防火墙远程管理策略!" -ForegroundColor Green 
  } 
 
  if(($Check -eq 0) -or ($Check -eq 3)) 
  { 
    netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=yes 
     
    Write-Host "成功激活Windows管理说明(WMI)信号!" -ForegroundColor Green 
  } 
 
  if(($Check -eq 0) -or ($Check -eq 4)) 
  { 
    cscript C:\windows\system32\scregedit.wsf /ar 0   #查看配置结果:cscript C:\windows\system32\scregedit.wsf /ar /v 
     
    Write-Host "成功开启远程桌面访问!" -ForegroundColor Green 
  } 
   
  if(($Check -eq 0) -or ($Check -eq 5)) 
  { 
   Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 
   Configure-SMRemoting.ps1 -force -enable 
   winrm quickconfig    #远程配置命令如:Winrs -remote:server03 ipconfig/all 
     
   Write-Host "成功启用Windows Reomote Management(WinRM)远程管理功能!" -ForegroundColor Green 
  } 
   
  if(($Check -eq 0) -or ($Check -eq 6)) 
  { 
   ocsetup Microsoft-Hyper-V 
        
   Write-Host "成功安装Hyper-V组件!需重启服务器。" -ForegroundColor Green 
  } 
   
  if(($Check -eq 0) -or ($Check -eq 7)) 
  { 
   reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f 
       
   Write-Host "成功禁止用户账户控制!重启后生效。" -ForegroundColor Green    
  } 
   
  if($Check -eq 8) 
  { 
   $NewComName = Read-Host "请输入新计算机名" 
   $ComName = hostname 
   netdom renamecomputer $ComName /NewName:$NewComName /FORCE /REBoot:5  
    
        
   Write-Host "修改计算机名成功!重启后生效。" -ForegroundColor Green 
  } 
 
  if($Check -eq 9) 
  { 
   $MyKey = Read-Host "请输入激活码,中间需用-隔开,如:*****-*****-*****-*****-*****" 
   slmgr -ipk $MyKey 
   cscript c:\windows\system32\slmgr.vbs -ato 
   cscript c:\windows\system32\slmgr.vbs -xpr 
    
   Write-Host "激活服务器成功!" -ForegroundColor Green 
  } 
   
  if($Check -eq 10) 
  { 
   $SetADType = Read-Host "请选择加入还是退出域(O退域、I加域)" 
   $Domainname = Read-Host "请输入域名" 
   $Domainuser = Read-Host "请输入域用户名称" 
   $Domainpsw = Read-Host "请输入域用户密码" 
   $ComName = hostname 
   if($SetADType -eq "i") 
   { 
    netdom join $ComName /Domain:$Domainname /userD:$Domainuser /PasswordD:$Domainpsw /REBoot:5     
    Write-Host "成功加入到 $Domainname 域中!重启后生效。" -ForegroundColor Green 
   } 
   else 
   { 
    netdom remove $ComName /Domain:$Domainname /userD:$Domainuser /PasswordD:$Domainpsw /REBoot:5 
    Write-Host "成功退出 $Domainname 域!重启后生效。" -ForegroundColor Green 
   } 
  } 
 
  if($Check -eq 11) 
  { 
   $UserName = Read-Host "请输入需要修改密码的用户名称" 
   $UserPassword = Read-Host "请输入用户密码" 
   Net user $UserName $UserPassword 
       
   Write-Host "成功修改用户$UserName的密码!" -ForegroundColor Green    
  } 
   
  if($Check -eq 12) 
  { 
    $SetType = Read-Host "请选择出、入站类型(O出站、I入站)" 
    if($SetType -eq "o") 
    { 
     $AddType = "out" 
    } 
    if($SetType -eq "i") 
    { 
     $AddType = "in" 
    } 
    $PortListadd = $false 
    $PortList = New-Object System.Collections.ArrayList  #定义PSList数组 
 
    While ($PortListadd -eq $false) 
    { 
     if($Portname -eq "N") 
     { 
       $PortListadd = $true 
     } 
     else 
     {      
      $Portname = Read-Host "请输入需要开放的出站TCP端口(按N键结束输入)" 
      if($Portname -ne "N") 
      { 
       $PortList.Add("$Portname") 
      } 
     } 
    }     
    foreach($PortN in $PortList) 
    { 
     netsh advfirewall firewall add rule name="Allow_$AddType_$PortN" protocol=TCP dir=$AddType localport=$PortN action=allow 
    } 
     
    Write-Host "添加出入站规则成功!" -ForegroundColor Green 
  }   
} 
 
function NlbConfig( $object ) 
{ 
 Write-Host " ##########################################################" 
 Write-Host " # 0、按顺序执行所有操作;                                 #" -ForegroundColor Green 
 Write-Host " # 1、创建Windows2008R2 Server Core NLB网络负载均衡;     #" 
 Write-Host " # 2、向现有NLB群集中添加节点;                           #" 
 Write-Host " # 3、管理NLB端口规则;                                   #" 
 Write-Host " # 4、管理群集节点;                                      #" 
 Write-Host " # ########################################################" 
  
 ocsetup NetworkLoadBalancingHeadlessServer #安装NLB系统角色   
 Start-Sleep 5 
  
 Import-Module NetworkLoadBalancingClusters #加载PowerShell For NLB管理单元 
  
 $Check = Read-Host "请选择您要执行的操作(输入编号即可)" 
  
 if(($Check -eq 0) -or ($Check -eq 1)) 
 { 
  netsh interface ipv4 show interface #显示服务器网卡接口配置信息 
   
  $InterName = Read-Host "请输入NLB服务器网卡接口名称" 
  $ClusterNa = Read-Host "请输入NLB群集名称" 
  $ClusterIP = Read-Host "请输入NLB主群集IP" 
  $ClusterMask = Read-Host "请输入NLB主群集子网掩码" 
  $ClusterChoose = Read-Host "请选择NLB模式(A 单播、B IGMP多播、C 组播)" 
   
  if($ClusterChoose -eq "b") 
  { 
   $ClusterMode = "igmpmulticast" 
  } 
  elseif($ClusterChoose -eq "c") 
  { 
   $ClusterMode = "multicast" 
  } 
  else 
  { 
   $ClusterMode = "unicast" 
  } 
  
  New-NlbCluster -InterfaceName $InterName -ClusterName $ClusterNa -ClusterPrimaryIP $ClusterIP -SubnetMask $ClusterMask -OperationMode $ClusterMode 
  Write-Host "群集名为 $ClusterNa 的NLB群集创建成功!" -ForegroundColor Green 
} 
  
 if(($Check -eq 0) -or ($Check -eq 2)) 
 { 
  if($ClusterNa -eq $null) 
  { 
   $ClusterNa = Read-Host "请输入NLB群集名称" 
  } 
  if($InterName -eq $null) 
  { 
   netsh interface ipv4 show interface 
   $InterName = Read-Host "请输入绑定了NLB接口名称" 
  } 
  $NodeHostName = Read-Host "请输入新节点服务器名称" 
  Winrs -remote:$NodeHostName netsh interface ipv4 show interface   #显示服务器网卡接口配置信息 
  $NodeInterName = Read-Host "请输入新节点服务器网卡接口名称" 
   
  Add-NlbClusterNode -InterfaceName $InterName -NewNodeName $NodeHostName -NewNodeInterface $NodeInterName   
 
  Write-Host "节点服务器 $NodeHostName 成功加入群集 $ClusterNa!" -ForegroundColor Green 
} 
 
 if(($Check -eq 0) -or ($Check -eq 3)) 
 { 
  $OperationPort = Read-Host "请选择对端口的操作方式(ADD 添加、SET 设置、DEL 移除)" 
  if(($OperationPort -eq "set"-or ($OperationPort -eq "del")) 
  { 
   $NewLPort = Read-Host "请输入要设置/删除的端口规则中指定一个端口号" 
  } 
  if(($OperationPort -eq "set"-or ($OperationPort -eq "add")) 
  { 
   if($OperationPort -eq "add") 
   { 
    $NewEInterface = Read-Host "请输入绑定服务器网卡接口名称" 
   } 
  $NewSPort = Read-Host "请输入起始端口" 
  $NewEPort = Read-Host "请输入结束端口"   
  $NewSType = Read-Host "请为群集端口规则指定新协议(TCP、UDP、Both)" 
  } 
   
  if($OperationPort -eq "set") 
  { 
   Get-NlbClusterPortRule -Port $NewLPort | Set-NlbClusterPortRule -NewStartPort $NewSPort -NewEndPort $NewEPort -NewProtocol $NewSType 
  } 
  elseif($OperationPort -eq "add") 
  { 
   add-NlbClusterPortRule -InterfaceName $NewEInterface -StartPort $NewSPort -EndPort $NewEPort -Protocol $NewSType 
  } 
  else 
  { 
   Get-NlbClusterPortRule -Port $NewLPort | Remove-NlbClusterPortRule 
  } 
 } 
  
 if(($Check -eq 0) -or ($Check -eq 4)) 
 { 
  Get-NlbClusterNode | fl * 
   
  $ClusterNodeOperation = Read-Host "请选择对NLB节点的操作(SET 修改、DEL 删除)"    
  $ClusterNode = Read-Host "指定要设置的群集节点" 
  if($ClusterNodeOperation -eq "set") 
  { 
   $InterName = Read-Host "请输入绑定了NLB接口名称" 
   $NodeState = Read-Host "请输入需要设置的NLB节点状态(started 启动、stopped 停止、suspended 暂停)" 
   $NodePriority = Read-Host "设置NLB节点主机优先级(1~32)" 
   Set-NlbClusterNode $ClusterNode -InterfaceName $InterName -InitialHostState $NodeState -HostPriority $NodePriority 
  } 
  else 
  { 
   Remove-NlbClusterNode -Hostname $ClusterNode -force 
  } 
 } 
} 
 
function ISICConfig( $object ) 
{ 
  Write-Host " ##########################################################" 
  Write-Host " # 0、按顺序执行所有操作;                                 #" -ForegroundColor Green 
  Write-Host " # 1、启动服务器ISCS服务,并设置为自动;                  #" 
  Write-Host " # 2、管理ISCS设备;                                      #" 
  Write-Host " # 3、磁盘加载(创建基本磁盘并设置为主分区);              #" 
  Write-Host " # ########################################################" 
   
  $Check = Read-Host "请选择您要执行的操作(输入编号即可)" 
   
  if(($Check -eq 0) -or ($Check -eq 1)) 
  { 
   Set-service msiscsi -StartupType Automatic -status Running 
  } 
   
  if(($Check -eq 0) -or ($Check -eq 2)) 
  { 
   $iscsOperation = Read-Host "请选择对ISCS设备的操作方式(ADD 添加、DEL 移除)"    
   if($iscsOperation -eq "add") 
   { 
    $iscsIP = Read-Host "请输入ISCS设备IP地址" 
    iscsicli qaddtargetportal $iscsIP 
    iSCSIcli ListTargets 
    $TargetIQN = Read-Host "请输入需连接设备的IQN地址" 
    iSCSIcli QloginTarget $TargetIQN 
    iSCSIcli PersistentLoginTarget $TargetIQN T * * * * * * * * * * * * * * * 0 
   } 
   else 
   {     
    #iscsicli ListPersistentTargets 
    #iscsicli RemovePersistentTarget $iscsIP $iscsPort 
         
    iscsicli ListTargetPortals 
    $iscsIP = Read-Host "请输入ISCS设备地址和套接字" 
    $iscsPort = Read-Host "请输入ISCS设备端口号" 
    iscsicli RemoveTargetPortal $iscsIP $iscsPort 
   } 
  } 
   
  if(($Check -eq 0) -or ($Check -eq 3)) 
  { 
   "List disk" | diskpart #列举当前所有逻辑磁盘   
    
   $SelectDisk = Read-Host "请选择需要进行加载的逻辑磁盘" 
   "Select Disk $SelectDisk `r ATTRIBUTES DISK CLEAR READONLY `r Online Disk `r CONVERT BASIC `r CREATE PARTITION PRIMARY" | diskpart 
    
   "List VOLUME" | diskpart #列举当前所有逻辑卷 
    
   $SelectVolume = Read-Host "请选择需要进行加载的逻辑卷" 
   $DiskLable = Read-Host "请输入磁盘卷名" 
   $SelectASSIGN = Read-Host "请为逻辑卷分配一个驱动器号" 
    
   "SELECT VOLUME $SelectVolume `r FORMAT FS=NTFS LABEL=$DiskLable QUICK `r ASSIGN LETTER=$SelectASSIGN" | diskpart 
  } 
} 
 
function ClusterConfig( $object ) 
{ 
  Write-Host " ##########################################################" 
  Write-Host " # 0、按顺序执行所有操作;                                 #" -ForegroundColor Green 
  Write-Host " # 1、创建Windows2008R2 Server Core Failover Cluster;    #" 
  Write-Host " # 2、群集节点管理;                                      #" 
  Write-Host " # 3、添加群集磁盘;                                      #" 
  Write-Host " # 4、群集资源组管理;                                    #" 
  Write-Host " # 5、群集仲裁磁盘管理;                                  #" 
  Write-Host " # 6、群集管理;                                          #" 
  Write-Host " # ########################################################" 
    
 # ocsetup FailoverCluster-Core #安装Windows2008 R2 Server Core群集角色 
 # Start-Sleep 5 
   
  Import-Module FailoverClusters #加载群集角色管ocsetup 理单元   
  $Check = Read-Host "请选择您要执行的操作(输入编号即可)" 
   
  if(($Check -eq 0) -or ($Check -eq 1)) 
  {  
    $ClusterNode = hostname 
    Test-Cluster -node "$ClusterNode" #验证配置     
     
    $ClusterName = Read-Host "请输入群集名称" 
    $ClusterIP = Read-Host "请输入群集IP" 
     
    New-Cluster -Name $ClusterName -StaticAddress "$ClusterIP" -NoStorage 
     
     
    #参数说明。使用 Test-Cluster 运行验证测试。这将确认您的硬件和设置是否与故障转移群集兼容。共有四种类型的测试:库存、系统配置、网络和存储。 
 
    #-IgnoreNetwork <StringCollection> 
    # 指定操作过程中将忽略的网络。始终包括启用 DHCP 的网络。对于其他网络,需要使用 -StaticAddress 参数指定静态地址,或者应使用此 -IgnoreNetwork 参数显式忽略。 
 
    #-Name <string> 
    # 指定要创建的群集的名称。 
  
    #-Node <StringCollection> 
    # 指定要在其中创建群集的群集节点名称的逗号分隔列表。如果不指定此参数,将在本地主机上创建一个节点群集。 
 
    #-NoStorage [<SwitchParameter>] 
    # 使群集创建过程忽略共享存储。在操作结束时创建的群集将不具有共享存储。稍后可以使用“Get-ClusterAvailableDisk | Add-ClusterDisk”命令来添加共享存储。 
 
    #-StaticAddress <StringCollection> 
    # 指定要在操作过程中使用的静态地址。始终包括启用 DHCP 的网络。对于其他网络,需要使用 -StaticAddress 参数指定静态地址,或者应使用此 -IgnoreNetwork 参数显式忽略。 
 
    #New-Cluster -Name cluster1 -Node node1,node2,node3,node4 
    #此命令创建一个名为 cluster1 的四节点群集,该群集使用默认 IP 地址设置。 
 
    #New-Cluster -Name cluster1 -Node node1,node2 -NoStorage 
    #此命令创建一个名为 cluster1 的两节点群集。该群集不具有任何群集存储(磁盘资源)。以后可以结合 Add-ClusterDisk 使用 Get-ClusterAvailableDisk 来添加存储。 
 
    #New-Cluster -Name cluster1 -Node node1,node2,node3,node4 -StaticAddress 2.0.0.123 
    #此命令创建一个名为 cluster1 的四节点群集,该群集使用静态 IP 地址 2.0.0.123。 
 
    #New-Cluster -Name cluster1 -Node node1,node2,node3,node4 -StaticAddress 2.0.0.123,3.0.0.123 
    #此命令使用静态 IP 地址 2.0.0.123 3.0.0.123 创建一个名为 cluster1 的四节点群集。 
 
    #New-Cluster -Name cluster1 -Node node1,node2,node3,node4 -IgnoreNetwork 2.0.0.0/8 
    #此命令创建一个名为 cluster1 的四节点群集。该群集使用默认 IP 地址设置,并且不使用网络 2.0.0.0/8。 
    
    #New-Cluster -Name cluster1 -Node node1,node2,node3,node4 -StaticAddress 2.0.0.123 -IgnoreNetwork 3.0.0.0/8 
    #此命令创建一个名为 cluster1 的四节点群集。该群集使用静态 IP 地址 2.0.0.123,并且不使用网络 3.0.0.0/8。 
  } 
   
  if(($Check -eq 0) -or ($Check -eq 2)) 
  { 
    $ClusterNodeOperation = Read-Host "请选择对群集节点的操作方式(ADD 添加节点、DEL 移除节点、STOP 停止节点、START 停止节点、TEST 测试节点、Suspend暂停节点)" 
    $ClusterName = Read-Host "请输入群集名称" 
    $ClusterNode = Read-Host "请输入节点服务器名称" 
     
    if($ClusterNodeOperation -eq "add") 
    { 
     Get-Cluster "$ClusterName" | Add-ClusterNode "$ClusterNode" 
    } 
    elseif($ClusterNodeOperation -eq "del") 
    { 
     Get-Cluster "$ClusterName" | Remove-ClusterNode "$ClusterNode" -force 
    } 
    elseif($ClusterNodeOperation -eq "stop") 
    { 
     Stop-ClusterNode "$ClusterNode" -Cluster "$ClusterName" 
    } 
    elseif($ClusterNodeOperation -eq "start") 
    { 
     Start-ClusterNode "$ClusterNode" -Cluster "$ClusterName" 
    } 
    elseif($ClusterNodeOperation -eq "Suspend") 
    { 
     Suspend-ClusterNode "$ClusterNode" -Cluster "$ClusterName" 
    } 
    else 
    { 
     Test-Cluster -node "$ClusterNode" #验证配置 
    } 
  } 
   
  if(($Check -eq 0) -or ($Check -eq 3)) 
  { 
  #添加群集磁盘 
   Get-ClusterAvailableDisk | Add-ClusterDisk 
  } 
   
  if(($Check -eq 0) -or ($Check -eq 4)) 
  { 
   $ClusterOperation = Read-Host "请选择对资源组的操作方式(ADD 添加、START 启动、STOP 停止、DEL 移除、MOVE 移动)" 
   $ClusterGroup = Read-Host "请输入群集资源组名称" 
   Add-ClusterGroup "$ClusterGroup" 
    
   Start-ClusterGroup 
    
   Stop-ClusterGroup 
    
   Remove-ClusterGroup 
   Move-ClusterGroup 
    
   Get-ClusterGroup 
  } 
   
  if(($Check -eq 0) -or ($Check -eq 5)) 
  {  
   #仲裁磁盘配置 
   Set-ClusterQuorum -NodeAndDiskMajority 
 
   #Set-ClusterQuorum参数说明.故障转移群集中的仲裁配置确定群集可以承受的故障的数目。如果再发生故障,则群集必须停止运行。此上下文中的相关故障是指节点的故障,或者在某些情况下,是指磁盘见证(包含群集配置的副本)或文件共享见证的故障。 
   #-Cluster <string> 
   # 指定对其运行此 cmdlet 的群集的名称。如果键入“-Cluster .”或者省略该参数,则此 cmdlet 针对本地群集运行。 
 
   #-DiskOnly <string> 
   # 导致将群集仲裁设置为仅磁盘类型。这样会创建群集的单一故障点,因此不建议这么做。 
 
   #-InputObject <psobject> 
   # 指定要更改其仲裁类型的群集。 
 
   #-NodeAndDiskMajority <string> 
   # 导致将群集仲裁设置为多数节点和磁盘类型。此参数中应包含要用作磁盘见证的磁盘资源的名称。 
 
   #-NodeAndFileShareMajority <string> 
   # 导致将群集仲裁设置为多数节点和文件共享类型。此参数中应包含要用作文件共享见证的文件共享的路径。 
 
   #-NodeMajority [<SwitchParameter>] 
   # 导致将群集仲裁设置为多数节点类型。 
 
   #C:\PS>Set-ClusterQuorum -NodeMajority 
   #此命令将本地群集上的仲裁配置更改为“多数节点”。 
 
   #C:\PS>Set-ClusterQuorum -NodeAndDiskMajority "Cluster Disk 7" 
   #此命令使用“Cluster Disk 7”作为磁盘见证,将本地群集上的仲裁配置更改为“多数节点和磁盘”。 
 
   #C:\PS>Set-ClusterQuorum -NodeAndFileShareMajority \\fileserver\fsw 
   #此命令使用“\\fileserver\fsw”作为文件共享见证,将本地群集上的仲裁配置更改为“多数节点和文件共享”。 
  } 
   
  if(($Check -eq 0) -or ($Check -eq 6)) 
  { 
    $ClusterNodeOperation = Read-Host "请选择对群集节点的操作方式(START 停止群集、STOP 停止群集、DEL 移除群集)" 
    $ClusterName = Read-Host "请输入需要管理的群集名称" 
         
    if($ClusterNodeOperation -eq "stop") 
    { 
     Stop-Cluster "$ClusterName" 
    } 
    elseif($ClusterNodeOperation -eq "del") 
    { 
     Get-Cluster "$ClusterName" | Remove-Cluster -Force -CleanupAD 
    } 
    else 
    { 
     Start-Cluster 
    } 
  } 
} 
 
while($IsContinue -ne "n") 
{   
  Write-Host " ##########################################################" 
  Write-Host " # 1、Windows 2008 R2 Server/Core 基本配置;              #" 
  Write-Host " # 2、Windows 2008 R2 Server/Core NLB创建;               #" 
  Write-Host " # 3、ISCS设备管理;                                      #" 
  Write-Host " # 4、Windows 2008 R2 Server/Core 高可用群集创建;        #" 
  Write-Host " # ########################################################" 
   
  $RunPS1 = get-executionpolicy 
  if($RunPS1 -le "RemoteSigned") 
  { 
   set-executionpolicy remotesigned 
   Configure-SMRemoting.ps1 -force -enable 
   Cscript c:\Windows\System32\scregedit.wsf /im 1 
  } 
 
  if(($IsContinue -le 3) -or ($IsContinue -eq "y")) 
  { 
   $IsContinue = Read-Host "请选择您要执行的操作(输入编号即可)" 
  } 
   
  if(($IsContinue -eq 1) -or ($IsContinue -eq "a")) 
  { 
   cls 
   BaseConfig( $IsContinue ) 
   $IsContinue = Read-Host "恭喜您,执行成功!(A 继续操作,Y 键返回首页,N 键退出)" 
   cls 
  } 
  elseif(($IsContinue -eq 2) -or ($IsContinue -eq "b")) 
  { 
   cls 
   NlbConfig( $IsContinue ) 
   $IsContinue = Read-Host "恭喜您,执行成功!(B 继续操作,Y 键返回首页,N 键退出)" 
   cls 
  } 
  elseif(($IsContinue -eq 3) -or ($IsContinue -eq "c")) 
  { 
   cls 
   ISICConfig( $IsContinue ) 
   $IsContinue = Read-Host "恭喜您,执行成功!(C 继续操作,Y 键返回首页,N 键退出)" 
   cls 
  } 
  elseif(($IsContinue -eq 4) -or ($IsContinue -eq "d")) 
  { 
   cls 
   ClusterConfig( $IsContinue ) 
   $IsContinue = Read-Host "恭喜您,执行成功!(C 继续操作,Y 键返回首页,N 键退出)" 
   cls 
  } 
  else 
  { 
   Exit 
  } 
}