SlideShare a Scribd company logo
1 of 88
Download to read offline
Windows PowerShell による
Server Core の環境設定と操作
                     マ゗クロソフト株式会社
                          エバンジェリスト
                     安納 順一 Anno Junichi
        http://blogs.technet.com/junichia/

                                         1
本日の目的


      従来のWindows Script にかわる
  PowerShell を使用したさまざまな管理手法




     PowerShell でしかできないこと




                               2
Agenda

       PowerShell を使用して以下の作業を行います


 •   OSの基本設定
 •   Hyper-V 環境の管理
 •   Active Directory の管理
 •   EventLog の管理



                                    3
OSの基本設定




          4
OSの基本設定
  Windows Server 2008 R2 Server Core では簡易GUIを提供
                  Sconfig.cmd




                                                  5
PowerShell の゗ンストールと環境設定




                                      ここからPowerShellコンソール




      •   WinRMサービスを起動                  Set-WSManQuickConfig
      •   WinRMサービスを「自動」に設定
      •   WinRM リスナを作成
      •   WS-Management(HTTP)のFirewall例外を有効にする               6
      •   PowerShell セッション構成を有効にする
PowerShell Remoting
ローカルで実行




リモート CL01 上で実行




                      7
PowerShell Remoting
複数のリモートコンピューターを管理
   方法1:コンピュータ名を並べて指定




   方法2:コンピュータ名一覧をテキストファイルで用意




                      c:¥tmp¥hosts.txt




                                         8
(参考)Server Core がWGの場合
クラ゗ゕント側の TrustedHosts に Server Core を追加する




                                            9
コンピューター名変更とドメ゗ン参加




                    10
ネットワーク設定




           11
Windows Update と
デバ゗スドラ゗バのダウンロード




                   12
画面の解像度



         (例)43882AFB-EB1A-406B-98F8-BDC4D019D84E




                                               13
(参考)PowerShellを使わない場合
作業                   初期状態      操作方法、コマンド例
パスワード変更              未設定       ログオン時に実施
コンピュータ名の変更           ランダム      Netdom renamecomputer %computername%
                               /NewName:Server2008-01
ネットワーク環境設定           DHCP      Netsh interface ipv4 show interfaces
                               Netsh interface ipv4 add address name=“ローカルエリゕ
                               接続” address=“192.168.7.100”
                               mask=“255.255.255.0”
                               gateway=192.168.7.254”
                               Netsh interface ipv4 add dnsserver name=“ローカル エリ
                               ゕ接続” 192.168.7.11 index=1
WSHのエンジン変更           wscript   Cscript.exe //h:cscript (エンジンを cscript にする)
Windows Update設定     未設定       Scregedit.wsf /AU 4 (自動更新を有効にする)

電源管理系機能の設定                     Powercfg.exe
役割と機能の追加             未         Oclist.exe で一覧参照、Ocsetup.exeで゗ンストール
ドメ゗ン参加                         Netdom join %computername%
                               /domain:<domainName>
                               /userd:<domainName>¥<userName>
                               /passwordd:<password>
シャットダウン、再起動、ログオフ             Shutdown.exe (再起動時は /r ), logoff.exe
                                                                                14
Server Core の管理゗メージ
コマンドプロンプト          コマンドプロンプト          MMC/Server Manager
/PowerShellコンソール   /PowerShellコンソール   /リモードデスクトップ




Server Core                     Remote PC




                                                       15
リモートからの管理を有効にする

•   MMC
•   リモートデスクトップサービス
•   Server Manager
•   Windows PowerShell(実施済み)




                               16
MMCを使用したリモート管理を有効にする
            sconfig.cmd の中で実行している内容




                                      17
リモートデスクトップを有効にする




                   18
(参考)Workgroup構成の場合
Server Core側




クライアント側




                     19
Hyper-Vの管理




             20
Server Core 上の Hyper-V を管理するには
 • Hyper-V マネージャーから(リモート)
    • GUIからHyper-Vを管理
    • OSの゗ンストール、OSの操作も可能

 • System Center Virtual Machine Manager から(リモート)
    • 合理化されたGUIからHyper-Vを管理
    • OSの゗ンストール、操作も可能
    • 専用のPowerShellコマンドレットも用意

 • WMIを使用してPowerShell から(リモート,ローカル)
    • コマンドラ゗ンからHyper-Vを管理
    • (通信可能であれば)OSの操作が可能            リモート
    • OSの゗ンストールが行えない




    ローカル
                Server Core
                                                    21
root¥virtualization 内のクラス一覧
MSVM_VirtualSystemManagementServiceSettingData
MSVM_virtualSystemManagementService
MSVM_ShutdownComponent
MSVM_SwitchLANEndpoint
MSVM_SyntheticEthernetPortSettingData
MSVM_VirtualSwitchManagementService
MSVM_VirtualSystemGlobalSettingData
MSVM_VirtualSystemSettingData       MSVM_EmulatedEthernetPortSettingData
MSVM_Vlanendpoint                   MSVM_ExternalEthernetPort
MSVM_AllocationCapabilities         MSVM_HeartbeatComponent
MSVM_ComputerSystem                 MSVM_InternalEthernetPort
MSVM_DiskDrive                      MSVM_KvpExchangeComponent
MSVM_SwitchPort                     MSVM_KvpExchangeDataItem
MSVM_VirtualSwitch                  MSVM_MemorySettingData
                                    MSVM_MountedStorageImage
                                    MSVM_Processor
                                    MSVM_ProcessorSettingData
                                    MSVM_ResourceAllocationSettingData
                                    MSVM_ResourcePool
                                    MSVM_SettingsDefineCapabilities
                                                                     22
MSVMクラス 利用のコツ




                23
Msvm_VirtualSystemManagementService クラス
Hyper-Vの全体的な管理を行うクラス




 メソッド一覧
 AddKvpItems                         ImportVirtualSystem
 AddVirtualSystemResources           ImportVirtualSystemEx
 ApplyVirtualSystemSnapshot          InstantiateVirtualSystem
 ApplyVirtualSystemSnapshotEx        ModifyKvpItems
 CheckSystemCompatibilityInfo        ModifyServiceSettings
 CloneVirtualSystem                  ModifyVirtualSystem
 CreateVirtualSystemSnapshot         ModifyVirtualSystemResources
 DefineVirtualSystem                 PlanVirtualSystem
 DestroyVirtualSystem                RemoveKvpItems
 ExportVirtualSystem                 RemoveVirtualSystemResources
 ExportVirtualSystemEx               RemoveVirtualSystemSnapshot
 FormatError                         RemoveVirtualSystemSnapshotTree
 GetSummaryInformation               RequestStateChange
 GetSystemCompatibilityInfo          StartService
 GetVirtualSystemImportSettingData   StopService
 GetVirtualSystemThumbnailImage
                                                                       24
(例)スナップショットを取る




                 25
(参考)PowerShell modules for Hyper-V
 Codeplex で提供されているPowerShellコマンドレット群
 2009年11月30日時点で ベータ版
 http://pshyperv.codeplex.com/




                                       26
Active Directory を管理する
      +
Eventlog を管理する




                         27
AD DS を管理するための準備
• Active Directoryモジュールの読み込み



• Active Directory 関連コマンド一覧の参照




                                 28
(参考)Windows PowerShell ADモジュール一覧
 Add-ADComputerServiceAccount
 Add-ADDomainControllerPasswordReplicationPolicy
 Add-ADFineGrainedPasswordPolicySubject
 Add-ADGroupMember
 Add-ADPrincipalGroupMembership         Get-ADAccountAuthorizationGroup
                                        Get-ADAccountResultantPasswordReplicationPolicy
 Clear-ADAccountExpiration              Get-ADComputer
                                        Get-ADComputerServiceAccount
 Disable-ADAccount                      Get-ADDefaultDomainPasswordPolicy
 Disable-ADOptionalFeature              Get-ADDomain
                                        Get-ADDomainController
 Enable-ADAccount                       Get-ADDomainControllerPasswordReplicationPolicy
 Enable-ADOptionalFeature               Get-ADDomainControllerPasswordReplicationPolicyUsage
                                        Get-ADFineGrainedPasswordPolicy
                                        Get-ADFineGrainedPasswordPolicySubject
                                        Get-ADForest
                                        Get-ADGroup
                                        Get-ADGroupMember
                                        Get-ADObject
                                        Get-ADOptionalFeature
                                        Get-ADOrganizationalUnit
                                        Get-ADPrincipalGroupMembership
                                        Get-ADRootDSE
                                        Get-ADServiceAccount
                                        Get-ADUser
                                        Get-ADUserResultantPasswordPolicy                 29
Install-ADServiceAccount                             Search-ADAccount

Move-ADDirectoryServer                               Set-ADAccountControl
Move-ADDirectoryServerOperationMasterRole            Set-ADAccountExpiration
Move-ADObject                                        Set-ADAccountPassword
                                                     Set-ADComputer
