WSUS 구성 완료 후 추가 작업이 필요합니다.

보고서를 선택할 경우 추가 패키지를 설치해야 한다고 표시를 해줍니다.

아래의 화면처럼 보고서 클릭 후 아무 매뉴를 누르면 확인할 수 있습니다.

 

위의 화면을 업애기 위해서는 아래의 2가지를 설치해야 합니다.

  1. Microsoft SQL Server 2012 System CLR Types

  2. Microsoft Report Viewer 2012 Runtime

 

  2번을 먼저 설치할 경우 1번 설치가 선행되어야 한다는 메시지가 발생합니다.

 

[설치]

  1. Microsoft SQL Server 2012 System CLR Types

 

Download Microsoft® SQL Server® 2012 Feature Pack from Official Microsoft Download Center

Important! Selecting a language below will dynamically change the complete page content to that language. DeutschEnglishEspañolFrançaisItalianoPortuguês (Brasil)Русский한국어中文(简体)中文(繁體)日本語 Download The Microsoft® SQ

www.microsoft.com

해당 사이트에 접속 후 "설치 지침"을 클릭하여 글을 펼친 후 "CLR"을 검색하시면 아래의 화면을 보실 수 있습니다.

버전에 맞게 다운로드하여 설치하시면 됩니다.

  - 영문

  - 한글

 

  - 설치 화면

 

 

[설치]

  2. Microsoft Report Viewer 2012 Runtime

화면의 "다운로드"로 바로 다운로드 받으시면 됩니다.

해당 URL 정보는 아래의 팝업 화면에서 URL을 클릭하면 바로 연결됩니다.

 

  - 설치화면

 

[설치 완료 확인]

  -  WSUS 콘솔 → Update Services → Server → 보고서 → "업데이트 상태 요약" 클릭 시 매뉴 확인 가능

 

윈도우즈 업데이트 서비스를 설치 한 이후에는 구성이 필요합니다.

WSUS 서버 구성 방법 입니다.

 

WSUS 서버 구성 마법사 실행하기

  - WSUS 콘솔 → Update Services → Server → 옵션 → WSUS 서버 구성 마법사 클릭

 

다음 클릭

 

다음 클릭

 

별도의 윈도우 서버와 동기화 하는 것이 아니라면 첫번째 항목 선택 후 다음 클릭

 

프록시 서버 사용하지 않을 경우 다음 클릭

 

업데이트 서버와 연결하기

  - 연결 시작 클릭 후 완료 될때까지 기다림

  - 연결 완료 후 다음 클릭

 

다운로드할 업데이트의 언어 선택 후 다음 클릭

 

업데이트할 제품 선택 후 다음 클릭

  - 저는 Windows Server만 선택 진행 함

 

동기화할 업데이트 등급 지정

 

동기화할 일정 구성 후 다음 클릭

 

"초기 동기화 시작" 체크 후 다음 클릭

 

마침 클릭

 

진행 상황 파악

  - WSUS 콘솔 → Update Services → Server → 동기화 → 오른쪽 상단 맨 윗 줄에 대한 상태가 하단에 표시 됨

  - 동기화 완료 (상당 시간 걸립니다)

윈도우즈 서버들의 업데이트를 위해 PMS 서버를 만들어 보겠습니다.

윈도우즈에서는 용어가 WSUS 이네요. (Windows Server Update Services)

 

 

윈도우즈 서버에서 "역할 및 기능 추가" 실행 후 서버 역할부터 표시하였습니다.

[서버 설치]

Windows Server Update Services 클릭

 

기능 추가 클릭

 

다음 클릭

 

원하는 Framework (3.5, 4.7) 체크 후 다음 클릭

 

다음 클릭

 

 

WID Connectivity, WSUS Services 체크 후 다음 클릭

 

Windows Update 데이터를 저장할 위치를 입력 후 다음 클릭

 

다음 선택

 

