2017年7月24日月曜日

System Center 2016用のSCOM管理パック

SC 2016 OMは自分自身で監視するわけですが、それ以外のSystem Center 2016コンポーネントであるDPM、Orchestrator、SM、SPF、VMMの管理パックについて調べていなかったので、自分用にメモします。
※大半は、2016年10月にリリースされています。

System Center Management Packs for Data Protection Manager 2016 Reporting, Discovery and Monitoring
日本語版含む、各国語版あり。

New MP: Microsoft System Center 2016 Management Pack for Orchestrator
Microsoft System Center 2016 Management Pack for Orchestrator
日本語版含む、各国語版あり。

New MP: Microsoft System Center Management Pack for System Center Service Manager
Microsoft System Center Management Pack for System Center Service Manager
英語版のみ。ただし、
System Center 2012 - Operations Manager and above,
System Center 2012 - Service Manager and above
です。(ダウンロードページより転記)

New MP: Microsoft System Center 2016 Management Pack for Service Provider Foundation (SPF)
Microsoft System Center 2016 Management Pack for Service Provider Foundation (SPF)
英語版のみ、Windows Server 2016向けのみ。

System Center 2016 Management Pack for Virtual Machine Manager
日本語版含む、各国語版あり。
いままで、Update Rollupを適用後、VMMインストールフォルダ配下から、管理パックをインポートしていましたが、別途リリースされていましたね。。。

2017年7月17日月曜日

SCOMコンソールからのエージェントをインストール/アンインストール時に失敗したとき

自分メモ。

Console based Agent Deployment Troubleshooting table
https://blogs.technet.microsoft.com/kevinholman/2009/01/27/console-based-agent-deployment-troubleshooting-table/

のコードを見ながら、トラブルシューティングすれば良いです。


「アンインストールメニューがグレーアウトでリモートからの削除不可」のケースもあったりします。

リモート管理できないエージェントで発生すること、下記情報に記載あります。
No option to remove agent from monitored client from Management server
http://www.systemcentercentral.com/forums-archive/topic/no-option-to-remove-agent-from-monitored-client-from-management-server/

よって、作業対象のサーバーにRDPで接続し、SCOMエージェントを削除後、新SCOMからプッシュインストールを試行すれば良い模様。

※ちなみに、リモート管理できないエージェントを管理可能にする、下記からたどれるアンサポートなSQLスクリプトもあるようですね。。。
SCOM RC2 Managed Agent options grayed out
https://social.technet.microsoft.com/Forums/systemcenter/en-US/a600cb2c-bba0-46c0-b2ac-7293e0f0f401/scom-rc2-managed-agent-options-grayed-out?forum=operationsmanagerdeployment

2017年7月9日日曜日

ServiceNowとSystem Center Orchestrator、Azure Automation

自分用メモ。

ServiceNowとSystem Center Orchestratorの連携では、まず3rd Partyがリリースしている統合パック(IP)があります。

INTEGRATION PACK FOR SERVICENOW
Automation for ServiceNow
The Integration Pack for ServiceNow is compliant with Microsoft System Center 2012 R2 Orchestrator or System Center 2016 Orchestrator.

上記ページからOrchestratorアクティビティの一覧を転記しておきます。
ServiceNow Activities

Create Record – activity dynamically creates new ServiceNow records using standard or customized ServiceNow forms.
Get Record – activity returns records meeting specific filter conditions
Update Record – activity updates specific records
Delete Record – activity deletes specific records
Monitor Record - monitor for new or updated ServiceNow records
Upload Attachment – activity uploads attachment to ServiceNow record
Download Attachment - activity downloads attachment from ServiceNow record
Import Set - activity inserts a record into a ServiceNow import set table
Run Query - retrieves records from a ServiceNow table using a ServiceNow encoded query string
Run Scripted Web Service - runs a ServiceNow scripted web service (Only in SOAP IP)

Activities subscribe and publish data to the Orchestrator databus.
ServiceNowのレコードに含まれて添付ファイルをダウンロードできるようなので、いろいろ使い道がありそうな気がしますね。

もう一つは、ServiceNow自体のOrchestrationです。こちらは、System Center Orchestratorとどう連携できるのか、まだ読み解いている最中ですが。
Orchestration
サポート対象と
3 What Systems Can Orchestration Automate?

VMware (through vCenter)
Amazon EC2 instances
Any system presenting web services
Windows Active Directory
Microsoft Exchange mail servers
Puppet Labs Puppet (with configuration automation)
Opscode Chef (with configuration automation)
Any system accessible from the command line
アクティビティのサマリを上記ページより転記します。
5 Orchestration Activities in Workflow