New-ADComputer                                       Set-ADDefaultDomainPasswordPolicy
New-ADFineGrainedPasswordPolicy                      Set-ADDomain
New-ADGroup                                          Set-ADDomainMode
New-ADObject                                         Set-ADFineGrainedPasswordPolicy
New-ADOrganizationalUnit                             Set-ADForest
New-ADServiceAccount                                 Set-ADForestMode
New-ADUser                                           Set-ADGroup
                                                     Set-ADObject
Remove-ADComputer                                    Set-ADOrganizationalUnit
Remove-ADComputerServiceAccount                      Set-ADServiceAccount
Remove-ADDomainControllerPasswordReplicationPolicy   Set-ADUser
Remove-ADFineGrainedPasswordPolicy
Remove-ADFineGrainedPasswordPolicySubject            Uninstall-ADServiceAccount
Remove-ADGroup
Remove-ADGroupMember                                 Unlock-ADAccount
Remove-ADObject
Remove-ADOrganizationalUnit
Remove-ADPrincipalGroupMembership
Remove-ADServiceAccount
Remove-ADUser
Rename-ADObject
Reset-ADServiceAccountPassword
Restore-ADObject                                                                         30
ユーザー情報の参照
• 現在ログオンしているユーザーIDの情報




• ユーザーのプロパテゖを参照




                        31
AD DS をブラウズ
 PS C:>cd AD:
 PS AD:>dir

 Name              ObjectClass        DistinguishedName
 -------------------------------------------------------------------------
 Contoso           domainDNS          dc=Contoso,dc=Com
 Configuration configuration          cn=Configuration,dc=contoso,…
 Schema            dMD                cn=schema,cn=Configuration,…
 ・
 ・
 PS AD:¥>cd ‘.¥DC=Contoso,DC=Com’
 PS AD:¥DC=Contoso,DC=Com>dir

 Name              ObjectClass        DistinguishedName
 -------------------------------------------------------------------------
 Builtin           BuiltinDomain cn=Builtin,dc=contoso,dc=com
 Computers         container          cn=Computers,dc=contoso,dc…
 ・
 ・

                                                                             32
特定条件のユーザーを検索①
• ユーザーIDに test を含むユーザーを検索する




• 無効化されたユーザーを検索する


• パスワードの有効期限が切れたユーザーを検索する


• ゕカウントの有効期限が切れたユーザーを検索する


• ロックされたユーザーを検索する


• パスワードが無期限のユーザーを検索する


                              33
特定条件のユーザーを検索②
• 1年間ログオンしていないユーザーを検索する
  ※ただし最近作成したユーザーは除外する




       この間にログオンしていないユーザー        除外


    今から365日前              2009/11/18
                           17:00:00




                                       34
ユーザーを作成
#ドメ゗ンに移動
cd AD:
cd ‘.¥DC=contoso,DC=com’

#OUを作成
New-ADOrganizationalUnit “TESTOU”

#OUに移動
cd ‘.¥OU=TESTOU’

#ユーザーを作成
New-ADUser –Name “itanaka”
-UserPricipalName “itanaka@demodomain.com”
-displayName “田中 一郎”



                                             35
UserAccountControl フラグ の設定
Set-AccountControl –Identity “<UserID>”
-AccountNotDelegated $True | $False ゕカウントは重要なので委任できない
-AllowReversiblePasswordEncryption $True | $False 暗号化を元に戻せるパスワードで保存する
-AuthType {Negotiate | Basic} 使用する認証方式
-CannotChangePassword <bool> ユーザーはパスワードを変更できない
-DoesNotRequirePreAuth <bool> Kerberos事前認証を必要としない
-Enabled <bool> ゕカウントの有効/無効
-HomedirRequired <bool> ゕカウントにホーム デゖレクトリが必要であるかどうか
-MNSLogonAccount <bool> マジョリテゖ ノード セットログオン ゕカウントであるかどうか
-Partition <DN> Active Directory パーテゖションの識別名
-PasswordNeverExpires <bool> パスワードを無期限にする
-PasswordNotRequired <bool> ユーザーは次回ログオン時にパスワード変更が必要
-TrustedForDelegation <bool> 任意のサービスへの委任でこのユーザーを信頼する
-TrustedToAuthForDelegation <bool> このゕカウントで委任を使用できる
-UseDESKeyOnly <bool> このゕカウントにKerberos DES暗号化を使う




                                                                  36
パスワード
Set-ADAccountPassword -Identity <ADAccount>
-NewPassword <SecureString> -OldPassword <SecureString>




Set-ADAccountPassword -Identity <ADAccount>
-NewPassword <SecureString> -Reset <switch>




                                                          37
PowerShellでしかできない削除ユーザーの復活
Active Directory Recycle Bin
 機能
   削除したユーザーを完全復活!
   既定で180日間保持(変更可能)
   削除状態からの復旧であればAuthoritative Restoreは不要
       属性情報の紛失時には使えない
   Linked-Value も完全復活
       グループメンバーシップやグループメンバー など


 留意事項(ご参考)
   Active Directory フォレスト機能レベル
       Windows Server 2008 R2
   規定では無効(有効にしたら元には戻せない)
   DITの容量が10~15%程度増加(目安)
   操作は Windows PowerShell を使用


                                           38
Active Directory Recycle Bin
「削除済」からの完全復旧
               削除                     Lifetime          Lifetime
               操作                    180 Days          180 Days


        有効                     削除済               リサ゗クル済             消滅

                                                       Garbage
                                                       Collection




           ・                     ・                 ・
           ・                     ・                 ・




                                                                         39
(参考)ラ゗フタ゗ムを変更するには

 削除済オブジェクト の ライフタイム を変更する




 リサイクル済オブジェクトのライフタイムを変更する




                            40
Recycle Binを使用するための準備

  フォレストの機能レベルを「2008 R2」にする




  「ゴミ箱」を有効にする




                             41
削除されたユーザーを復旧する
 削除されたユーザーを参照する




 ユーザーを復旧する




                  42
Active Directory Recycle Bin のメカニズム
 削除されるとDeleted Objects コンテナに移動
   IsDeleted属性が Trueに
   全てのオブジェクトがフラットに並ぶ
   RDN(識別名)が書き換えられる
   <現在のRDN>¥0ADEL:<GUID>



                           CN=Deleted Objects
    OU=Finance
                             CN=Robert¥0ADEL:…
      CN=Robert
                             CN=Mark¥0ADEL:…
      CN=Mark
                              CN=Tom¥0ADEL:…
      CN=Tom
                              CN=Sally¥0ADEL:…
      OU=Admins
                              OU=Admins¥0ADEL:…
         CN=Sally
                              OU=Finance¥0ADEL:...
                                                     43
ツリー構造の復旧はルートから行う
復旧は親から順に行う
 親オブジェクトが存在しない場合にエラー
 親はlastKnownParent 属性に入っている

                  まずは
                  ここから   CN=Deleted Objects
 OU=Finance
                              CN=Robert¥0ADEL:…
   CN=Robert
                              CN=Mark¥0ADEL:…
   CN=Mark
                              CN=Tom¥0ADEL:…
   CN=Tom
                              CN=Sally¥0ADEL:…
    OU=Admins
                              OU=Admins¥0ADEL:…
       CN=Sally
                              OU=Finance¥0ADEL:...


                                                     44
組織ツリーの復旧
1. 親を復旧




2. 親が「Finance_Department」であるものを復旧




3. 親が「Admins」であるものを復旧



                                    45
ユーザーIDのプロビジョニング - Before
従来のプロビジョニング(WS2003~WS2008)




         各種属性
         所属グループ
         メンバーシップ




                             46
ユーザーIDのプロビジョニング - After
Windows Server 2008 R2では




          各種属性
          所属グループ
          メンバーシップ




                           47
ユーザーIDのプロビジョニング - After+
さらなる内製化




       各種属性
       所属グループ
       メンバーシップ




       監査ログ



                           48
ユーザー属性の変更を追跡するには①
[ADSIエデゖタ] で Everyoneに対して
「すべてのプロパテゖの書き込み」を監査


                            監査の設定




                                    49
ユーザー属性の変更を追跡するには②
デゖレクトリサービスのゕクセスの監査 を有効にする




                            50
゗ベントID 5136
department 属性が 「営業部」から「経理部」に変わったことがわかる




                                         51
EventID 5136 を検索する


searchEvent.ps1




                     52
出力結果例




        53
AD Recycle Bin + PowerShell + 監査ログ
業務に与える゗ンパクト
  データ復旧時のシステム停止時間を大幅に削減
    従来
       Authoritative Restore によるバックゕップからの復元
       Snapshot から取り出し(Windows Server 2008)
    今後
       Windows PowerShell によって簡単に復元
       局所的に復元が可能

  簡易的なユーザーIDプロビジョニングシステムの実現
    導入コストの大幅な軽減
    中小規模システムへの適用が可能に



                                              54
まとめ




      55
まとめ

 難しくて面倒なWMIが身近に
 コードの量が半分以下に(VBS比)
 慣れたコマンドを併用可能
 GUIでは知りえない情報も取得
 今後、多くのServer製品にコマンドレットが付属




                             56