기본 선택된 항목 검토 후 다음 클릭

 

설치 클릭

 

설치가 완료된 후 "사후 설치 작업 시작" 클릭

 

설치 완료 후 닫기 클릭

 

이후 서버 재시작

※ 서버 재시작 후 smartscreen.exe 오류 발생 시, 다시 한번 서버 재시작 진행

파워쉘 스크립트 예시입니다.

참고하시어 활용하시기 바랍니다.

 

 

[패스워드 코드 확인]

PS C:\> Read-Host "Password" -AsSecureString | ConvertFrom-SecureString | echo
Password: ************ #원격서버에서 접속할 계정의 패스워드를 입력
01000000d08c9ddaskjdhfkjahsdfjkhasdf01aksjdhfkjashd15d1118c7a00c04fc297eb01873019838200000007597a01219e314caa7074520be2be960000000002000021341200000003660000c000000010000000667e877561376fa203f4cae82a2cde2d0000000004800000a000000010000000df2dbb0bf5f409f5aa6905013e4298b120000000eb98d9ad8866171734e8329893288e26f4c5cad773e8b3cbd542a3b5e405ee5e14000000d14c3da80b6eabdd12998ac1ac2b421436f1185c

#위의 보이는 코드 값을 앞의 스크립트인 $MyPassword에 붙여넣기 하시면 됩니다.

 

 

[서버 1대 일때]

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.0.1" -Force

$MyPassword = "01000000d08c9ddaskjdhfkjahsdfjkhasdf01aksjdhfkjashd15d1118c7a00c04fc297eb01873019838200000007597a01219e314caa7074520be2be960000000002000021341200000003660000c000000010000000667e877561376fa203f4cae82a2cde2d0000000004800000a000000010000000df2dbb0bf5f409f5aa6905013e4298b120000000eb98d9ad8866171734e8329893288e26f4c5cad773e8b3cbd542a3b5e405ee5e14000000d14c3da80b6eabdd12998ac1ac2b421436f1185c"

$MyPassword = $MyPassword | ConvertTo-SecureString

$ObjectTypeName = "System.Management.Automation.PSCredential"

$MyCredential = New-Object -TypeName $ObjectTypeName -ArgumentList "administrator",$MyPassword

Invoke-Command -ComputerName "192.168.0.1" -Credential $MyCredential -Command { Get-PSDrive }

 

 

[서버 여러대 일때]

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.0.1,192.168.0.2" -Force

$MyPassword1 = "01000000d08c9ddaskjdhfkjahsdfjkhasdf01aksjdhfkjashd15d1118c7a00c04fc297eb01873019838200000007597a01219e314caa7074520be2be960000000002000021341200000003660000c000000010000000667e877561376fa203f4cae82a2cde2d0000000004800000a000000010000000df2dbb0bf5f409f5aa6905013e4298b120000000eb98d9ad8866171734e8329893288e26f4c5cad773e8b3cbd542a3b5e405ee5e14000000d14c3da80b6eabdd12998ac1ac2b421436f1185c"
$MyPassword2 = "01000000d08c9ddaskjdhfkjahsdfjkhasdf01aksjdhfkjashd15d1118c7a00c04fc297eb0100000007597a01219e314caa7074520be2be960000000002013241230000000012341230036600331300c000000010000000667e877561376fa203f4cae82a2cde2d0000000004800000a000000010000000df2dbb0bf5f409f5aa6905013e4298b120000000eb98d9ad8866171734e8329893288e26f4c5cad773e8b3cbd542a3b5e405ee5e14000000d14c3da80b6eabdd12998ac1ac2b421436f1185c"

$MyPassword1 = $MyPassword1 | ConvertTo-SecureString
$MyPassword2 = $MyPassword2 | ConvertTo-SecureString

$ObjectTypeName = "System.Management.Automation.PSCredential"

