После того как Роли и Функции были добавлены с помощью Powershell, как они могут быть настроены?

При добавлении ролей и функций с помощью GUI, существует несколько дополнительных шагов, которые позволяют Вам реализовать некоторую дополнительную конфигурацию. Например, при установке WSUS существует несколько шагов, маркировал "Role Services" и "Content", которые позволяют Вам выбрать, какая база данных Вы хотите использовать и установить местоположение для этой базы данных. (Изображение ниже) WSUS Installation

Но скажем, я хочу установить его через powershell вместо этого. Я ввел бы следующее:

Import-Module servermanager
Install-WindowsFeature -Name UpdateServices -IncludeAllSubFeature -IncludeManagementTools

Однако это не позволяет мне указать, где я хочу поместить, база данных как GUI сделала. Есть ли какая-либо команда, которая позволяет мне далее настроить WSUS от powershell?

Спасибо.

2
задан 7 September 2015 в 13:46
2 ответа

Подобных функций довольно много. Когда я обновил наш сервер WSUS, я использовал эту команду для определения пользовательского местоположения БД:

& "$env:programfiles\update services\tools\wsusutil.exe" postinstall CONTENT_DIR=E:\WSUS\

Было много других шагов, необходимых для завершения миграции на наш новый сервер - я вызвал эту утилиту второй раз после назначения нового guid на sever.

Другой пример ... после установки пакета средств администрирования, затем с помощью DISM.exe , чтобы включить определенные инструменты, такие как пользователи и компьютеры Active Directory.

Изменить: хорошо ... это был мой сценарий для запуска нашего нового сервера WSUS. Пожалуйста, укажите, что это относится к нашей среде и, вероятно, потребуется некоторая обработка для работы вашей:

<#
Initial setup script for WSUS 6.3 (Server 2012)
Created : 12/02/2014
#>

$oldserver = "[enter DNS name of old server]"
$newserver = $env:ComputerName

$WID = "\\.\pipe\Microsoft##WID\tsql\query"
$WIDService = "MSSQL`$MICROSOFT##WID"

Function Create-Group ([String]$name, [String]$desc) {
   $objOu = [ADSI]"WinNT://$newserver"
   $objGroup = $objOU.Create("group", $name)
   $objGroup.SetInfo()
   $objGroup.Description = $desc
   $objGroup.SetInfo()
}

Function Confirm($message) {
   $caption = "Confirm"
   $yes = new-Object System.Management.Automation.Host.ChoiceDescription "&Yes","help"
   $no = new-Object System.Management.Automation.Host.ChoiceDescription "&No","help"
   $choices = [System.Management.Automation.Host.ChoiceDescription[]]($yes,$no)
   $host.ui.PromptForChoice($caption,$message,$choices,0)
}

If (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
   Write-Host "Script needs to be run as Administartor"
   Exit 0
} Else {
   If (Confirm("You are about to run the WSUS setup script. Do you want to continue?") -eq 1) {
      Exit 0
   }
}

Import-Module SQLPS

# Add the WSUS role to the server
Write-Host "Installing the WSUS Server Role - post-install configuration will be run as part of this script"
Install-WindowsFeature -Name UpdateServices -IncludeManagementTools -WhatIf
Install-WindowsFeature -Name UpdateServices -IncludeManagementTools

# Copy WSUS patches to new server
Write-Host "Copying patch repository from \\$oldserver\E$\WSUS"
Copy-Item "\\$oldserver\E$\WSUS" "\\$newserver\E$\" -Recurse

# Copy WSUS database to new server
Write-Host "Copying WSUS Database from \\$oldserver\E$\WSUS DB Backups\Backup.bak"
Copy-Item "\\$oldserver\E$\WSUS DB Backups\Backup.bak" "\\$newserver\E$\TEMP"

# Create WSUS Security groups on new server
Write-Host "Creating WSUS access groups"
Create-Group "WSUS Administrators" "WSUS Administrators can administer the Windows Server Update Services server."
Create-Group "WSUS Reporters" "WSUS Administrators who can only run reports on the Windows Server Update Services server."
# Populate groups via group policy
gpupdate /force

# Ensure the Windows Internal Database (WID) is running and set to auto startup
Write-Host "Checking Windows Internal Database"
(Get-Service -Name $WIDService -ComputerName $newserver).Start
Set-Service -Name $WIDService -ComputerName $newserver -StartupType Automatic
Start-Sleep -s 5

# Create a blank DB for new WSUS instance
Write-Host "Creating blank DB for WSUS"
$sql = New-Object Microsoft.SqlServer.Management.Smo.Server($WID)
$db = New-Object Microsoft.SqlServer.Management.Smo.Database($sql, "SUSDB")
$db.Create()
Write-Host "DB created on " $db.CreateDate
Start-Sleep -s 5

Write-Host "Restoring \\$newserver\E$\WSUS DB Backups\Backup.bak to new server"
Write-Host "Note: there WILL be one warning"
# Drop the newly created DB
Invoke-SqlCmd -InputFile ".\SUSDB_Drop.sql" -ServerInstance $WID -OutputSqlErrors $True -Verbose
Start-Sleep -s 5
# Restore the previous DB over the blank DB
Invoke-SqlCmd -InputFile ".\SUSDB_Restore.sql" -ServerInstance $WID -OutputSqlErrors $True -Verbose
Start-Sleep -s 5

# Run the WSUS postinstall command with the patch folder
Write-Host "Identifying WSUS repository as E:\WSUS"
& "$env:programfiles\update services\tools\wsusutil.exe" postinstall CONTENT_DIR=E:\WSUS\

# Give the WSUS instance a new identity (powershell)
Write-Host "Creating new ID for WSUS server"
$updateServer = Get-WsusServer -Name $newserver -Port 8530
$config = $updateServer.GetConfiguration()
$config.ServerId = [System.Guid]::NewGuid()
$config.Save()

# Re-run the postinstall with the new identity
Write-Host "Running WSUS postinstall with for ID"
& "$env:ProgramFiles\Update Services\Tools\wsusutil.exe" postinstall

# Change the WSUS service to run on port 80 (as per current server)
Write-Host "Changing default WSUS port to port 80"
& "$env:programfiles\update services\tools\wsusutil.exe" usecustomwebsite false

# Replicate SQL security using query provided by DST
Write-Host "Restoring SQL permissions"
Invoke-SqlCmd -InputFile ".\SUSDB_RoleUsers.sql" -ServerInstance $WID -OutputSqlErrors $True -Verbose
3
ответ дан 3 December 2019 в 09:34

После того, как компонент был установлен с помощью PowerShell, его можно настроить с помощью модуля PowerShell для этой функции.

Однако не все функции Windows имеют полные модули, ваша задача WSUS по перемещению местоположения базы данных WSUS является одним из таких примеров . Однако это не означает, что PowerShell нельзя использовать для выполнения задачи, только если требуются дополнительные шаги.

Microsoft имеет техническую статью здесь , в которой демонстрируется установка местоположения базы данных с помощью команды wsusutil линейная программа.

2
ответ дан 3 December 2019 в 09:34

Теги

Похожие вопросы