Src/Session.cs
using System;
using System.IO; using System.Xml; using System.Reflection; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Management.Automation; using Microsoft.EnterpriseManagement; using Microsoft.EnterpriseManagement.Common; using Microsoft.EnterpriseManagement.Configuration; using Microsoft.EnterpriseManagement.Subscriptions; using Microsoft.EnterpriseManagement.Configuration.IO; using System.Text.RegularExpressions; namespace SMLets { [Cmdlet(VerbsCommon.Get, "SCSMWhoAmI")] public class GetSCSMWhoAmICommand : ObjectCmdletHelper { private SwitchParameter _raw; [Parameter] public SwitchParameter Raw { get { return _raw; } set { _raw = value; } } protected override void ProcessRecord() { base.ProcessRecord(); string userName = _mg.GetUserName(); if (Raw) { WriteObject(userName); } else { WriteObject(UserHelper.GetUserObjectFromString(_mg, userName, this)); } } } [Cmdlet(VerbsCommon.Get, "SCSMConnectedUser")] public class GetSCSMConnectedUserCommand : ObjectCmdletHelper { private SwitchParameter _raw; [Parameter] public SwitchParameter Raw { get { return _raw; } set { _raw = value; } } protected override void ProcessRecord() { base.ProcessRecord(); foreach (string s in _mg.GetConnectedUserNames()) { if (Raw) { WriteObject(s); } else { WriteObject(UserHelper.GetUserObjectFromString(_mg, s, this)); } } } } #region SCSMSession cmdlets [Cmdlet("New","SCSMSession")] public class NewSCSMSession : SMCmdletBase { private SwitchParameter _passthru; [Parameter] public SwitchParameter PassThru { get { return _passthru; } set { _passthru = value; } } protected override void ProcessRecord() { if ( PassThru ) { WriteObject(_mg); } } } [Cmdlet("Get","SCSMSession")] public class GetSCSMSession : PSCmdlet { private string _computerName = ".*"; [Parameter(Position=0,ValueFromPipeline=true)] public string ComputerName { get { return _computerName; } set { _computerName = value; } } private List<string> l = null; protected override void ProcessRecord() { l = ConnectionHelper.GetMGList(ComputerName); foreach(string n in l) { WriteObject(ConnectionHelper.GetMG(n)); } } } [Cmdlet("Remove","SCSMSession")] public class RemoveSCSMSession : PSCmdlet { private EnterpriseManagementGroup _emg; [Parameter(Mandatory=true,ValueFromPipeline=true,Position=0)] public EnterpriseManagementGroup EMG { get { return _emg; } set { _emg = value; } } protected override void ProcessRecord() { ConnectionHelper.RemoveMG(EMG.ConnectionSettings.ServerName); } } #endregion } |