57
Appndix
  - WMI による Windows Server の 監視
    (VBScript編)




                                  58
WMI とは
 Windows Management Instrumentation
  WBEM/CIMに準拠
  各種管理情報への共通゗ンターフェース
  Windows Management Serviceとして実装
  Windows 2000以上のOSに標準搭載
  WMIプロバ゗ダはベンダーが拡張可能
  別途エージェントは一切必要なし
  もちろんタダ!




                                      59
60
WMI にゕクセスするには

  バッチフゔ゗ルから
   WMICコマンド(Windows XP以降)
  Windows Script Host から
  Windows PowerShell から
  Visual Studio から
  GUIツールから
   WMI Admin Tools など


                            61
WMIの構造
 %WinDir%¥System32¥wbem 配下の mof (Managed Object Format)
 フゔ゗ルに定義されている

                                    Namespace によって使える
           Namespace                Class が異なることに注意

                                    規定のNamespaceは
                       Class
                                    Root¥CIMV2

 (例) ROOT¥COMV2
            Win32_OperatingSystem
            Win32_NTLogEventLog
            ・
            ・
     ROOT¥Default
            STDREGPROV
     ROOT¥microsoft¥SqlServer¥ComputerManagement10
            SqlService
            ・
                                                          62
            ・
WMIの主役 Win32_クラス
 一部抜粋
Win32_ActiveRoute              Win32_ModuleTrace
Win32_ComputerShutdownEvent    Win32_NamedJobObject
Win32_ComputerSystemEvent      Win32_NTDomain
Win32_ConnectionShare          Win32_PingStatus
Win32_CurrentTime              Win32_ProcessStartTrace
Win32_DeviceChangeEvent        Win32_ProcessStopTrace
Win32_DiskQuota                Win32_Proxy
Win32_GroupInDomain            Win32_QuotaSetting
Win32_IP4PersistedRouteTable   Win32_ServerConnection
Win32_IP4RouteTable            Win32_SessionConnection
Win32_IP4RouteTableEvent       Win32_TokenGroups
Win32_JobObjectStatus          Win32_TokenPrivileges
Win32_LoggedOnUser             Win32_VolumeChangeEvent
Win32_LogonSession             Win32_WindowsProductActivation
Win32_LogonSessionMappedDisk   Win32_ControllerHasHub
Win32_NetworkAdapter                  ・
Win32_ComputerSystem                  ・
       ・                              ・
       ・
                                                                63
WMI Tools ~ CIM Studio
 ブラウザを使用して、WMIの構造、実際の゗ンスタンスを確認
 クエリを発行して戻り値を確認
 リモートコンピュータに接続も可能




                                 64
VBScriptからWMIを使う




                   65
WMI Scriptingの基本形
 'SWbemLocator オブジェクトの作成
 Set Locator = CreateObject("WbemScripting.SWbemLocator")

 ‘ローカルコンピュータへの接続
 Set Service = Locator.ConnectServer("", "root¥cimv2", "", "")

 ‘クエリーの定義(WQL:WMI Query Language)
 strQuery = "Select * from Win32_NetworkAdapterConfiguration " & _
            "where IPEnabled = True"

 ‘クエリーの実行(インスタンスを取得する)
 Set objNet = Service.ExecQuery(strQuery)

 '結果の参照
 For each n in objNet
         WScript.Echo n.caption
         WScript.Echo n.MACAddress
 Next

                                                                     66
WMIスクリプトの実行権限
  リモートコンピュータに対するゕクセス権の取得
Set Service = Locator.ConnectServer(RemoteHost,Namespace,User,Password)



   特殊権限の取得
Set Locator = CreateObject("WbemScripting.SWbemLocator")

Set Service = Locator.ConnectServer("DC01", "root¥cimv2", "Dom¥administrator", "pass")

Service.Security_.Privileges.AddAsString "SeBackupPrivilege", True
Service.Security_.Privileges.AddAsString "SeSecurityPrivilege", True

strQuery = "Select * from Win32_NTEventlogFile" & _
            " Where LogfileName = 'Security' "

Set obj = Service.ExecQuery(strQuery)

For each n in obj
          r = n.BackupEventLog("C:¥tmp¥Security.evt")
Next

                                                                                         67
(注意)リモートコンピュータにゕクセスする前に①
 リモートからの接続が許可されていることを確認
 規定ではシステム管理者にはゕクセスが許可されている




                             68
(注意)リモートコンピュータにゕクセスする前に②




                           69
Windows Serverを監視する




                      70
゗ベントの監視
  システムで発生した゗ベントをトリガーとして処理を実行
  一時監視と永続的監視
  以下の゗ベント監視用クラスが用意されている
   __InstanceCreationEvent
      あたらしい゗ンスタンスが作成された
   __InstanceModificationEvent
      ゗ンスタンスの属性が変更された
   __InstanceDeletionEvent
      既存の゗ンスタンスが削除された




                                 71
監視の゗メージ


             ゗ベントログに゗ベ
   WORDが起動    ントが書かれた  USBデバ゗スが挿された
               タ゗ムゾーンが変更
  ユーザーがログオン
                        IPゕドレス変更
  シャットダウン      メモ帳が終了




                                      72
一時的な監視例①
__InstanceCreationEventによる新たに作成されたインスタンスの監視

Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer(TargetComputer, _
                                             "", AdminUser, AdminPass)

strQueryCreate = "Select * " & _
                  "FROM __InstanceCreationEvent WITHIN 5 " & _
                                                                      監視したい
                  "WHERE TargetInstance ISA 'Win32_Process' "          クラス

Set objEventsCreation = objService.ExecNotificationQuery(strQueryCreate)

Do
         Set CreationEvent = objEventsCreation.Nextevent
         ProcessName = CreationEvent.TargetInstance.Name        Win32_Procass
         Wscript.Echo ProcessName                                のプロパテゖ
Loop


                                                                                73