The Orchestration plugin adds these types of activities for use with workflows:

Basic Orchestration activities
SSH activities
Active Directory activities
VMware activities
Amazon EC2 activities
PowerShell activities
Puppet
Chef activities
Exchange activities

オンプレミス側の起点になりそうな、MID Server

ServiceNowとAzure Automation。
こちらいくつか情報を見つけましたので、下記に記載しておきます。



SCSMからSC Orchestratorに添付ファイルを持ってくる 2 - 自分メモ

前回からの続きな自分メモ。

いろいろ見た中で、
Neat Trick to Get SCSM Service Request Attachments
https://systemcenternoise.wordpress.com/2016/01/07/neat-trick-to-get-scsm-service-request-attachments/

をベースに考えてみることとしました。

ただ、SCSMの標準コマンドレットでは、SCSMのアクティビティに割り当てられるGUIDは取れそうもないようでした。
さらに調べてみたところ、PowerShell/SCSM - Finding the GUID of an objectを見つけてそこから
SMLetsというものを知り、GUIDが取れることがわかりました。

SCSM PowerShell Cmdlets

注)Codeplexは2017年12月にその役割を終えることになっています。
SMLetsは、GitHubに移行中とのこと(本稿執筆時点、2017/07/09)

SCSMにSMLetsをインストールして、アクティビティに含まれる添付ファイルをSCSMのローカルフォルダへダウンロードできるかをリモートホスト(この場合は、SC Orchestrator)のPowerShellから試しました。
今のところ、下記のコードでうまくいっているようです。ただ、SC Orchestratorのアクティビティとしての確認はできていません。
$Session=New-PSSession -ComputerName "scsmhost"
Invoke-Command -Session $session -ScriptBlock {
Import-Module 'C:\Program Files\Microsoft System Center\Service Manager\PowerShell\System.Center.Service.Manager.psd1'
Import-Module SMLets
$SMServer="scsmhost"
# SCSMのアクティビティIDを指定し、SMLetsのGet-SCSMObjectでGUIDを取得できるようにしています。# http://www.lazywinadmin.com/2014/09/powershellscsm-finding-guid-of-object.html
# http://smlets.codeplex.com/documentation Shutdown to Dec-2017
$ServiceRequest = Get-SCSMObject -Class (Get-SCSMClass -Name System.WorkItem.ServiceRequest) -filter "ID -eq SCSMのアクティビティIDを指定"
#
$SR=Get-SCClassInstance -ComputerName $SMServer –Id $ServiceRequest.get_id()
#英語環境で作ったはずですが、なぜかDisplayNameで日本語名を指定しないとうまくいきませんでした。
$targetclass=Get-SCSMRelationship -ComputerName $SMServer -DisplayName "添付ファイルがある" | where {$_.Source -eq (get-scsmclass -ComputerName $SMServer -Name System.WorkItem)}
# $targetclass=Get-SCSMRelationship -ComputerName $SMServer -DisplayName "Has File Attachment" | where {$_.Source -eq (get-scsmclass -ComputerName $SMServer -Name System.WorkItem)}
$files=$SR.GetRelatedObjectsWhereSource($targetclass)
$ArchiveRootPath="C:\Temp\OrchestratorRemote\"
#For each file, archive to entity folder
$filelist=@()
if($files -ne $Null)
{
#Create archive folder
$nArchivePath=$ArchiveRootPath + "" + $SR.Id
New-Item -Path ($nArchivePath) -ItemType "directory" -Force|Out-Null

$files|%{
Try
{
$filelist+="$nArchivePath$_"
$fileId=$_.EnterpriseManagementObject.Id
$fileobject=get-scsmclassinstance -ComputerName $SMServer -Id $fileId
$fs = [IO.File]::OpenWrite(($nArchivePath + "\" + $_.EnterpriseManagementObject.DisplayName))
$memoryStream = New-Object IO.MemoryStream
$buffer = New-Object byte[] 8192
[int]$bytesRead|Out-Null
while (($bytesRead = $fileobject.Content.Read($buffer, 0, $buffer.Length)) -gt 0)
{
$memoryStream.Write($buffer, 0, $bytesRead)
}
$memoryStream.WriteTo($fs)
}
Finally
{
$fs.Close()
$memoryStream.Close()
}
}
}
$file1=$filelist[0]
$file2=$filelist[1]
$file3=$filelist[2]
}

Remove-PSSession $Session