Команда Powershell для удаления элементов из кэша Appfabric - PullRequest
5 голосов
/ 02 апреля 2010

Есть ли команды powershell для:

  1. Получить список элементов в кеше
  2. Удалить конкретный предмет
  3. Удалить все предметы
  4. Изменить значение для определенного ключа

Я не нашел хорошего блога или учебника для начинающих, чтобы начать работать с администрированием кэширования Appfabric.

Спасибо!

1 Ответ

4 голосов
/ 03 апреля 2010

К сожалению, нет :-( В настоящее время команды PowerShell направлены на более высокий уровень детализации.

Однако ...

Вы можете написать свои собственные командлеты PowerShell, чтобы вы могли добавить дополнительные нужные вам: -)

В Интернете достаточно информации о написании пользовательских командлетов , но в качестве приблизительного руководства это будет примерно так. Создайте новый проект библиотеки классов на вашем языке. Добавьте ссылку на System.Management.Automation.dll - вы можете найти ее в C: \ Program Files \ Reference Assemblies \ Microsoft \ Powershell \ 1.0. Создайте класс, который наследуется от Cmdlet , а также имеет атрибут Cmdlet. Переопределите метод ProcessRecord и добавьте код, чтобы сделать то, что вам нужно. Чтобы передать параметры из Powershell, вам нужно добавить свойства в ваш класс и пометить их атрибутом Parameter. Это должно выглядеть примерно так:

Imports System.Management.Automation 
Imports Microsoft.ApplicationServer.Caching

<Cmdlet(VerbsCommon.Remove, "CacheItem")> _
Public Class RemoveCacheItem
    Inherits Cmdlet

    Private mCacheName As String
    Private mItemKey As String

    <Parameter(Mandatory:=True, Position:=1)> _
    Public Property CacheName() As String
        Get
            Return mCacheName
        End Get
        Set(ByVal value As String)
            mCacheName = value
        End Set
    End Property

    <Parameter(Mandatory:=True, Position:=2)> _
    Public Property ItemKey() As String
        Get
            Return mItemKey
        End Get
        Set(ByVal value As String)
            mItemKey = value
        End Set
    End Property

    Protected Overrides Sub ProcessRecord()

        MyBase.ProcessRecord()

        Dim factory As DataCacheFactory
        Dim cache As DataCache

        Try
            factory = New DataCacheFactory

            cache = factory.GetCache(Me.CacheName)

            Call cache.Remove(Me.ItemKey)
        Catch ex As Exception
            Throw
        Finally
            cache = Nothing
            factory = Nothing
        End Try

    End Sub

End Class

После того как вы создали DLL, вы можете добавить ее в Powershell с помощью командлета Import-Module.

...