$MyCredential1 = New-Object -TypeName $ObjectTypeName -ArgumentList "administrator",$MyPassword1
$MyCredential2 = New-Object -TypeName $ObjectTypeName -ArgumentList "admin",$MyPassword2

Invoke-Command -ComputerName "192.168.0.1" -Credential $MyCredential1 -Command { Get-PSDrive }
Invoke-Command -ComputerName "192.168.0.2" -Credential $MyCredential2 -Command { Get-PSDrive }

파워쉘 스크립트를 실행하는 정책이 있습니다.

기본적으로는 "Restricted"로 설정이 되어 있습니다.

아래의 설정에 맞게 정책을 변경하여 사용하시기 바랍니다.

 

  • Restricted. 구성 파일을 로드하거나 스크립트를 실행하지 않습니다. Windows 클라이언트 컴퓨터에 대한 기본 실행 정책입니다.
  • AllSigned. 로컬 컴퓨터에 작성된 스크립트를 포함하여 신뢰할 수 있는 게시자가 모든 스크립트 및 구성 파일에 서명해야 합니다.
  • RemoteSigned. 인터넷에서 다운로드한 모든 스크립트 및 구성 파일이 신뢰할 수 있는 게시자에 의해 서명되어야 합니다. Windows 서버 컴퓨터에 대한 기본 실행 정책입니다.

 

PS C:\> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine       Restricted
  

PS C:\> .\192.168.000.000_psdrive.ps1
.\192.168.000.000_rebooting.ps1 : File C:\Users\aaaaaaaa\Desktop\192.168.000.000_psdrive.ps1 cannot be loaded. The
 file C:\Users\aaaaaaaa\Desktop\192.168.000.000_psdrive.ps1 is not digitally signed. You cannot run this script on
 the current system. For more information about running scripts and setting execution policy, see about_Execution_Polic
ies at https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\192.168.000.000_rebooting.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess


PS C:\> Set-ExecutionPolicy AllSigned
PS C:\> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine       AllSigned
 

PS C:\> .\192.168.000.000_psdrive.ps1
.\192.168.000.000_rebooting.ps1 : File C:\Users\aaaaaaaa\Desktop\192.168.000.000_psdrive.ps1 cannot be loaded. The
 file C:\Users\aaaaaaaa\Desktop\192.168.000.000_psdrive.ps1 is not digitally signed. You cannot run this script on
 the current system. For more information about running scripts and setting execution policy, see about_Execution_Polic
ies at https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\192.168.000.000_rebooting.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess


PS C:\> Set-ExecutionPolicy RemoteSigned
PS C:\> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    RemoteSigned


PS C:\> .\192.168.000.000_psdrive.ps1

Name           Used (GB)     Free (GB) Provider      Root                    CurrentLocation PSComputerName
----           ---------     --------- --------      ----                    --------------- --------------
Alias                                                                                        192.168.000...
C                  19.79        445.37               C:\                     ...sm\Documents 192.168.000...
Cert                                                 \                                       192.168.000...
Env                                                                                          192.168.000...
Function                                                                                     192.168.000...
HKCU                                                 HKEY_CURRENT_USER                       192.168.000...
HKLM                                                 HKEY_LOCAL_MACHINE                      192.168.000...
Variable                                                                                     192.168.000...
WSMan                                                                                        192.168.000...


PS C:\>

 

윈도우지만 ssh 형태로 접속할 수 있으며, cli 명령어로 서버를 관리할 수 있네요.

관리할 윈도우 서버가 많다면 최고의 기능입니다~

 

설정해보니, 재미있네요~

 

[원격서버 작업]: 접속되는 서버

1. 원격서버 설정 적용하여, 원격 명령을 수신하도록 컴퓨터를 구성합니다.

    명령어: Enable-PSRemoting

 

명령어 입력 시, cmd 창이 관리자 권한으로 실행이 되지 않았다면 아래와 같은 메시지가 출력됩니다.

 