一時的な監視例②
__InstanceModificationEventによるユーザーログオンの監視

Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer(TargetComputer, _
                           ‚ROOT¥CIMV2", AdminUser, AdminPass)

strQuery= "Select * " & _
         "FROM __InstanceModificationEvent WITHIN 5 " & _
         "WHERE TargetInstance ISA 'Win32_ComputerSystem' "

Set objEventsModification = objService.ExecNotificationQuery(strQuery)

Do
         Set ModificationEvent = objEventsModification.Nextevent
         UserName = ModificationEvent.TargetInstance.UserName
         Wscript.Echo UserName
Loop


                                                                         74
そこでこんな方法…
       現在のログオンセッション一覧をキャッシュ
       ログオンしたらセッション作成
       ログオフしたらセッション削除


            ログオン時に割り振られた番号

            ログオンのタ゗プ(対話、ネットワーク…)




       現在ログオンしているユーザーのユーザーIDとログ
       オンIDをキャッシュ


            ログオンしたユーザーID

            ログオン時に割り振られた番号


                                   75
一時的な監視例③
__InstanceCreationEventによるユーザーログオンの監視
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objService = objLocator.ConnectServer("demo2008", "ROOT¥CIMV2", "", "")
Wscript.Echo "接続が完了しました"
strQueryCreate = "Select * FROM __InstanceCreationEvent WITHIN 5 " & _
                         "WHERE TargetInstance ISA 'Win32_LogonSession' ‚
Set objEventsCreation = objService.ExecNotificationQuery(strQueryCreate)
Do
            Set CreationEvent = objEventsCreation.Nextevent
            LogonId= CreationEvent.TargetInstance.LogonID
            LogonType = CreationEvent.TargetInstance.LogonType
            strQueryLU = "Select * " & _
                         ‚FROM Win32_LoggedOnUser‛ ' Where Dependent like ‘%" & LogonId & "%’‚
            Set objLoggedOnUser = objService.ExecQuery(strQueryLU)
            For Each u in objLoggedOnUser
                        If instr(u.Dependent, LogonId) Then
                                     Wscript.Echo u.Antecedent
                                                                         ユーザーID
                                     Wscript.Echo u.Dependent
                                                                      ログオンID
                     End If
          Next
Loop

                                                                                                 76
一時的な監視例③‘ (③をブラッシュアップ)
 Set objLocator = CreateObject("WbemScripting.SWbemLocator")
 Set objService = objLocator.ConnectServer("demo2008", "ROOT¥CIMV2", "", "")

 Wscript.Echo "接続が完了しました"
 strQueryCreate = "Select * FROM __InstanceCreationEvent WITHIN 5 " & _
                         "WHERE TargetInstance ISA 'Win32_LogonSession' ‚
 Set objEventsCreation = objService.ExecNotificationQuery(strQueryCreate)
 Do
            Set CreationEvent = objEventsCreation.Nextevent
            LogonId= CreationEvent.TargetInstance.LogonID
            LogonType = CreationEvent.TargetInstance.LogonType
            Select Case LogonType
                        Case 0 strLogonType = "System"
                        Case 2 strLogonType = "Interactive"
                        Case 3 strLogonType = "Network"
                        Case 4 strLogonType = "Batch"
                        Case 5 strLogonType = "Service"
                        Case 6 strLogonType = "Proxy"
                        Case 7 strLogonType = "Unlock"
                        Case 8 strLogonType = "NetworkClearText"
                        Case 9 strLogonType = "NewCredentials"
                        Case 10 strLogonType = "RemoteInteractive(TS)"
                        Case 11 strLogonType = "CachedInteractive"
                        Case 12 strLogonType = "CachedRemoteInteractive"
                        Case 13 strLogonType = "CachedUnlock"
            End Select                                                         77
strQueryLoggedOnUser = "Select * " & _
                  "FROM Win32_LoggedOnUser"
       Set objLoggedOnUser = objService.ExecQuery(strQueryLoggedOnUser)

       For Each u in objLoggedOnUser
                   If instr(u.Dependent, LogonId) Then
                       arrAntecedent = Split(u.Antecedent,".")
                       Wscript.Echo Date & "," & Time & "," & _
                                      LogonId & "," & arrAntecedent(2) & "," & strLogonType
                                 Exit For
                   End If
       Next

Loop




                                                                                              78
一時的な監視例④
 __InstanceDeletionEventによるユーザーログオフの監視
 Set objLocator = CreateObject("WbemScripting.SWbemLocator")
 Set objService = objLocator.ConnectServer("demo2008", "ROOT¥CIMV2", "", "")

 Wscript.Echo "接続が完了しました"
 strQueryCreate = "Select * " & _
                        "FROM __InstanceDeletionEvent WITHIN 5 " & _
                        "WHERE TargetInstance ISA 'Win32_LogonSession' "

 Set objEventsDeletion = objService.ExecNotificationQuery(strQueryCreate)

 Do
            Set DeletionEvent = objEventsDeletion.Nextevent
            LogonId= DeletionEvent.TargetInstance.LogonID
            LogonType = DeletionEvent.TargetInstance.LogonType

            Wscript.Echo Date & "," & Time & "," & LogonId & "," & strLogonType

 Loop



                セッションの削除はログオフしてから1分程度を要する
                                                                                  79
③’と④を組み合わせると
  ログオンID をキーにしてログデータベースに書き込むことでサーバー
  を使用したユーザーの履歴を管理できる




                                       ログDB

 ServerName   LogonID   LogonType     LogonDateTime   LogoffDateTime   Domain   UserID

 demo2008     5443965   Interactive   2009/03/01      2009/03/01       dom      anno
                                      10:00:00        12:15:30
 demo2008     6220879   TS            2009/03/01      2009/03/01       dom      administrator
                                      12:00:00        13:10:01
                                                                                                80
スクリプトをサービス化




              81
゗ベントコンシューマ
イベントコンシューマとは….
 システムで発生したイベントをトリガーに特定のアクションを
 実行する機構
 • ActiveScriptEventConsumer
   – イベントが発生したらスクリプトを実行
 • LogFileEventConsumer
   – ゗ベントが発生したらテキストフゔ゗ルに書き込み
 • NTEventLogEventConsumer
   – ゗ベントが発生したら゗ベント
 • SMTPEventConsumer
   – ゗ベントが発生したらメール送信
 • CommandLineEventConsumer
   – ゗ベントが発生したらコマンドを実行

      システムに登録されるのでログオンする必要が無い
       ただし、監視できるのはローカルコンピュータ
                                82
MOFフゔ゗ルによる永続的監視
 ActiveScriptEventConsumerによるmofフゔ゗ルの例
  #pragma namespace("¥¥¥¥.¥¥root¥¥subscription")

  instance of ActiveScriptEventConsumer as $Cons
  {
      Name = "LogonUserLogging";
      ScriptingEngine = "VBScript";
      ScriptFileName = "c:¥¥tmp¥¥demoscript¥¥wmisample08.vbs";
  };

  instance of __EventFilter as $Filt
  {
      Name = "LogonUser";
      Query = "SELECT * FROM __InstanceCreationEvent WITHIN 5 "
            "WHERE TargetInstance ISA ¥"Win32_LogonSession¥" ";
      QueryLanguage = "WQL";
      EventNamespace = "root¥¥cimv2";
  };

  instance of __FilterToConsumerBinding
  {
      Filter = $Filt;
      Consumer = $Cons;                                           83
  };
拡張子 mof で保存




コマンドプロンプトからコンパ゗ル
C:¥>mofcomp.exe <mofフゔ゗ル名>
                             84
呼び出されるスクリプト(③‘’)
 Set objLocator = CreateObject("WbemScripting.SWbemLocator")
 Set objService = objLocator.ConnectServer("demo2008", "ROOT¥CIMV2", "", "")
 Set objFS = CreateObject("Scripting.FileSystemObject")

 Wscript.Echo "接続が完了しました"
 strQueryCreate = "Select * FROM __InstanceCreationEvent WITHIN 5 " & _
                         "WHERE TargetInstance ISA 'Win32_LogonSession' ‚
 Set objEventsCreation = objService.ExecNotificationQuery(strQueryCreate)
 Do
            Set CreationEvent = objEventsCreation.Nextevent
            LogonId= CreationEventTargetEvvent.TargetInstance.LogonID
            LogonType = CreationEventTargetEvent.TargetInstance.LogonType
            Select Case LogonType
                        Case 0 strLogonType = "System"
                        Case 2 strLogonType = "Interactive"
                        Case 3 strLogonType = "Network"
                        Case 4 strLogonType = "Batch"
                        Case 5 strLogonType = "Service"
                        Case 6 strLogonType = "Proxy"
                        Case 7 strLogonType = "Unlock"
                        Case 8 strLogonType = "NetworkClearText"
                        Case 9 strLogonType = "NewCredentials"
                        Case 10 strLogonType = "RemoteInteractive(TS)"
                        Case 11 strLogonType = "CachedInteractive"
                        Case 12 strLogonType = "CachedRemoteInteractive"
                        Case 13 strLogonType = "CachedUnlock"
            End Select                                                         85
strQueryLoggedOnUser = "Select * FROM Win32_LoggedOnUser"
       Set objLoggedOnUser = objService.ExecQuery(strQueryLoggedOnUser)

       For Each u in objLoggedOnUser
          If instr(u.Dependent, LogonId) Then
         arrAntecedent = Split(u.Antecedent,".")
         Set objLogFile = objFS.OpenTextFile("C:¥tmp¥demoscript¥userlog.txt",8,True)
         objLogFile.WriteLine Date & "," & Time & "," & LogonId & "," & _
                                arrAntecedent(2) & "," & strLogonType
         objLogFile.Close
         Wscript.Echo Date & "," & Time & "," & _
                          LogonId & "," & arrAntecedent(2) & "," & strLogonType
       Exit For
                     End If
       Next
Loop




                                                                                       86
リソース
 MSDN - Windows Management Instrumentation
 http://msdn.microsoft.com/en-us/library/aa394582(VS.85).aspx

 Script Guy!
 http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/
 default.mspx




                                                                        87
88

More Related Content

What's hot

パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~Tatsuo Kudo
 
「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)
「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)
「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)Yoshikazu GOTO
 
無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろうakira6592
 
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep DiveToru Makabe
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装infinite_loop
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜Masaru Kurahayashi
 
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)Wataru NOGUCHI
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用シスコシステムズ合同会社
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門土岐 孝平
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐkwatch
 
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コースJuniper Networks (日本)
 
これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座Serverworks Co.,Ltd.
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会ShuheiUda
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話Yuta Shimada
 
Fluentdで本番環境を再現
Fluentdで本番環境を再現Fluentdで本番環境を再現
Fluentdで本番環境を再現Hiroshi Toyama
 
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdfわたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdfssuser868e2d
 
試験にでるSpring
試験にでるSpring試験にでるSpring
試験にでるSpring土岐 孝平
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線Motonori Shindo
 
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)Hiroshi Tokumaru
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 

What's hot (20)

パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
 
「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)
「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)
「DNS浸透いうな」と言うけれど… (#ssmjp 2018/07)
 
無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう
 
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
 
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
 
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース
 
これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
 
Fluentdで本番環境を再現
Fluentdで本番環境を再現Fluentdで本番環境を再現
Fluentdで本番環境を再現
 
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdfわたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
 
試験にでるSpring
試験にでるSpring試験にでるSpring
試験にでるSpring
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 

Similar to PowerShellを使用したWindows Serverの管理

Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01Yusuke Ando
 
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~ShuheiUda
 
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニックTech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニックkumo2010
 
仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製する仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製するjunichi anno
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)Daisuke Ikeda
 
Hyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理するHyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理するjunichi anno
 
System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理junichi anno
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーAyumu Kawaguchi
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osakaNaotaka Jay HOTTA
 
SC2012 VMM SP1 Update ヒーロー島 版
SC2012 VMM SP1 Update ヒーロー島 版SC2012 VMM SP1 Update ヒーロー島 版
SC2012 VMM SP1 Update ヒーロー島 版Kishima Masakazu
 
AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...
AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...
AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...Amazon Web Services Japan
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介Etsuji Nakai
 
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Takamasa Maejima
 
