달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2015. 1. 8. 11:07

VBS - Windows 업데이트 설정 쿼리 Etc.2015. 1. 8. 11:07

Set objAutoUpdate = CreateObject("Microsoft.Update.AutoUpdate")

Set objSettings = objAutoUpdate.Settings


WUSetting = objSettings.NotificationLevel


Set objSettings = NOTHING

Set objAutoUpdate = NOTHING


Select Case WUSetting

  Case 1

    strSetting = "업데이트를 확인하지 않음"

    strState = "GOOD"

  Case 2

    strSetting = "업데이트를 확인하지만 다운로드 및 설치 여부는 직접 선택"

    strState = "GOOD"

  Case 3

    strSetting = "업데이트를 다운로드하지만 설치 여부는 직접 선택"

    strState = "GOOD"

  Case 4

    strSetting = "업데이트 자동 설치"

    strState = "BAD"

End Select



WScript.Echo strSetting

WScript.Echo strState





:
Posted by 커널64

System Center 2012 SP1과 R2에 대한 업데이트 롤업이 릴리즈 되었습니다. 자세한 내용은 아래 링크들을 참고하세요.


Update Rollup 8 for System Center 2012 Service Pack 1
http://support.microsoft.com/kb/2991990


Update Rollup 8 for System Center 2012 Data Protection Manager SP1 / UR8 for SCDPM 2012 SP1
http://support.microsoft.com/kb/2991995


Update Rollup 8 for System Center 2012 Operations Manager SP1 / UR8 for SCOM 2012 SP1
http://support.microsoft.com/kb/2991997





Update Rollup 4 for System Center 2012 R2
http://support.microsoft.com/kb/2992012


Update Rollup 4 for System Center 2012 R2 Data Protection Manager / UR4 for SCDPM 2012 R2
http://support.microsoft.com/kb/3009516


Update Rollup 4 for System Center 2012 R2 Operations Manager / UR4 for SCOM 2012 R2
http://support.microsoft.com/kb/2992020


Update Rollup 4 for System Center 2012 R2 Virtual Machine Manager / UR4 for SCVMM 2012 R2
http://support.microsoft.com/kb/2992024

:
Posted by 커널64

System Center 2012 R2 Configuration Manager (SCCM 2012 R2)의 누적 업데이트 3 릴리즈 정보입니다.



Description of Cumulative Update 3 for System Center 2012 R2 Configuration Manager
http://support.microsoft.com/kb/2994331/en-us


Description of Windows PowerShell changes in Cumulative Update 3 for System Center 2012 R2 Configuration Manager
http://support.microsoft.com/kb/2999304/en-us


:
Posted by 커널64
오랜만에 글을 올리는 것 같네요.

SCVMM 콘솔에서 VM에 대한 정보를 한 화면에서 보고자 할 때 기본적으로 제공되는 컬럼(속성) 외에 운영자 관점에서 보고자하는 값들이 있을 수 있습니다.
SCOM에서는 Management Pack을 개발해 추가할 수 있지만, SCVMM에서는 좀 더 쉬운 방법을 지원하고 있습니다.

바로 사용자 지정 속성이라는 값을 이용하는 방법입니다. 일단 예를 들어, 기본적으로 제공되지 않는 속성 중 IP 주소를 추가해 보도록 하겠습니다.

1) 아무 가상 머신을 선택한 후 속성 창을 열어 사용자 지정 속성 탭으로 이동해 '사용자 지정 속성 관리' 버튼을 클릭합니다.

 
2) 만들기 버튼을 클릭합니다.


3) 추가할 속성의 이름을 입력하고 확인 버튼을 클릭합니다.
 

4) 추가한 속성을 선택한 후 추가 버튼을 클릭하고, VM의 속성 창을 닫습니다.
 

5) 그런 다음, VM 목록이 표시되는 화면에서 컬럼 제목에 마우스 우클릭을 하면 다음과 같이 추가한 속성이 보입니다.



속성을 추가하는 방법은 간단합니다. 이제 VM마다 속성을 열어서 IP 주소를 수동으로 입력하면 되겠네요.
하지만, 그건 너무 손도 많이 가고 IT Pro 스럽지가 않죠. 우리의 PowerShell을 이용해 자동으로 입력해 보겠습니다.


Import-Module virtualmachinemanager

$CustomProperty = Get-SCCustomProperty -Name "IP 주소"

Clear-Host
$VM = Get-SCVirtualMachine