2. 방화벽 정책 추가

  - 방화벽에 접근허용 가능한 IP를 등록하고 허용하기

    명령어: New-NetFirewallRule -DisplayName "WindowsRemoteManagement" -Group "Windows 원격 관리" -Description "WS-Management를 통한 Windows 원격 관리에 대한 인바운드 규칙입니다. [TCP 5985]" -Direction Inbound -LocalPort 5985 -Protocol TCP -RemoteAddress 192.168.0.54 -Action Allow

 

[로컬PC 작업]: 접속하는 관리자 PC

1-1. 원격서버를 신뢰할 수 있는 장치로 등록

    명령어: Set-Item WSMan:\localhost\Client\TrustedHosts -Value "원격서버 IP"

1-2. 원격서버 장치 확인

    명령어: Get-Item WSMan:\localhost\Client\TrustedHosts

 

2. 원격서버 접속 가능한 계정 정보 (자격증명) 만들기

  - 원격서버로 접속하기 위한 계정의 패스워드를 입력

    명령어: $MyPassword = Read-Host "Password" -AsSecureString | ConvertFrom-SecureString (패스워드 변수로 저장)

  변수로 저장된 패스워드를 확인할 수 있지만, 암호화 되어 있음

 

3. 자격증명 만들기

  - 원격으로 접속할 서버의 계정 정보인 ID/PW를 저장

  ※ 임시 변수로 저장하는 것으로 파워쉘을 빠져나오면 계정 정보가 지워짐.

    명령어1: $MyPassword = $MyPassword | ConvertTo-SecureString
    명령어2: $ObjectTypeName = "System.Management.Automation.PSCredential"
    명령어3: $MyCredential = New-Object -TypeName $ObjectTypeName -ArgumentList "ID",$MyPassword

 

4. 원격 서버 접속

  - 원격으로 SSH 형태의 터미널 방식으로 접속

    명령어: Enter-PSSession -ComputerName "원격  서버 IP" -Credential $MyCredential

 

5. 원격서버에 명령어 전달

  - 원격서버에 직접 접속하지 않고 명령어만 전달하여 결과 확인 (서버 재시작 등등 가능)

    명령어: Invoke-Command -ComputerName "원격 서버 IP" -Credential $MyCredential -Command { 명령어 }

 

리눅스에서는 단순하게 uptime을 하면 컴퓨터의 부팅시간을 알 수 있습니다.

윈도우에서는 확인하는 방법이 없을까 고민하다가 찾은 방법입니다.

 

이벤트 로그에 부팅 로그가 찍혀 있습니다.

직접 들어가서 보는 방법도 있습니다만, 엔지니어니까~

 

powershell을 이용하여 로그를 검색하는 방법을 안내합니다~

PS C:\> Get-WinEvent -FilterHashtable @{ // 엔터를 치면 다음줄에 자동으로 ">>"가 생깁니다.
>> logname = 'system' // 복사할때 ">>"는 빼고 복사하여 붙여넣기 하세요.
>> id = 6008, 12, 13 } | more

logname = 이벤트 로그 종류

ID 6008: 예기치 않은 시스템 종료 시간

ID 12: 운영체제가 시작된 시간

ID 13: 운영체제가 종료된 시간

서버의 경우 업데이트 이후 자동으로 강제로 재시작을 해야 하는 경우가 있습니다.

해당 상황을 방지하기 위한 방법 입니다.

 

gpedit.msc → 컴퓨터 구성 → 관리 템플릿 → Windows 구성 요소 → Windows 업데이트 로 이동

아래의 "예약된 자동 업데이트 설치 시 로그온한 사용자가 있을 경우 자동 다시 시작 사용 안 함" 을 사용으로 변경

 

변경 전

 

변경 후

 

 

이후 관리자 권한으로 실행한 cmd 창에서 gpudpate /force 실행

 

+ Recent posts