PowerShell and Release Management Server
PowerShell and  Release Management ServerPowerShell and  Release Management Server
PowerShell and Release Management ServerKazushi Kamegawa
 
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Tech Summit 2016
 
OSC2014.Enterprise Zabbix-JobScheduler連携ツールHyClopsJobMonitoringによる運用システムOSS化の実現
OSC2014.Enterprise Zabbix-JobScheduler連携ツールHyClopsJobMonitoringによる運用システムOSS化の実現OSC2014.Enterprise Zabbix-JobScheduler連携ツールHyClopsJobMonitoringによる運用システムOSS化の実現
OSC2014.Enterprise Zabbix-JobScheduler連携ツールHyClopsJobMonitoringによる運用システムOSS化の実現Daisuke Ikeda
 
Brocade SDN Controller -Sample Code for Brocade vRouter-
Brocade SDN Controller -Sample Code for Brocade vRouter-Brocade SDN Controller -Sample Code for Brocade vRouter-
Brocade SDN Controller -Sample Code for Brocade vRouter-Brocade
 

Similar to PowerShellを使用したWindows Serverの管理 (20)

Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
 
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
 
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニックTech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
 
仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製する仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製する
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
Hyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理するHyper-V を Windows PowerShell から管理する
Hyper-V を Windows PowerShell から管理する
 
System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
SC2012 VMM SP1 Update ヒーロー島 版
SC2012 VMM SP1 Update ヒーロー島 版SC2012 VMM SP1 Update ヒーロー島 版
SC2012 VMM SP1 Update ヒーロー島 版
 
AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...
AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...
AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
 
PowerShell and Release Management Server
PowerShell and  Release Management ServerPowerShell and  Release Management Server
PowerShell and Release Management Server
 
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動
 
OSC2014.Enterprise Zabbix-JobScheduler連携ツールHyClopsJobMonitoringによる運用システムOSS化の実現
OSC2014.Enterprise Zabbix-JobScheduler連携ツールHyClopsJobMonitoringによる運用システムOSS化の実現OSC2014.Enterprise Zabbix-JobScheduler連携ツールHyClopsJobMonitoringによる運用システムOSS化の実現
OSC2014.Enterprise Zabbix-JobScheduler連携ツールHyClopsJobMonitoringによる運用システムOSS化の実現
 
AWS Tools for Windows PowerShell
AWS Tools for Windows PowerShellAWS Tools for Windows PowerShell
AWS Tools for Windows PowerShell
 
Brocade SDN Controller -Sample Code for Brocade vRouter-
Brocade SDN Controller -Sample Code for Brocade vRouter-Brocade SDN Controller -Sample Code for Brocade vRouter-
Brocade SDN Controller -Sample Code for Brocade vRouter-
 

More from junichi anno

V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...junichi anno
 
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティMicrosoft Azure のセキュリティ
Microsoft Azure のセキュリティjunichi anno
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADjunichi anno
 
Azure AD による Web API の 保護
Azure AD による Web API の 保護 Azure AD による Web API の 保護
Azure AD による Web API の 保護 junichi anno
 
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~junichi anno
 
個人情報を守るための アプリケーション設計(概要)
個人情報を守るためのアプリケーション設計(概要)個人情報を守るためのアプリケーション設計(概要)
個人情報を守るための アプリケーション設計(概要)junichi anno
 
IoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on AzureIoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on Azurejunichi anno
 
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計junichi anno
 
Azureの管理権限について
Azureの管理権限について Azureの管理権限について
Azureの管理権限について junichi anno
 
Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版junichi anno
 
リソーステンプレート入門
リソーステンプレート入門リソーステンプレート入門
リソーステンプレート入門junichi anno
 
File Server on Azure IaaS
File Server on Azure IaaSFile Server on Azure IaaS
File Server on Azure IaaSjunichi anno
 
Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版junichi anno
 
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...junichi anno
 
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版junichi anno
 
Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計junichi anno
 
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現junichi anno
 
SaaS としての IDM の役割
SaaS としての IDM の役割SaaS としての IDM の役割
SaaS としての IDM の役割junichi anno
 
クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割junichi anno
 

More from junichi anno (20)

V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
 
Microsoft Azure のセキュリティ
Microsoft Azure のセキュリティMicrosoft Azure のセキュリティ
Microsoft Azure のセキュリティ
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
 
Azure AD による Web API の 保護
Azure AD による Web API の 保護 Azure AD による Web API の 保護
Azure AD による Web API の 保護
 
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
Azure ad の導入を検討している方へ ~ active directory の構成パターンと正しい認証方式の選択~
 
Azure Key Vault
Azure Key VaultAzure Key Vault
Azure Key Vault
 
個人情報を守るための アプリケーション設計(概要)
個人情報を守るためのアプリケーション設計(概要)個人情報を守るためのアプリケーション設計(概要)
個人情報を守るための アプリケーション設計(概要)
 
IoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on AzureIoT のセキュリティアーキテクチャと実装モデル on Azure
IoT のセキュリティアーキテクチャと実装モデル on Azure
 
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
DevSecOps: セキュリティ問題に迅速に対応するためのパイプライン設計
 
Azureの管理権限について
Azureの管理権限について Azureの管理権限について
Azureの管理権限について
 
Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版
 
リソーステンプレート入門
リソーステンプレート入門リソーステンプレート入門
リソーステンプレート入門
 
File Server on Azure IaaS
File Server on Azure IaaSFile Server on Azure IaaS
File Server on Azure IaaS
 
Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版Windows File Service 総復習-Windows Server 2012 R2編 第1版
Windows File Service 総復習-Windows Server 2012 R2編 第1版
 
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
Active Directory のクラウド武装化計画 V2~"AD on Azure IaaS" or "Windows Azure Active Di...
 
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
勉強会キット Windows Server 2012 R2 評価版 BYOD 編 v2 20131020 版
 
Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計Vdi を より使いやすいインフラにするためのセキュリティ設計
Vdi を より使いやすいインフラにするためのセキュリティ設計
 
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
 
SaaS としての IDM の役割
SaaS としての IDM の役割SaaS としての IDM の役割
SaaS としての IDM の役割
 
クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割クラウドにおける Windows Azure Active Directory の役割
クラウドにおける Windows Azure Active Directory の役割
 

Recently uploaded

2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-LoopへTetsuya Nihonmatsu
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~arts yokohama
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦Sadao Tokuyama
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfMatsushita Laboratory
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見Shumpei Kishi
 

Recently uploaded (12)

2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
 
2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 
2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 