foreach ($Item in $VM) {
  $tmpIP = ""
  $tmpName = $Item.Name
  $tmpVMDesc = $Item.Description
  $tmpCustom = $Item | Get-SCCustomPropertyValue -CustomProperty  $CustomProperty
  $tmpVMNIC = $Item | Get-SCVirtualNetworkAdapter | Sort-Object -Property SlotId
  
  If ($tmpVMNIC) {
    foreach ($Item2 in $tmpVMNIC) {
      $IPv4 = $Item2.IPv4Addresses -Join ", "
      If ($IPv4 -ne $NULL -and $IPv4 -ne "") {$tmpIP = $tmpIP + $IPv4 + ", "}
    }
  }
  
  If ($tmpIP -ne $NULL -and $tmpIP -ne "") {$tmpIP = $tmpIP.Substring(0,$tmpIP.Length-2)}
  
  If ($tmpCustom.Value -ne $tmpIP -and $tmpIP -ne "") {
    Write-Host -fo White " - VM Name:"$tmpName
    Write-Host -fo White " - Description:"$tmpVMDesc
    Write-Host -fo White " - IP Address:"$tmpIP
    Write-Host -fo Yellow -NoNewLine `n" Updating ..." 
    $outNull = Set-SCCustomPropertyValue -CustomProperty $CustomProperty -InputObject $Item -Value $tmpIP
    $outNull = $Item | Refresh-VM
    Write-Host -fo Yellow " Completed!" `n`n
  }
}


위 스크립트는 IP 주소라는 사용자 지정 속성에 VM의 네트워크 인터페이스에 할당된 IP 주소를 자동으로 입력하는 스크립트입니다. 조금만 응용하시면, IP 주소 외에 VM의 여러 정보들을 사용자 지정 속성에 넣어 줄 수 있습니다.

저 같은 경우에는 IP 주소 외에 OS 이름(짧게), 저장된 위치(스토리지 정보)를 자동으로 입력해 주는 스크립트를 작성해 작업 스케줄러를 통해 자동으로 입력하도록 해 두었습니다.




:
Posted by 커널64
제목과 같이 Azure, System Center, Windows Server에 대한 포스터가 나왔네요.
Microsoft의 전반적인 클라우드 기술들을 한 눈에 볼 수 있도록 잘 설명되어 있는 것 같습니다.

다운로드는 아래 링크에서 가능합니다.
http://www.microsoft.com/en-us/download/details.aspx?id=43718






:
Posted by 커널64
System Center 2012 SP1 VMM에서 업데이틑 롤업 1(UR1, Update Rollup 1) 설치 후 VMM 콘솔을 실행하면 다음과 같은 오류가 발생합니다.

다음 오류로 인해 추가 기능 파이프라인의 관리 코드를 업데이트할 수 없습니다.

'C:\Program Files\Microsoft System Center 2012\Virtual Machine Manager\bin\AddInPipeline\PipelineSegments.store' 경로에 대한 액세스가 거부되었습니다.


이 역시 SCVMM 2012 R2 UR1 때와 마찬가지로 아래 KB에 해당 내용이 있습니다.

Description of Update Rollup 1 for System Center 2012 Service Pack 1
http://support.microsoft.com/kb/2785682/en-us

해결 방법은 다음과 같습니다.
1. Locate the following folder:
C:\Program Files\Microsoft System Center 2012\Virtual Machine Manager\bin

2. Right-click the AddInPipeline folder, and then click Properties.
3. On the Security tab, click Advanced, and then click Continue.
4. Select the BUILTIN group, and then click Edit.
5. Click the Select a principal link, type Authenticated Users, and then click OK.
6. Click OK to close each dialog box that is associated with the properties.

 
:
Posted by 커널64
System Center 2012 R2 Update Rollup 1 설치 후 테넌트 생성 시 다음과 같은 오류가 VMM 콘솔에서 발생합니다.

VMM에서 심각한 예외가 발생하고 C:\ProgramData\VMMLogs\SCVMM.b3e07f83-a61b-436b-9a2a-ac445c48ea7b\report.txt에 예외 보고서를 만듭니다.
자세한 내용은 보고서를 참조하고, 잘 알려진 오류의 근본 원인을 직접 진단할 수 있도록 사용자 포럼을 검색해 보십시오.
ID: 20413

그리고, 오류 창에서 알려준 예외 보고서의 내용을 보다 보니 다음과 같은 오류 내용이 보이더군요.

...
Error report created 2014-04-07 오전 9:06:27
CLR is not terminating
...
EventType=VMM20
P1(appName)=vmmservice.exe
P2(appVersion)=3.2.7620.0
P3(assemblyName)=unknown
P4(assemblyVer)=0.0.0.0
P5(methodName)=unknown
P6(exceptionType)=Microsoft.VirtualManager.DB.CarmineSqlException
P7(callstackHash)=0

SCVMM Version=3.2.7620.0
SCVMM flavor=C-buddy-RTL-AMD64
Default Assembly Version=3.2.7620.0
Executable Name=vmmservice.exe
Executable Version=3.2.7510.0
Base Exception Target Site=140721029663448
Base Exception Assembly name=System.Data.dll
Base Exception Method Name=System.Data.SqlClient.SqlConnection.OnError
Exception Message=일반적인 데이터베이스 오류 때문에 VMM 데이터베이스에 연결할 수 없습니다.
SQL Server가 실행 중이고 올바르게 구성되어 있는지 확인하십시오. 그런 다음 작업을 다시 시도하십시오.
EIP=0x00007ffc3c4d5a88
Build bit-size=64

위 내용을 보고 데이터베이스 서비스를 확인해 보았으나 정상이었습니다. 다시 로그를 확인하던 중 다음과 같은 내용이 확인됩니다.
...
Microsoft.VirtualManager.DB.CarmineSqlException: 일반적인 데이터베이스 오류 때문에 VMM 데이터베이스에 연결할 수 없습니다.
SQL Server가 실행 중이고 올바르게 구성되어 있는지 확인하십시오. 그런 다음 작업을 다시 시도하십시오. ---> System.Data.SqlClient.SqlException: 프로시저 또는 함수 prc_RBS_UserRoleSharedObjectRelation_Insert에 너무 많은 인수가 지정되었습니다.
위치: System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
...

위 저장 프로시저와 관련된 내용을 검색하다 보니 알려진 이슈더군요...
역시 업데이트를 설치하기 전에는 꼭 릴리즈 노트 등을 읽어 보시는 것이 좋겠습니다.
저와 같은 실수를 범하시지 않길 바랍니다.

해결 방법은 해당 저장 프로시저를 수정하면 됨며, 관련 내용은 다음 링크를 참조하시면 됩니다.
Description of Update Rollup 1 for System Center 2012 R2 Virtual Machine Manager
http://support.microsoft.com/kb/2904712/en-us 

쿼리 내용은 다음과 같습니다.
/* script starts here */
ALTER Procedure [dbo].[prc_RBS_UserRoleSharedObjectRelation_Insert]
(
        @ID uniqueidentifier,
        @ObjectID uniqueidentifier,
        @ObjectType int,
        @RoleID uniqueidentifier,
        @UserOrGroup varbinary (85),
        @ForeignAccount nvarchar (256),
        @IsADGroup bit,
        @ExistingID uniqueidentifier = NULL OUTPUT
)
AS
SET NOCOUNT ON
     SELECT @ExistingID = [ID] FROM [dbo].[tbl_RBS_UserRoleSharedObjectRelation]
     WHERE [ObjectID] = @ObjectID AND [RoleID] = @RoleID 
  AND
  -- Select owner OR Select all which matches ForeignAccount or UserOrGroup OR
  -- both ForeignAccount and UserOrGroup is NULL  
  (([UserOrGroup] = @UserOrGroup OR [ForeignAccount] = @ForeignAccount) OR
  ([UserOrGroup] IS NULL AND @UserOrGroup IS NULL AND [ForeignAccount] IS NULL AND @ForeignAccount IS NULL))
      /* Ignore duplicate entries */
      IF (@ExistingID IS NULL)
      BEGIN
     INSERT [dbo].[tbl_RBS_UserRoleSharedObjectRelation]
               ([ID]
               ,[ObjectID]
               ,[ObjectType]
               ,[RoleID]
               ,[UserOrGroup]
               ,[ForeignAccount]
               ,[IsADGroup]
               ,[IsOwner]
               )
    VALUES
    (
            @ID,
            @ObjectID,
            @ObjectType,
            @RoleID,                        
            @UserOrGroup,
            @ForeignAccount,
            @IsADGroup,
            0
    )
      END
SET NOCOUNT OFF
RETURN @@ERROR
/* script ends here */




:
Posted by 커널64
테스트 환경에 단독으로 운영 중인 Windows Server 2012 R2 기반의 Hyper-V 호스트 서버에서 가상 하드 디스크 공유 기능을 사용해 보려고 하는데 다음과 같이 오류가 발생하네요.

첨부 파일 'xxxx.vhdx'에 대한 정보를 가져올 수 없습니다.
가상 하드 디스크가 있는 저장소가 가상 하드디스크 공유를 지원하지 않습니다.


로컬 디스크에 대한 요구 사항(SCSI 영구 예약 등)이 맞지 않나... 하고 고민하던 중 다음과 같은 방법으로 해결하였습니다.

먼저, 명령 프롬프트에서 fltmc 명령을 입력해 보면 svhdxflt 필터가 목록에 없습니다.


이 필터를 설치하기 위해서는 장애 조치 클러스터링을 설치해야만 합니다. PowerShell을 실행한 후 다음 명령을 사용하거나 또는 서버 관리자 GUI를 통해 기능을 설치합니다.
Install-WindowsFeature Failover-Clustering -IncludeManagementTools


기능을 설치한 후 다시 fltmc 명령을 실행해 보면 svhdxflt 필터가 목록에 표시됨을 확인할 수 있습니다.


이제 해당 필터를 볼륨에 Attach 합니다. 명령은 다음과 같습니다.
fltmc attach svhdxflt <볼륨>


이제 다시 Hyper-V 관리자를 통해 가상 하드 디스크 공유 기능을 사용하면 정상적으로 설정됩니다.




 
:
Posted by 커널64
Microsoft 기반의 VDI나 RemoteApp 등의 시스템 구축 시 사용자들의 접근을 위해 RD 웹 액세스 서버를 구축합니다.
기본적으로 페이지 제목에 표시되는 Work Resources 문구를 변경하는 방법을 설명 드립니다.
 

RD 연결 브로커 서버에 로그온 한 후 PowerShell을 실행하고 아래 명령을 사용합니다.
Set-RDWorkspace -Name "표시할 제목" -ConnectionBroker <RD 연결 브로커 서버의 FQDN>

예를 들어, 제목을 Enterprise Mobility로 하고, 연결 브로서 서버의 이름이 rds.domain.local인 경우
Set-RDWorkspace -Name "Enterprise Mobility" -ConnectionBroker rds.domain.local





:
Posted by 커널64
일반적으로 Hyper-V 인프라가 구성되면, System Center가 함께 배포가 됩니다. VM의 성능 수집을 위해 VM 자체에 SCOM 에이전트를 설치하지 않고도 기본적인 CPU 사용률, 메모리 사용률(동적 메모리일 경우), 디스크 IO 사용량(Read/Write Bytes/sec) 및 네트워크 IO 사용량(Received/Sent Bytes/sec)을 수집할 수 있습니다.

아래 VB 스크립트는 이 중 CPU와 메모리 사용률을 가져오는 스크립트로 VMM의 WMI 클래스인 Win32_PerfFormattedData_VMMPerfCounters_VMMVirtualMachineCPU 클래스를 쿼리해 정보를 가져오는 방법입니다.


' Collection Rule for vCPU, Dynamic Memory Usages

' $Data/Property[@Name='Object']$
' $Data/Property[@Name='Counter']$
' $Data/Property[@Name='Instance']$
' $Data/Property[@Name='PerfValue']$

Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()

Set wshShell = WScript.CreateObject( "WScript.Shell" )
strComputerName = wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
Set wshShell = Nothing

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\virtualization\v2")
Set colItems = objWMIService.ExecQuery("Select ElementName,Name from Msvm_ComputerSystem Where Name <> '"&strComputerName&"'")

intCount = colItems.Count
ReDim VMName(intCount),VMID(intCount)

i = 0
For Each Item in colItems
 VMName(i) = Item.ElementName
 VMID(i) = Item.Name
 i = i + 1
Next
Set colItems = Nothing
Set objWMIService = Nothing

Check = 0
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select Name,PercentGuestRunTime,CurrentPressurePercent from Win32_PerfFormattedData_VMMPerfCounters_VMMVirtualMachineCPU")
For Each Item in colItems
 tmpVMID = Item.Name
 For i = 0 to intCount-1
  If VMID(i) = tmpVMID Then
   Check = 1
   Set propertyBag = oAPI.CreatePropertyBag()
   propertyBag.AddValue "Object","Hyper-V Hypervisor Virtual Processor"
   propertyBag.AddValue "Counter","% Total Run Time"
   propertyBag.AddValue "Instance",VMName(i)
   propertyBag.AddValue "PerfValue",Item.PercentGuestRunTime
   oAPI.AddItem(propertyBag)

   Set propertyBag = oAPI.CreatePropertyBag()
   propertyBag.AddValue "Object","Hyper-V Dynamic Memory VM"
   propertyBag.AddValue "Counter","Current Pressure"
   propertyBag.AddValue "Instance",VMName(i)
   propertyBag.AddValue "PerfValue",Item.CurrentPressurePercent
   oAPI.AddItem(propertyBag)
  End If
 Next
Next
Set colItems = Nothing
Set objWMIService = Nothing

If Check = 1 Then
 oAPI.ReturnItems
End If

Set oBag = Nothing
Set oAPI = Nothing



 
:
Posted by 커널64