PowerShellを使用したWindows Serverの管理

  • 1. Windows PowerShell による Server Core の環境設定と操作 マ゗クロソフト株式会社 エバンジェリスト 安納 順一 Anno Junichi http://blogs.technet.com/junichia/ 1
  • 2. 本日の目的 従来のWindows Script にかわる PowerShell を使用したさまざまな管理手法 PowerShell でしかできないこと 2
  • 3. Agenda PowerShell を使用して以下の作業を行います • OSの基本設定 • Hyper-V 環境の管理 • Active Directory の管理 • EventLog の管理 3
  • 5. OSの基本設定 Windows Server 2008 R2 Server Core では簡易GUIを提供 Sconfig.cmd 5
  • 6. PowerShell の゗ンストールと環境設定 ここからPowerShellコンソール • WinRMサービスを起動 Set-WSManQuickConfig • WinRMサービスを「自動」に設定 • WinRM リスナを作成 • WS-Management(HTTP)のFirewall例外を有効にする 6 • PowerShell セッション構成を有効にする
  • 8. PowerShell Remoting 複数のリモートコンピューターを管理 方法1:コンピュータ名を並べて指定 方法2:コンピュータ名一覧をテキストファイルで用意 c:¥tmp¥hosts.txt 8
  • 9. (参考)Server Core がWGの場合 クラ゗ゕント側の TrustedHosts に Server Core を追加する 9
  • 13. 画面の解像度 (例)43882AFB-EB1A-406B-98F8-BDC4D019D84E 13
  • 14. (参考)PowerShellを使わない場合 作業 初期状態 操作方法、コマンド例 パスワード変更 未設定 ログオン時に実施 コンピュータ名の変更 ランダム Netdom renamecomputer %computername% /NewName:Server2008-01 ネットワーク環境設定 DHCP Netsh interface ipv4 show interfaces Netsh interface ipv4 add address name=“ローカルエリゕ 接続” address=“192.168.7.100” mask=“255.255.255.0” gateway=192.168.7.254” Netsh interface ipv4 add dnsserver name=“ローカル エリ ゕ接続” 192.168.7.11 index=1 WSHのエンジン変更 wscript Cscript.exe //h:cscript (エンジンを cscript にする) Windows Update設定 未設定 Scregedit.wsf /AU 4 (自動更新を有効にする) 電源管理系機能の設定 Powercfg.exe 役割と機能の追加 未 Oclist.exe で一覧参照、Ocsetup.exeで゗ンストール ドメ゗ン参加 Netdom join %computername% /domain:<domainName> /userd:<domainName>¥<userName> /passwordd:<password> シャットダウン、再起動、ログオフ Shutdown.exe (再起動時は /r ), logoff.exe 14
  • 15. Server Core の管理゗メージ コマンドプロンプト コマンドプロンプト MMC/Server Manager /PowerShellコンソール /PowerShellコンソール /リモードデスクトップ Server Core Remote PC 15
  • 16. リモートからの管理を有効にする • MMC • リモートデスクトップサービス • Server Manager • Windows PowerShell(実施済み) 16
  • 17. MMCを使用したリモート管理を有効にする sconfig.cmd の中で実行している内容 17
  • 21. Server Core 上の Hyper-V を管理するには • Hyper-V マネージャーから(リモート) • GUIからHyper-Vを管理 • OSの゗ンストール、OSの操作も可能 • System Center Virtual Machine Manager から(リモート) • 合理化されたGUIからHyper-Vを管理 • OSの゗ンストール、操作も可能 • 専用のPowerShellコマンドレットも用意 • WMIを使用してPowerShell から(リモート,ローカル) • コマンドラ゗ンからHyper-Vを管理 • (通信可能であれば)OSの操作が可能 リモート • OSの゗ンストールが行えない ローカル Server Core 21
  • 22. root¥virtualization 内のクラス一覧 MSVM_VirtualSystemManagementServiceSettingData MSVM_virtualSystemManagementService MSVM_ShutdownComponent MSVM_SwitchLANEndpoint MSVM_SyntheticEthernetPortSettingData MSVM_VirtualSwitchManagementService MSVM_VirtualSystemGlobalSettingData MSVM_VirtualSystemSettingData MSVM_EmulatedEthernetPortSettingData MSVM_Vlanendpoint MSVM_ExternalEthernetPort MSVM_AllocationCapabilities MSVM_HeartbeatComponent MSVM_ComputerSystem MSVM_InternalEthernetPort MSVM_DiskDrive MSVM_KvpExchangeComponent MSVM_SwitchPort MSVM_KvpExchangeDataItem MSVM_VirtualSwitch MSVM_MemorySettingData MSVM_MountedStorageImage MSVM_Processor MSVM_ProcessorSettingData MSVM_ResourceAllocationSettingData MSVM_ResourcePool MSVM_SettingsDefineCapabilities 22
  • 24. Msvm_VirtualSystemManagementService クラス Hyper-Vの全体的な管理を行うクラス メソッド一覧 AddKvpItems ImportVirtualSystem AddVirtualSystemResources ImportVirtualSystemEx ApplyVirtualSystemSnapshot InstantiateVirtualSystem ApplyVirtualSystemSnapshotEx ModifyKvpItems CheckSystemCompatibilityInfo ModifyServiceSettings CloneVirtualSystem ModifyVirtualSystem CreateVirtualSystemSnapshot ModifyVirtualSystemResources DefineVirtualSystem PlanVirtualSystem DestroyVirtualSystem RemoveKvpItems ExportVirtualSystem RemoveVirtualSystemResources ExportVirtualSystemEx RemoveVirtualSystemSnapshot FormatError RemoveVirtualSystemSnapshotTree GetSummaryInformation RequestStateChange GetSystemCompatibilityInfo StartService GetVirtualSystemImportSettingData StopService GetVirtualSystemThumbnailImage 24
  • 26. (参考)PowerShell modules for Hyper-V Codeplex で提供されているPowerShellコマンドレット群 2009年11月30日時点で ベータ版 http://pshyperv.codeplex.com/ 26
  • 27. Active Directory を管理する + Eventlog を管理する 27
  • 28. AD DS を管理するための準備 • Active Directoryモジュールの読み込み • Active Directory 関連コマンド一覧の参照 28
  • 29. (参考)Windows PowerShell ADモジュール一覧 Add-ADComputerServiceAccount Add-ADDomainControllerPasswordReplicationPolicy Add-ADFineGrainedPasswordPolicySubject Add-ADGroupMember Add-ADPrincipalGroupMembership Get-ADAccountAuthorizationGroup Get-ADAccountResultantPasswordReplicationPolicy Clear-ADAccountExpiration Get-ADComputer Get-ADComputerServiceAccount Disable-ADAccount Get-ADDefaultDomainPasswordPolicy Disable-ADOptionalFeature Get-ADDomain Get-ADDomainController Enable-ADAccount Get-ADDomainControllerPasswordReplicationPolicy Enable-ADOptionalFeature Get-ADDomainControllerPasswordReplicationPolicyUsage Get-ADFineGrainedPasswordPolicy Get-ADFineGrainedPasswordPolicySubject Get-ADForest Get-ADGroup Get-ADGroupMember Get-ADObject Get-ADOptionalFeature Get-ADOrganizationalUnit Get-ADPrincipalGroupMembership Get-ADRootDSE Get-ADServiceAccount Get-ADUser Get-ADUserResultantPasswordPolicy 29
  • 30. Install-ADServiceAccount Search-ADAccount Move-ADDirectoryServer Set-ADAccountControl Move-ADDirectoryServerOperationMasterRole Set-ADAccountExpiration Move-ADObject Set-ADAccountPassword Set-ADComputer New-ADComputer Set-ADDefaultDomainPasswordPolicy New-ADFineGrainedPasswordPolicy Set-ADDomain New-ADGroup Set-ADDomainMode New-ADObject Set-ADFineGrainedPasswordPolicy New-ADOrganizationalUnit Set-ADForest New-ADServiceAccount Set-ADForestMode New-ADUser Set-ADGroup Set-ADObject Remove-ADComputer Set-ADOrganizationalUnit Remove-ADComputerServiceAccount Set-ADServiceAccount Remove-ADDomainControllerPasswordReplicationPolicy Set-ADUser Remove-ADFineGrainedPasswordPolicy Remove-ADFineGrainedPasswordPolicySubject Uninstall-ADServiceAccount Remove-ADGroup Remove-ADGroupMember Unlock-ADAccount Remove-ADObject Remove-ADOrganizationalUnit Remove-ADPrincipalGroupMembership Remove-ADServiceAccount Remove-ADUser Rename-ADObject Reset-ADServiceAccountPassword Restore-ADObject 30
  • 32. AD DS をブラウズ PS C:>cd AD: PS AD:>dir Name ObjectClass DistinguishedName ------------------------------------------------------------------------- Contoso domainDNS dc=Contoso,dc=Com Configuration configuration cn=Configuration,dc=contoso,… Schema dMD cn=schema,cn=Configuration,… ・ ・ PS AD:¥>cd ‘.¥DC=Contoso,DC=Com’ PS AD:¥DC=Contoso,DC=Com>dir Name ObjectClass DistinguishedName ------------------------------------------------------------------------- Builtin BuiltinDomain cn=Builtin,dc=contoso,dc=com Computers container cn=Computers,dc=contoso,dc… ・ ・ 32
  • 33. 特定条件のユーザーを検索① • ユーザーIDに test を含むユーザーを検索する • 無効化されたユーザーを検索する • パスワードの有効期限が切れたユーザーを検索する • ゕカウントの有効期限が切れたユーザーを検索する • ロックされたユーザーを検索する • パスワードが無期限のユーザーを検索する 33
  • 34. 特定条件のユーザーを検索② • 1年間ログオンしていないユーザーを検索する ※ただし最近作成したユーザーは除外する この間にログオンしていないユーザー 除外 今から365日前 2009/11/18 17:00:00 34
  • 35. ユーザーを作成 #ドメ゗ンに移動 cd AD: cd ‘.¥DC=contoso,DC=com’ #OUを作成 New-ADOrganizationalUnit “TESTOU” #OUに移動 cd ‘.¥OU=TESTOU’ #ユーザーを作成 New-ADUser –Name “itanaka” -UserPricipalName “itanaka@demodomain.com” -displayName “田中 一郎” 35
  • 36. UserAccountControl フラグ の設定 Set-AccountControl –Identity “<UserID>” -AccountNotDelegated $True | $False ゕカウントは重要なので委任できない -AllowReversiblePasswordEncryption $True | $False 暗号化を元に戻せるパスワードで保存する -AuthType {Negotiate | Basic} 使用する認証方式 -CannotChangePassword <bool> ユーザーはパスワードを変更できない -DoesNotRequirePreAuth <bool> Kerberos事前認証を必要としない -Enabled <bool> ゕカウントの有効/無効 -HomedirRequired <bool> ゕカウントにホーム デゖレクトリが必要であるかどうか -MNSLogonAccount <bool> マジョリテゖ ノード セットログオン ゕカウントであるかどうか -Partition <DN> Active Directory パーテゖションの識別名 -PasswordNeverExpires <bool> パスワードを無期限にする -PasswordNotRequired <bool> ユーザーは次回ログオン時にパスワード変更が必要 -TrustedForDelegation <bool> 任意のサービスへの委任でこのユーザーを信頼する -TrustedToAuthForDelegation <bool> このゕカウントで委任を使用できる -UseDESKeyOnly <bool> このゕカウントにKerberos DES暗号化を使う 36
  • 37. パスワード Set-ADAccountPassword -Identity <ADAccount> -NewPassword <SecureString> -OldPassword <SecureString> Set-ADAccountPassword -Identity <ADAccount> -NewPassword <SecureString> -Reset <switch> 37
  • 38. PowerShellでしかできない削除ユーザーの復活 Active Directory Recycle Bin 機能 削除したユーザーを完全復活! 既定で180日間保持(変更可能) 削除状態からの復旧であればAuthoritative Restoreは不要 属性情報の紛失時には使えない Linked-Value も完全復活 グループメンバーシップやグループメンバー など 留意事項(ご参考) Active Directory フォレスト機能レベル Windows Server 2008 R2 規定では無効(有効にしたら元には戻せない) DITの容量が10~15%程度増加(目安) 操作は Windows PowerShell を使用 38
  • 39. Active Directory Recycle Bin 「削除済」からの完全復旧 削除 Lifetime Lifetime 操作 180 Days 180 Days 有効 削除済 リサ゗クル済 消滅 Garbage Collection ・ ・ ・ ・ ・ ・ 39
  • 40. (参考)ラ゗フタ゗ムを変更するには 削除済オブジェクト の ライフタイム を変更する リサイクル済オブジェクトのライフタイムを変更する 40
  • 41. Recycle Binを使用するための準備 フォレストの機能レベルを「2008 R2」にする 「ゴミ箱」を有効にする 41
  • 43. Active Directory Recycle Bin のメカニズム 削除されるとDeleted Objects コンテナに移動 IsDeleted属性が Trueに 全てのオブジェクトがフラットに並ぶ RDN(識別名)が書き換えられる <現在のRDN>¥0ADEL:<GUID> CN=Deleted Objects OU=Finance CN=Robert¥0ADEL:… CN=Robert CN=Mark¥0ADEL:… CN=Mark CN=Tom¥0ADEL:… CN=Tom CN=Sally¥0ADEL:… OU=Admins OU=Admins¥0ADEL:… CN=Sally OU=Finance¥0ADEL:... 43
  • 44. ツリー構造の復旧はルートから行う 復旧は親から順に行う 親オブジェクトが存在しない場合にエラー 親はlastKnownParent 属性に入っている まずは ここから CN=Deleted Objects OU=Finance CN=Robert¥0ADEL:… CN=Robert CN=Mark¥0ADEL:… CN=Mark CN=Tom¥0ADEL:… CN=Tom CN=Sally¥0ADEL:… OU=Admins OU=Admins¥0ADEL:… CN=Sally OU=Finance¥0ADEL:... 44
  • 47. ユーザーIDのプロビジョニング - After Windows Server 2008 R2では 各種属性 所属グループ メンバーシップ 47
  • 48. ユーザーIDのプロビジョニング - After+ さらなる内製化 各種属性 所属グループ メンバーシップ 監査ログ 48
  • 51. ゗ベントID 5136 department 属性が 「営業部」から「経理部」に変わったことがわかる 51
  • 54. AD Recycle Bin + PowerShell + 監査ログ 業務に与える゗ンパクト データ復旧時のシステム停止時間を大幅に削減 従来 Authoritative Restore によるバックゕップからの復元 Snapshot から取り出し(Windows Server 2008) 今後 Windows PowerShell によって簡単に復元 局所的に復元が可能 簡易的なユーザーIDプロビジョニングシステムの実現 導入コストの大幅な軽減 中小規模システムへの適用が可能に 54
  • 55. まとめ 55
  • 56. まとめ 難しくて面倒なWMIが身近に コードの量が半分以下に(VBS比) 慣れたコマンドを併用可能 GUIでは知りえない情報も取得 今後、多くのServer製品にコマンドレットが付属 56
  • 57. 57
  • 58. Appndix - WMI による Windows Server の 監視 (VBScript編) 58
  • 59. WMI とは Windows Management Instrumentation WBEM/CIMに準拠 各種管理情報への共通゗ンターフェース Windows Management Serviceとして実装 Windows 2000以上のOSに標準搭載 WMIプロバ゗ダはベンダーが拡張可能 別途エージェントは一切必要なし もちろんタダ! 59
  • 60. 60
  • 61. WMI にゕクセスするには バッチフゔ゗ルから WMICコマンド(Windows XP以降) Windows Script Host から Windows PowerShell から Visual Studio から GUIツールから WMI Admin Tools など 61
  • 62. WMIの構造 %WinDir%¥System32¥wbem 配下の mof (Managed Object Format) フゔ゗ルに定義されている Namespace によって使える Namespace Class が異なることに注意 規定のNamespaceは Class Root¥CIMV2 (例) ROOT¥COMV2 Win32_OperatingSystem Win32_NTLogEventLog ・ ・ ROOT¥Default STDREGPROV ROOT¥microsoft¥SqlServer¥ComputerManagement10 SqlService ・ 62 ・
  • 63. WMIの主役 Win32_クラス 一部抜粋 Win32_ActiveRoute Win32_ModuleTrace Win32_ComputerShutdownEvent Win32_NamedJobObject Win32_ComputerSystemEvent Win32_NTDomain Win32_ConnectionShare Win32_PingStatus Win32_CurrentTime Win32_ProcessStartTrace Win32_DeviceChangeEvent Win32_ProcessStopTrace Win32_DiskQuota Win32_Proxy Win32_GroupInDomain Win32_QuotaSetting Win32_IP4PersistedRouteTable Win32_ServerConnection Win32_IP4RouteTable Win32_SessionConnection Win32_IP4RouteTableEvent Win32_TokenGroups Win32_JobObjectStatus Win32_TokenPrivileges Win32_LoggedOnUser Win32_VolumeChangeEvent Win32_LogonSession Win32_WindowsProductActivation Win32_LogonSessionMappedDisk Win32_ControllerHasHub Win32_NetworkAdapter ・ Win32_ComputerSystem ・ ・ ・ ・ 63
  • 64. WMI Tools ~ CIM Studio ブラウザを使用して、WMIの構造、実際の゗ンスタンスを確認 クエリを発行して戻り値を確認 リモートコンピュータに接続も可能 64
  • 66. WMI Scriptingの基本形 'SWbemLocator オブジェクトの作成 Set Locator = CreateObject("WbemScripting.SWbemLocator") ‘ローカルコンピュータへの接続 Set Service = Locator.ConnectServer("", "root¥cimv2", "", "") ‘クエリーの定義(WQL:WMI Query Language) strQuery = "Select * from Win32_NetworkAdapterConfiguration " & _ "where IPEnabled = True" ‘クエリーの実行(インスタンスを取得する) Set objNet = Service.ExecQuery(strQuery) '結果の参照 For each n in objNet WScript.Echo n.caption WScript.Echo n.MACAddress Next 66
  • 67. WMIスクリプトの実行権限 リモートコンピュータに対するゕクセス権の取得 Set Service = Locator.ConnectServer(RemoteHost,Namespace,User,Password) 特殊権限の取得 Set Locator = CreateObject("WbemScripting.SWbemLocator") Set Service = Locator.ConnectServer("DC01", "root¥cimv2", "Dom¥administrator", "pass") Service.Security_.Privileges.AddAsString "SeBackupPrivilege", True Service.Security_.Privileges.AddAsString "SeSecurityPrivilege", True strQuery = "Select * from Win32_NTEventlogFile" & _ " Where LogfileName = 'Security' " Set obj = Service.ExecQuery(strQuery) For each n in obj r = n.BackupEventLog("C:¥tmp¥Security.evt") Next 67
  • 71. ゗ベントの監視 システムで発生した゗ベントをトリガーとして処理を実行 一時監視と永続的監視 以下の゗ベント監視用クラスが用意されている __InstanceCreationEvent あたらしい゗ンスタンスが作成された __InstanceModificationEvent ゗ンスタンスの属性が変更された __InstanceDeletionEvent 既存の゗ンスタンスが削除された 71
  • 72. 監視の゗メージ ゗ベントログに゗ベ WORDが起動 ントが書かれた USBデバ゗スが挿された タ゗ムゾーンが変更 ユーザーがログオン IPゕドレス変更 シャットダウン メモ帳が終了 72
  • 73. 一時的な監視例① __InstanceCreationEventによる新たに作成されたインスタンスの監視 Set objLocator = CreateObject("WbemScripting.SWbemLocator") Set objService = objLocator.ConnectServer(TargetComputer, _ "", AdminUser, AdminPass) strQueryCreate = "Select * " & _ "FROM __InstanceCreationEvent WITHIN 5 " & _ 監視したい "WHERE TargetInstance ISA 'Win32_Process' " クラス Set objEventsCreation = objService.ExecNotificationQuery(strQueryCreate) Do Set CreationEvent = objEventsCreation.Nextevent ProcessName = CreationEvent.TargetInstance.Name Win32_Procass Wscript.Echo ProcessName のプロパテゖ Loop 73
  • 74. 一時的な監視例② __InstanceModificationEventによるユーザーログオンの監視 Set objLocator = CreateObject("WbemScripting.SWbemLocator") Set objService = objLocator.ConnectServer(TargetComputer, _ ‚ROOT¥CIMV2", AdminUser, AdminPass) strQuery= "Select * " & _ "FROM __InstanceModificationEvent WITHIN 5 " & _ "WHERE TargetInstance ISA 'Win32_ComputerSystem' " Set objEventsModification = objService.ExecNotificationQuery(strQuery) Do Set ModificationEvent = objEventsModification.Nextevent UserName = ModificationEvent.TargetInstance.UserName Wscript.Echo UserName Loop 74
  • 75. そこでこんな方法… 現在のログオンセッション一覧をキャッシュ ログオンしたらセッション作成 ログオフしたらセッション削除 ログオン時に割り振られた番号 ログオンのタ゗プ(対話、ネットワーク…) 現在ログオンしているユーザーのユーザーIDとログ オンIDをキャッシュ ログオンしたユーザーID ログオン時に割り振られた番号 75
  • 76. 一時的な監視例③ __InstanceCreationEventによるユーザーログオンの監視 Set objLocator = CreateObject("WbemScripting.SWbemLocator") Set objService = objLocator.ConnectServer("demo2008", "ROOT¥CIMV2", "", "") Wscript.Echo "接続が完了しました" strQueryCreate = "Select * FROM __InstanceCreationEvent WITHIN 5 " & _ "WHERE TargetInstance ISA 'Win32_LogonSession' ‚ Set objEventsCreation = objService.ExecNotificationQuery(strQueryCreate) Do Set CreationEvent = objEventsCreation.Nextevent LogonId= CreationEvent.TargetInstance.LogonID LogonType = CreationEvent.TargetInstance.LogonType strQueryLU = "Select * " & _ ‚FROM Win32_LoggedOnUser‛ ' Where Dependent like ‘%" & LogonId & "%’‚ Set objLoggedOnUser = objService.ExecQuery(strQueryLU) For Each u in objLoggedOnUser If instr(u.Dependent, LogonId) Then Wscript.Echo u.Antecedent ユーザーID Wscript.Echo u.Dependent ログオンID End If Next Loop 76
  • 77. 一時的な監視例③‘ (③をブラッシュアップ) Set objLocator = CreateObject("WbemScripting.SWbemLocator") Set objService = objLocator.ConnectServer("demo2008", "ROOT¥CIMV2", "", "") Wscript.Echo "接続が完了しました" strQueryCreate = "Select * FROM __InstanceCreationEvent WITHIN 5 " & _ "WHERE TargetInstance ISA 'Win32_LogonSession' ‚ Set objEventsCreation = objService.ExecNotificationQuery(strQueryCreate) Do Set CreationEvent = objEventsCreation.Nextevent LogonId= CreationEvent.TargetInstance.LogonID LogonType = CreationEvent.TargetInstance.LogonType Select Case LogonType Case 0 strLogonType = "System" Case 2 strLogonType = "Interactive" Case 3 strLogonType = "Network" Case 4 strLogonType = "Batch" Case 5 strLogonType = "Service" Case 6 strLogonType = "Proxy" Case 7 strLogonType = "Unlock" Case 8 strLogonType = "NetworkClearText" Case 9 strLogonType = "NewCredentials" Case 10 strLogonType = "RemoteInteractive(TS)" Case 11 strLogonType = "CachedInteractive" Case 12 strLogonType = "CachedRemoteInteractive" Case 13 strLogonType = "CachedUnlock" End Select 77
  • 78. strQueryLoggedOnUser = "Select * " & _ "FROM Win32_LoggedOnUser" Set objLoggedOnUser = objService.ExecQuery(strQueryLoggedOnUser) For Each u in objLoggedOnUser If instr(u.Dependent, LogonId) Then arrAntecedent = Split(u.Antecedent,".") Wscript.Echo Date & "," & Time & "," & _ LogonId & "," & arrAntecedent(2) & "," & strLogonType Exit For End If Next Loop 78
  • 79. 一時的な監視例④ __InstanceDeletionEventによるユーザーログオフの監視 Set objLocator = CreateObject("WbemScripting.SWbemLocator") Set objService = objLocator.ConnectServer("demo2008", "ROOT¥CIMV2", "", "") Wscript.Echo "接続が完了しました" strQueryCreate = "Select * " & _ "FROM __InstanceDeletionEvent WITHIN 5 " & _ "WHERE TargetInstance ISA 'Win32_LogonSession' " Set objEventsDeletion = objService.ExecNotificationQuery(strQueryCreate) Do Set DeletionEvent = objEventsDeletion.Nextevent LogonId= DeletionEvent.TargetInstance.LogonID LogonType = DeletionEvent.TargetInstance.LogonType Wscript.Echo Date & "," & Time & "," & LogonId & "," & strLogonType Loop セッションの削除はログオフしてから1分程度を要する 79
  • 80. ③’と④を組み合わせると ログオンID をキーにしてログデータベースに書き込むことでサーバー を使用したユーザーの履歴を管理できる ログDB ServerName LogonID LogonType LogonDateTime LogoffDateTime Domain UserID demo2008 5443965 Interactive 2009/03/01 2009/03/01 dom anno 10:00:00 12:15:30 demo2008 6220879 TS 2009/03/01 2009/03/01 dom administrator 12:00:00 13:10:01 80
  • 82. ゗ベントコンシューマ イベントコンシューマとは…. システムで発生したイベントをトリガーに特定のアクションを 実行する機構 • ActiveScriptEventConsumer – イベントが発生したらスクリプトを実行 • LogFileEventConsumer – ゗ベントが発生したらテキストフゔ゗ルに書き込み • NTEventLogEventConsumer – ゗ベントが発生したら゗ベント • SMTPEventConsumer – ゗ベントが発生したらメール送信 • CommandLineEventConsumer – ゗ベントが発生したらコマンドを実行 システムに登録されるのでログオンする必要が無い ただし、監視できるのはローカルコンピュータ 82
  • 83. MOFフゔ゗ルによる永続的監視 ActiveScriptEventConsumerによるmofフゔ゗ルの例 #pragma namespace("¥¥¥¥.¥¥root¥¥subscription") instance of ActiveScriptEventConsumer as $Cons { Name = "LogonUserLogging"; ScriptingEngine = "VBScript"; ScriptFileName = "c:¥¥tmp¥¥demoscript¥¥wmisample08.vbs"; }; instance of __EventFilter as $Filt { Name = "LogonUser"; Query = "SELECT * FROM __InstanceCreationEvent WITHIN 5 " "WHERE TargetInstance ISA ¥"Win32_LogonSession¥" "; QueryLanguage = "WQL"; EventNamespace = "root¥¥cimv2"; }; instance of __FilterToConsumerBinding { Filter = $Filt; Consumer = $Cons; 83 };
  • 85. 呼び出されるスクリプト(③‘’) Set objLocator = CreateObject("WbemScripting.SWbemLocator") Set objService = objLocator.ConnectServer("demo2008", "ROOT¥CIMV2", "", "") Set objFS = CreateObject("Scripting.FileSystemObject") Wscript.Echo "接続が完了しました" strQueryCreate = "Select * FROM __InstanceCreationEvent WITHIN 5 " & _ "WHERE TargetInstance ISA 'Win32_LogonSession' ‚ Set objEventsCreation = objService.ExecNotificationQuery(strQueryCreate) Do Set CreationEvent = objEventsCreation.Nextevent LogonId= CreationEventTargetEvvent.TargetInstance.LogonID LogonType = CreationEventTargetEvent.TargetInstance.LogonType Select Case LogonType Case 0 strLogonType = "System" Case 2 strLogonType = "Interactive" Case 3 strLogonType = "Network" Case 4 strLogonType = "Batch" Case 5 strLogonType = "Service" Case 6 strLogonType = "Proxy" Case 7 strLogonType = "Unlock" Case 8 strLogonType = "NetworkClearText" Case 9 strLogonType = "NewCredentials" Case 10 strLogonType = "RemoteInteractive(TS)" Case 11 strLogonType = "CachedInteractive" Case 12 strLogonType = "CachedRemoteInteractive" Case 13 strLogonType = "CachedUnlock" End Select 85
  • 86. strQueryLoggedOnUser = "Select * FROM Win32_LoggedOnUser" Set objLoggedOnUser = objService.ExecQuery(strQueryLoggedOnUser) For Each u in objLoggedOnUser If instr(u.Dependent, LogonId) Then arrAntecedent = Split(u.Antecedent,".") Set objLogFile = objFS.OpenTextFile("C:¥tmp¥demoscript¥userlog.txt",8,True) objLogFile.WriteLine Date & "," & Time & "," & LogonId & "," & _ arrAntecedent(2) & "," & strLogonType objLogFile.Close Wscript.Echo Date & "," & Time & "," & _ LogonId & "," & arrAntecedent(2) & "," & strLogonType Exit For End If Next Loop 86
  • 87. リソース MSDN - Windows Management Instrumentation http://msdn.microsoft.com/en-us/library/aa394582(VS.85).aspx Script Guy! http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/ default.mspx 87
  • 88. 88