- 修复RouteService中错误过滤home路由的问题 - 后端现在正确返回所有用户有权限的路由 - 添加设备管理相关功能(列表、在线监控、电源管理、远程监控) - 添加详细的修复文档和重启脚本 - 更新权限配置脚本 问题根源:后端代码中有逻辑会过滤掉home路由,导致前端收到空数组,无法生成菜单 解决方案:移除过滤home路由的逻辑,让后端返回所有有权限的路由
834 lines
39 KiB
PowerShell
834 lines
39 KiB
PowerShell
# Copyright (C) 2007 Intel Corporation
|
||
|
||
Function Clear-AMT3PDS {
|
||
<#
|
||
.Synopsis
|
||
Deletes data from the Intel Active Management Technology Third Party Data Storage
|
||
.Description
|
||
This CmdLet deletes data from the Intel Active Management Technology (AMT) Third Party Data Storage (3PDS) from clients that have Intel AMT firmware version 3.0 or higher.
|
||
.Notes
|
||
Supported AMT Firmware Versions: 3.0 or higher.
|
||
|
||
Understanding 3PDS structure:
|
||
Data stored within the 3PDS is stored within blocks of nonvolatile memory in a hierarchical structure. Each block must be associated to a tiered structure of Enterprise -> Vendor -> Application -> Block Name.
|
||
|
||
3PDS Machine UUID:
|
||
When a block is created the application that created the block will specify a GUID to identify itself as the entity that created the block. When modifying blocks that were created by a different entity it may be necessary to specify the Machine UUID as part of the CMDLet parameter.
|
||
|
||
AMT Provisioning:
|
||
The vPro client AMT firmware must be provisioned prior to accessing AMT functionality. This CMDLet will fail if it is run against a vPro client that has not been provisioned.
|
||
|
||
AMT Client Authentication:
|
||
To invoke commands against AMT enabled clients credentials to authenticate must be specified.
|
||
When no credential is provided as a parameter, the script will use the local logged on Kerberos credential.
|
||
When only the username (Kerberos or Digest) parameter is included the user will be prompted to provide the associated password.
|
||
Credentials should be stored as a PowerShell variable then passed into the Cmdlet with the credential parameter.
|
||
$AMTCredential = get-credential
|
||
|
||
AMT Client Encryption:
|
||
If the Intel vPro client has been configured to use TLS (a web server certificate has been issued to the Intel Management Engine) the Cmdlet must be called with a -TLS switch.
|
||
|
||
When managing an Intel vPro client over TLS (Port 16993) it is important that the computername parameter matchs the primary subject name of the issued TLS certificate. Typically this is the fully qualified domain name (FQDN).
|
||
|
||
If Mutual TLS is desired, the Cmdlet must be called with -TLS switch and with a valid certificate name from the certificate store in the -CertificateName parameter.
|
||
Status:
|
||
Status output designates if the Cmdlet was run successfully. For failed attempts additional status may be provided.
|
||
.Link
|
||
http:\\vproexpert.com
|
||
http:\\www.intel.com\vpro
|
||
http:\\www.intel.com
|
||
|
||
|
||
.Example
|
||
Clear-AMT3PDS -computer:vproclient.vprodemo.com -TLS -CertificateName "myCertificate" -Enterprise:Intel
|
||
|
||
Will delete all block data under enterprise value specified.
|
||
|
||
ComputerName Port Operation Status
|
||
------------ ---- --------- ------
|
||
vproclient.vprodemo.com 16993 Delete Successful
|
||
.Example
|
||
Clear-AMT3PDS 192.168.1.100 -credential $AMTCredential -Enterprise:Intel -Vendor:Intel
|
||
|
||
Will delete all block data under Enterprise, Vendor value specified.
|
||
|
||
ComputerName Port Operation Status
|
||
------------ ---- --------- ------
|
||
192.168.1.100 16992 Delete Successful
|
||
.Example
|
||
Clear-AMT3PDS vproclient 16992 -Username:amtuser -Enterprise:Intel -Vendor:Intel -Application:PowerShell
|
||
|
||
Will delete all block data under Enterprise, Vendor, Application value specified.
|
||
|
||
ComputerName Port Operation Status
|
||
------------ ---- --------- ------
|
||
vproclient 16992 Delete Successful
|
||
.Example
|
||
Clear-AMT3PDS vproclient.vprodemo.com -credential $AMTCredential -Enterprise:Intel -Vendor:Intel -Application:PowerShell -Block:Test
|
||
|
||
Will delete block data under Enterprise, Vendor, Application, Block specified.
|
||
|
||
ComputerName Port Operation Status
|
||
------------ ---- --------- ------
|
||
vproclient.vprodemo.com 16992 Delete Successful
|
||
.Example
|
||
Get-Content computers.txt | Clear-AMT3PDS -TLS -Enterprise:Intel -Vendor:Intel -Application:PowerShell -Block:Test
|
||
|
||
ComputerName Port Operation Status
|
||
------------ ---- --------- ------
|
||
computer1.vprodemo.com 16993 Delete Successful
|
||
computer2.vprodemo.com 16993 Delete Successful
|
||
computer3.vprodemo.com 16993 Delete Successful
|
||
|
||
#>
|
||
[CmdletBinding()]
|
||
Param (
|
||
[Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$true, position=0, HelpMessage="Hostname, FQDN, or IP Address")] [String[]] $ComputerName,
|
||
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Valid Ports are 16992 (non-TLS) or 16993 (TLS)")][ValidateSet("16992", "16993")] [String] $Port,
|
||
[Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, position=2, HelpMessage="Name of the Enterprise")] [string] $Enterprise,
|
||
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, position=3, HelpMessage="Name of the Vendor")] [string] $Vendor,
|
||
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, position=4, HelpMessage="Name of the Application")] [string] $Application,
|
||
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, position=5, HelpMessage="Name of the Block")] [string] $Block,
|
||
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, position=6, HelpMessage="Machine UUID")] [string] $MachineUUID,
|
||
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Use TLS (Port 16993)")] [switch] $TLS,
|
||
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Accept self-signed certificate for TLS connection (skip any certificate checks.)")] [switch] $AcceptSelfSignedCert,
|
||
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Name of certificate. (Use for mutual TLS)")] [string] $CertificateName,
|
||
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Digest of Kerberos User")] [string] $Username,
|
||
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Digest of Kerberos Password")] [string] $Password,
|
||
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, position=7, HelpMessage="PS Credential")] [System.Management.Automation.PSCredential] $Credential
|
||
)
|
||
|
||
|
||
PROCESS {
|
||
|
||
function DeleteEnterprise($Connection, $EnterpriseHandle)
|
||
{
|
||
$AdminService_EPR = $Connection.NewReference("AMT_ThirdPartyDataStorageAdministrationService")
|
||
$InputObj = $AdminService_EPR.CreateMethodInput("RemoveStorageEaclEntry")
|
||
$InputObj.SetProperty("Handle",$EnterpriseHandle)
|
||
$Output = $AdminService_EPR.InvokeMethod($InputObj)
|
||
if($Output.GetProperty("ReturnValue").ToString() -ne "0")
|
||
{
|
||
return $false
|
||
}
|
||
else
|
||
{
|
||
return $true
|
||
}
|
||
}
|
||
function GetEnterpriseHandle($Connection, $EnterpriseName, [ref]$EnterpriseHandle)
|
||
{
|
||
$AdminService_EPR = $Connection.NewReference("AMT_ThirdPartyDataStorageAdministrationService")
|
||
$InputObj = $AdminService_EPR.CreateMethodInput("EnumerateStorageEaclEntries")
|
||
$Output = $AdminService_EPR.InvokeMethod($InputObj)
|
||
if($Output.GetProperty("ReturnValue").ToString() -ne "0")
|
||
{
|
||
return $false
|
||
}
|
||
|
||
$Handles = $Output.GetProperty("Handles")
|
||
for($i=0;$i -lt $Handles.Count;++$i)
|
||
{
|
||
$InputObj = $AdminService_EPR.CreateMethodInput("GetStorageEaclEntry")
|
||
$InputObj.SetProperty("Handle",$Handles.Item($i).ToString())
|
||
$OutObj = $AdminService_EPR.InvokeMethod($InputObj)
|
||
if($OutObj.GetProperty("ReturnValue").ToString() -ne "0")
|
||
{
|
||
return $false
|
||
}
|
||
if($OutObj.GetProperty("EnterpriseName").ToString() -eq $EnterpriseName)
|
||
{
|
||
$EnterpriseHandle.Value = $Handles.Item($i).ToString()
|
||
return $true
|
||
}
|
||
}
|
||
$EnterpriseHandle.Value = ""
|
||
return $true
|
||
}
|
||
function EnumerateEnterprise($Connection)
|
||
{
|
||
$RetVal = @()
|
||
|
||
$AdminService_EPR = $Connection.NewReference("AMT_ThirdPartyDataStorageAdministrationService")
|
||
$InputObj = $AdminService_EPR.CreateMethodInput("EnumerateStorageEaclEntries")
|
||
$Output = $AdminService_EPR.InvokeMethod($InputObj)
|
||
$Handles = $Output.GetProperty("Handles")
|
||
foreach($Handle in $Handles)
|
||
{
|
||
$InputObj = $AdminService_EPR.CreateMethodInput("GetStorageEaclEntry")
|
||
$InputObj.SetProperty("Handle",$Handle.ToString())
|
||
$OutObj = $AdminService_EPR.InvokeMethod($InputObj)
|
||
$RetVal += @($OutObj.GetProperty("EnterpriseName").ToString())
|
||
}
|
||
return ,$RetVal
|
||
}
|
||
function DeallocateBlock($Connection, $sessionHandle, $blockHandle)
|
||
{
|
||
$DataStorageService_EPR = $Connection.NewReference("AMT_ThirdPartyDataStorageService")
|
||
$InputObject = $DataStorageService_EPR.CreateMethodInput("DeallocateBlock")
|
||
$InputObject.SetProperty("SessionHandle",$sessionHandle)
|
||
$InputObject.SetProperty("BlockHandle",$blockHandle)
|
||
$OutputObject = $DataStorageService_EPR.InvokeMethod($InputObject)
|
||
if($OutputObject.GetProperty("ReturnValue").ToString() -ne "0")
|
||
{
|
||
return $false
|
||
}
|
||
else
|
||
{
|
||
return $true
|
||
}
|
||
}
|
||
|
||
function GetUUID()
|
||
{
|
||
$compname = hostname
|
||
$uuid = (Get-WmiObject Win32_ComputerSystemProduct -ComputerName $compname).UUID
|
||
|
||
$uuid = $uuid.Replace("-","")
|
||
|
||
return $uuid
|
||
}
|
||
|
||
function RegisterApplication($Connection, $uuid, $vendorName, $appName, $entName, [ref]$SessionHandle)
|
||
{
|
||
|
||
$objRef = $Connection.NewReference("AMT_ThirdPartyDataStorageService")
|
||
$InputObj = $objref.CreateMethodInput("RegisterApplication")
|
||
$InputObj.SetProperty("CallerUUID", $uuid)
|
||
$InputObj.SetProperty("VendorName", $vendorName)
|
||
$InputObj.SetProperty("ApplicationName", $appName)
|
||
$InputObj.SetProperty("EnterpriseName", $entName)
|
||
$OutObj = $objRef.InvokeMethod($InputObj)
|
||
|
||
if($OutObj.GetProperty("ReturnValue").ToString() -ne "0")
|
||
{
|
||
return($false)
|
||
}
|
||
else
|
||
{
|
||
$SessionHandle.Value = $OutObj.GetProperty('SessionHandle').ToString()
|
||
return($true)
|
||
}
|
||
}
|
||
function GetApplicationHandle($Connection, $SessionHandle, [ref]$ApplicationHandle)
|
||
{
|
||
$objRef = $Connection.NewReference("AMT_ThirdPartyDataStorageService")
|
||
$InputObj = $objref.CreateMethodInput("GetCurrentApplicationHandle")
|
||
$InputObj.SetProperty("SessionHandle", "$SessionHandle")
|
||
$OutObj = $objRef.InvokeMethod($InputObj)
|
||
|
||
if($OutObj.GetProperty("ReturnValue").ToString() -ne "0")
|
||
{
|
||
return $false
|
||
}
|
||
else
|
||
{
|
||
$ApplicationHandle.Value = $OutObj.GetProperty('ApplicationHandle').ToString()
|
||
return $true
|
||
}
|
||
}
|
||
|
||
function GetAllocatedBlocks($Connection, $SessionHandle, $ApplicationHandle)
|
||
{
|
||
$objRef = $Connection.NewReference("AMT_ThirdPartyDataStorageService")
|
||
$InputObj = $objref.CreateMethodInput("GetAllocatedBlocks")
|
||
$InputObj.SetProperty("SessionHandle", "$SessionHandle")
|
||
$InputObj.SetProperty("BlockOwnerApplication", "$ApplicationHandle")
|
||
$OutObj = $objRef.InvokeMethod($InputObj)
|
||
|
||
$BlockHandles = $OutObj.GetProperty('BlockHandles')
|
||
$blocks = @()
|
||
|
||
if($BlockHandles.IsArray)
|
||
{
|
||
for($i=0;$i -lt $BlockHandles.Count;++$i)
|
||
{
|
||
$blocks = $blocks + @($BlockHandles.Item($i).ToString())
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if(!$BlockHandles.IsNull)
|
||
{
|
||
$blocks = @($BlockHandles.ToString())
|
||
}
|
||
$blocks = ,$blocks
|
||
}
|
||
|
||
Return $blocks
|
||
}
|
||
|
||
function GetBlockName($Connection, $SessionHandle, $BlockHandle)
|
||
{
|
||
$objRef = $Connection.NewReference("AMT_ThirdPartyDataStorageService")
|
||
$InputObj = $objref.CreateMethodInput("GetBlockAttributes")
|
||
$InputObj.SetProperty("SessionHandle", "$SessionHandle")
|
||
$InputObj.SetProperty("BlockHandle", "$BlockHandle")
|
||
$OutObj = $objRef.InvokeMethod($InputObj)
|
||
|
||
$BlockName = $OutObj.GetProperty('BlockName').ToString()
|
||
$BlockName
|
||
}
|
||
function RemoveStorageFpaclEntry($Connection, $Handle)
|
||
{
|
||
$objRef = $Connection.NewReference("AMT_ThirdPartyDataStorageAdministrationService")
|
||
$InputObj = $objref.CreateMethodInput("RemoveStorageFpaclEntry")
|
||
$InputObj.SetProperty("Handle",$Handle)
|
||
$OutObj = $objRef.InvokeMethod($InputObj)
|
||
if($OutObj.GetProperty("ReturnValue").ToString() -ne "0")
|
||
{
|
||
return $false
|
||
}
|
||
else
|
||
{
|
||
return $true
|
||
}
|
||
}
|
||
function GetStorageFpaclEntry($Connection, $ApplicationName, $VendorName, [ref]$Handle)
|
||
{
|
||
$objRef = $Connection.NewReference("AMT_ThirdPartyDataStorageAdministrationService")
|
||
$InputObj = $objref.CreateMethodInput("EnumerateStorageAllocEntries")
|
||
$OutObj = $objRef.InvokeMethod($InputObj)
|
||
if($OutObj.GetProperty("ReturnValue").ToString() -ne "0")
|
||
{
|
||
return $false
|
||
}
|
||
else
|
||
{
|
||
$handles = $OutObj.GetProperty("Handles")
|
||
for($i=0;$i -lt $handles.Count;++$i)
|
||
{
|
||
$h = $handles.Item($i).ToString()
|
||
$InputObj = $objref.CreateMethodInput("GetStorageAllocEntry")
|
||
$InputObj.SetProperty("Handle",$h)
|
||
$OutObj = $objRef.InvokeMethod($InputObj)
|
||
if($OutObj.GetProperty("ReturnValue").ToString() -ne "0")
|
||
{
|
||
return $false
|
||
}
|
||
else
|
||
{
|
||
if($OutObj.GetProperty("ApplicationName").ToString() -eq $ApplicationName -and $OutObj.GetProperty("VendorName").ToString() -eq $VendorName)
|
||
{
|
||
$Handle.Value = $h
|
||
return $true
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return $false
|
||
}
|
||
function RemoveApplication($Connection, $SessionHandle)
|
||
{
|
||
$objRef = $Connection.NewReference("AMT_ThirdPartyDataStorageService")
|
||
$InputObj = $objref.CreateMethodInput("RemoveApplication")
|
||
$InputObj.SetProperty("SessionHandle", "$SessionHandle")
|
||
$OutObj = $objRef.InvokeMethod($InputObj)
|
||
|
||
if($OutObj.GetProperty("ReturnValue").ToString() -ne "0")
|
||
{
|
||
return $false
|
||
}
|
||
else
|
||
{
|
||
return $true
|
||
}
|
||
}
|
||
function UnregisterApplication($Connection, $sessionHandle)
|
||
{
|
||
$objRef = $Connection.NewReference("AMT_ThirdPartyDataStorageService")
|
||
$InputObj = $objref.CreateMethodInput("UnregisterApplication")
|
||
$InputObj.SetProperty("SessionHandle", "$SessionHandle")
|
||
$OutObj = $objRef.InvokeMethod($InputObj)
|
||
}
|
||
|
||
function AdminGetRegisteredApplications([ref]$ApplicationHandles)
|
||
{
|
||
$objRef = $Connection.NewReference("AMT_ThirdPartyDataStorageAdministrationService")
|
||
$InputObj = $objref.CreateMethodInput("AdminGetRegisteredApplications")
|
||
$OutObj = $objRef.InvokeMethod($InputObj)
|
||
if($OutObj.GetProperty("ReturnValue").ToString() -ne "0")
|
||
{
|
||
return $false
|
||
}
|
||
|
||
$en = $OutObj.GetProperty('ApplicationHandles')
|
||
$ApplicationHandles.Value = @()
|
||
if($en.IsArray)
|
||
{
|
||
For($i=0;$i -lt $en.Count;++$i)
|
||
{
|
||
$ApplicationHandles.Value += @($en.Item($i).ToString())
|
||
}
|
||
}
|
||
return $true
|
||
}
|
||
|
||
function AdminGetApplicationAttributes($appHandle, [ref]$uuid, [ref]$VendorName, [ref]$ApplicationName, [ref]$EnterpriseName)
|
||
{
|
||
$objRef = $Connection.NewReference("AMT_ThirdPartyDataStorageAdministrationService")
|
||
$InputObj = $objref.CreateMethodInput("AdminGetApplicationAttributes")
|
||
$InputObj.SetProperty("Handle", "$appHandle")
|
||
|
||
$OutObj = $objRef.InvokeMethod($InputObj)
|
||
if($OutObj.GetProperty("ReturnValue").ToString() -ne "0")
|
||
{
|
||
return $false
|
||
}
|
||
|
||
$uuid.Value = $OutObj.GetProperty('UUID').ToString()
|
||
$VendorName.Value = $OutObj.GetProperty('VendorName').ToString()
|
||
$ApplicationName.Value = $OutObj.GetProperty('ApplicationName').ToString()
|
||
$EnterpriseName.Value = $OutObj.GetProperty('EnterpriseName').ToString()
|
||
return $true
|
||
}
|
||
|
||
$Results = @()
|
||
$Obj = new-object psobject
|
||
try
|
||
{
|
||
#create a connection object
|
||
$Connection = New-Object Intel.Management.Wsman.WsmanConnection
|
||
|
||
if ($Credential.username.Length -gt 0) {
|
||
$Connection.SetCredentials($Credential.Username, $Credential.Password)
|
||
} elseif ($Username.length -gt 0) {
|
||
if ($Password.length -gt 0) {
|
||
$passwd = ConvertTo-SecureString $Password -AsPlainText –Force
|
||
$Connection.SetCredentials($Username, $passwd)
|
||
} else {
|
||
$Cred = Get-Credential $Username
|
||
$Connection.SetCredentials($Cred.Username, $Cred.Password)
|
||
}
|
||
}
|
||
|
||
if ($Port.Length -lt 1) {
|
||
if ($TLS.IsPresent) {
|
||
$Port = 16993;
|
||
}
|
||
else {
|
||
$Port = 16992;
|
||
}
|
||
}
|
||
|
||
if($CertificateName.Length -gt 0)
|
||
{
|
||
$Connection.Options.SetClientCertificateByCertificateName($CertificateName)
|
||
}
|
||
|
||
if($AcceptSelfSignedCert.IsPresent)
|
||
{
|
||
$Connection.Options.AcceptSelfSignedCertificate=$true;
|
||
}
|
||
|
||
#----------------- Code below this line is specific to each script.
|
||
|
||
ForEach ($Comp in $ComputerName)
|
||
{
|
||
$skip = $false
|
||
|
||
$Obj | Add-Member -MemberType noteproperty -Name ComputerName -value $Comp
|
||
$Obj | Add-Member -MemberType noteproperty -Name Port -value $Port
|
||
$Obj | Add-Member -MemberType noteproperty -Name Operation -value "Delete"
|
||
|
||
try
|
||
{
|
||
#Attempt Connection with Client
|
||
$Connection.SetHost($Comp, $Port)
|
||
#---------------------------------
|
||
if($MachineUUID -ne "")
|
||
{
|
||
$uuid = $MachineUUID
|
||
}
|
||
else
|
||
{
|
||
$uuid = GetUUID
|
||
}
|
||
|
||
$SessionHandle = ""
|
||
$ApplicationHandle = ""
|
||
|
||
|
||
if($Enterprise -ne "" -and $Vendor -eq "" -and $Application -eq "" -and $Block -eq "")
|
||
{
|
||
# Delete Enterprise
|
||
$Handle = ""
|
||
$Success = GetEnterpriseHandle $Connection $Enterprise ([ref]$Handle)
|
||
if(!$Success)
|
||
{
|
||
$Obj | Add-Member -MemberType noteproperty -Name "Status" -value "GetEnterpriseHandleFailed"
|
||
$Results += $Obj
|
||
continue
|
||
}
|
||
elseif($Success -and $Handle -eq "")
|
||
{
|
||
$Obj | Add-Member -MemberType noteproperty -Name "Status" -value "EnterpriseNotFound[$Enterprise]"
|
||
$Results += $Obj
|
||
continue
|
||
}
|
||
$Success = DeleteEnterprise $Connection $Handle
|
||
if(!$Success)
|
||
{
|
||
$Obj | Add-Member -MemberType noteproperty -Name "Status" -value "Failed"
|
||
}
|
||
else
|
||
{
|
||
$Obj | Add-Member -MemberType noteproperty -Name "Status" -value "Successful"
|
||
}
|
||
}
|
||
elseif($Enterprise -ne "" -and $Vendor -ne "" -and $Application -ne "" -and $Block -eq "")
|
||
{
|
||
# Get Application
|
||
$Success = RegisterApplication $Connection $uuid $Vendor $Application $Enterprise ([ref]$SessionHandle)
|
||
if(!$Success)
|
||
{
|
||
$Obj | Add-Member -MemberType noteproperty -Name "Status" -value "RegisterApplicationFailed"
|
||
$Results += $Obj
|
||
continue
|
||
}
|
||
# Remove Application (This also unregisters)
|
||
$Success = RemoveApplication $Connection $SessionHandle
|
||
if(!$Success)
|
||
{
|
||
$Obj | Add-Member -MemberType noteproperty -Name "Status" -value "RemoveApplicationFailed"
|
||
$Results += $Obj
|
||
continue
|
||
}
|
||
# Remove PACL Entry
|
||
$Handle = ""
|
||
$Success = GetStorageFpaclEntry $Connection $Application $Vendor ([ref]$Handle)
|
||
if(!$Success)
|
||
{
|
||
$Obj | Add-Member -MemberType noteproperty -Name "Status" -value "FpaclProcessingFailed"
|
||
$Results += $Obj
|
||
continue
|
||
}
|
||
$Success = RemoveStorageFpaclEntry $Connection $Handle
|
||
if(!$Success)
|
||
{
|
||
$Obj | Add-Member -MemberType noteproperty -Name "Status" -value "Success[FpaclEntryMayBeInUse]"
|
||
$Results += $Obj
|
||
continue
|
||
}
|
||
$Obj | Add-Member -MemberType noteproperty -Name "Status" -value "Successful"
|
||
}
|
||
elseif($Enterprise -ne "" -and $Vendor -ne "" -and $Application -ne "" -and $Block -ne "")
|
||
{
|
||
# Delete Block
|
||
$Success = RegisterApplication $Connection $uuid $Vendor $Application $Enterprise ([ref]$SessionHandle)
|
||
if(!$Success)
|
||
{
|
||
$Obj | Add-Member -MemberType noteproperty -Name "Status" -value "RegisterApplicationFailed"
|
||
$Results += $Obj
|
||
continue
|
||
}
|
||
$Success = GetApplicationHandle $Connection $SessionHandle ([ref]$ApplicationHandle)
|
||
if(!$Success)
|
||
{
|
||
$Obj | Add-Member -MemberType noteproperty -Name "Status" -value "GetApplicationHandleFailed"
|
||
$Results += $Obj
|
||
continue
|
||
}
|
||
|
||
$BlockHandles = GetAllocatedBlocks $Connection $SessionHandle $ApplicationHandle
|
||
$Found = $false
|
||
foreach ($tempBlockHandle in $BlockHandles)
|
||
{
|
||
$tempBlockName = GetBlockName $Connection $SessionHandle $tempBlockHandle
|
||
if ($tempBlockName -eq $Block)
|
||
{
|
||
$Found = $true
|
||
# Delete the associated blocks
|
||
$Success = DeallocateBlock $Connection $sessionHandle $tempBlockHandle
|
||
if(!$Success)
|
||
{
|
||
$Obj | Add-Member -MemberType noteproperty -Name "Status" -value "DeallocateBlockFailed"
|
||
$Results += $Obj
|
||
continue
|
||
}
|
||
}
|
||
}
|
||
if($Found)
|
||
{
|
||
$Obj | Add-Member -MemberType noteproperty -Name "Status" -value "Successful"
|
||
}
|
||
else
|
||
{
|
||
$Obj | Add-Member -MemberType noteproperty -Name "Status" -value "NoBlocksFound"
|
||
}
|
||
|
||
UnregisterApplication $Connection $SessionHandle
|
||
}
|
||
|
||
|
||
#------------------------------------
|
||
|
||
} catch {
|
||
#Add Member to Object noting failed attempt
|
||
$Obj | Add-Member -MemberType noteproperty -Name ComputerName -value $Comp -Force
|
||
$Obj | Add-Member -MemberType noteproperty -Name Port -value $Port -Force
|
||
$Obj | Add-Member -MemberType noteproperty -Name Operation -value $Operation -Force
|
||
$Obj | Add-Member -MemberType noteproperty -Name Status -value "ExceptionThrown"
|
||
$Obj | Add-Member -MemberType noteproperty -Name Reason -value $_.Exception.Message
|
||
}
|
||
$Results += $Obj
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
#Add Member to Object noting failed attempt
|
||
$Obj | Add-Member -MemberType noteproperty -Name Status -value "ExceptionThrown"
|
||
$Obj | Add-Member -MemberType noteproperty -Name Reason -value $_.Exception.Message
|
||
$Results += $Obj
|
||
}
|
||
# Set back to false for the next cmdlet, if PS is still open
|
||
$Connection.Options.AcceptSelfSignedCertificate=$false;
|
||
Write-Output $Results
|
||
}
|
||
}
|
||
# SIG # Begin signature block
|
||
# MIItiwYJKoZIhvcNAQcCoIItfDCCLXgCAQExDzANBglghkgBZQMEAgEFADB5Bgor
|
||
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
|
||
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCACz2x5CF7wKpp6
|
||
# mlcFZ7sorBJUWldm9tFwbei6Oz2M8qCCEX4wggVvMIIEV6ADAgECAhBI/JO0YFWU
|
||
# jTanyYqJ1pQWMA0GCSqGSIb3DQEBDAUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQI
|
||
# DBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoM
|
||
# EUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2Vy
|
||
# dmljZXMwHhcNMjEwNTI1MDAwMDAwWhcNMjgxMjMxMjM1OTU5WjBWMQswCQYDVQQG
|
||
# EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS0wKwYDVQQDEyRTZWN0aWdv
|
||
# IFB1YmxpYyBDb2RlIFNpZ25pbmcgUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEBAQUA
|
||
# A4ICDwAwggIKAoICAQCN55QSIgQkdC7/FiMCkoq2rjaFrEfUI5ErPtx94jGgUW+s
|
||
# hJHjUoq14pbe0IdjJImK/+8Skzt9u7aKvb0Ffyeba2XTpQxpsbxJOZrxbW6q5KCD
|
||
# J9qaDStQ6Utbs7hkNqR+Sj2pcaths3OzPAsM79szV+W+NDfjlxtd/R8SPYIDdub7
|
||
# P2bSlDFp+m2zNKzBenjcklDyZMeqLQSrw2rq4C+np9xu1+j/2iGrQL+57g2extme
|
||
# me/G3h+pDHazJyCh1rr9gOcB0u/rgimVcI3/uxXP/tEPNqIuTzKQdEZrRzUTdwUz
|
||
# T2MuuC3hv2WnBGsY2HH6zAjybYmZELGt2z4s5KoYsMYHAXVn3m3pY2MeNn9pib6q
|
||
# RT5uWl+PoVvLnTCGMOgDs0DGDQ84zWeoU4j6uDBl+m/H5x2xg3RpPqzEaDux5mcz
|
||
# mrYI4IAFSEDu9oJkRqj1c7AGlfJsZZ+/VVscnFcax3hGfHCqlBuCF6yH6bbJDoEc
|
||
# QNYWFyn8XJwYK+pF9e+91WdPKF4F7pBMeufG9ND8+s0+MkYTIDaKBOq3qgdGnA2T
|
||
# OglmmVhcKaO5DKYwODzQRjY1fJy67sPV+Qp2+n4FG0DKkjXp1XrRtX8ArqmQqsV/
|
||
# AZwQsRb8zG4Y3G9i/qZQp7h7uJ0VP/4gDHXIIloTlRmQAOka1cKG8eOO7F/05QID
|
||
# AQABo4IBEjCCAQ4wHwYDVR0jBBgwFoAUoBEKIz6W8Qfs4q8p74Klf9AwpLQwHQYD
|
||
# VR0OBBYEFDLrkpr/NZZILyhAQnAgNpFcF4XmMA4GA1UdDwEB/wQEAwIBhjAPBgNV
|
||
# HRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUFBwMDMBsGA1UdIAQUMBIwBgYE
|
||
# VR0gADAIBgZngQwBBAEwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybC5jb21v
|
||
# ZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNAYIKwYBBQUHAQEE
|
||
# KDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wDQYJKoZI
|
||
# hvcNAQEMBQADggEBABK/oe+LdJqYRLhpRrWrJAoMpIpnuDqBv0WKfVIHqI0fTiGF
|
||
# OaNrXi0ghr8QuK55O1PNtPvYRL4G2VxjZ9RAFodEhnIq1jIV9RKDwvnhXRFAZ/ZC
|
||
# J3LFI+ICOBpMIOLbAffNRk8monxmwFE2tokCVMf8WPtsAO7+mKYulaEMUykfb9gZ
|
||
# pk+e96wJ6l2CxouvgKe9gUhShDHaMuwV5KZMPWw5c9QLhTkg4IUaaOGnSDip0TYl
|
||
# d8GNGRbFiExmfS9jzpjoad+sPKhdnckcW67Y8y90z7h+9teDnRGWYpquRRPaf9xH
|
||
# +9/DUp/mBlXpnYzyOmJRvOwkDynUWICE5EV7WtgwggXpMIIEUaADAgECAhEA/lzU
|
||
# lQGKZRek0E74e2uTOjANBgkqhkiG9w0BAQwFADBUMQswCQYDVQQGEwJHQjEYMBYG
|
||
# A1UEChMPU2VjdGlnbyBMaW1pdGVkMSswKQYDVQQDEyJTZWN0aWdvIFB1YmxpYyBD
|
||
# b2RlIFNpZ25pbmcgQ0EgUjM2MB4XDTI0MDMxMzAwMDAwMFoXDTI1MDMxMzIzNTk1
|
||
# OVowWjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExGjAYBgNVBAoM
|
||
# EUludGVsIENvcnBvcmF0aW9uMRowGAYDVQQDDBFJbnRlbCBDb3Jwb3JhdGlvbjCC
|
||
# AaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAI69Cz15squYBdM5ZXnjFBNn
|
||
# vqzI4WUgaQ/PjBKog2t/IkSByXK+3K1m4CwQtTgqpMCD193E3A/xDHmWVEvpCKUB
|
||
# +xc8c/8FE6TymrIKA/0UH7jVesLgCo0AxfM0dkcqrvLKvnchseekdaM2b+E41NSj
|
||
# AhhWgGp1LoTZyrAOJNpGsPIfgA/0+J6RCECh9BARbXCRXAnzTuPtWDXfKlOwSa4+
|
||
# o2tJM7TPNALTJSLHoZbvfUOpgOh+0lWx49himoW6lfDt5cZDPOT8wNwpd5DWwB8M
|
||
# hzLfNEpbvR/85s8SP/dWRrAVkSRxS1wqIZa9OsxD+rjBBIe8JDR1Y9hjGBUKybMA
|
||
# Y30Pp8rDpFeH1Ya1A8gNeae8KRSlacroyoxhRviL9n8nCZIhiqL6Q0Qu9cJGwlYi
|
||
# L9mAMRyVPI3BHf0s6r6BRqt8yBYP/2dsgc4z9YV9DGJUaKz2kjwud1OJZupFDZio
|
||
# +shzbO/h78iJSQiMVHgMVFEVOZFERE3dVSEFsWdPAwIDAQABo4IBrjCCAaowHwYD
|
||
# VR0jBBgwFoAUDyrLIIcouOxvSK4rVKYpqhekzQwwHQYDVR0OBBYEFCjtPWp/OnUU
|
||
# 51aXAiBwcQ/gvYfGMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMBMGA1Ud
|
||
# JQQMMAoGCCsGAQUFBwMDMEoGA1UdIARDMEEwNQYMKwYBBAGyMQECAQMCMCUwIwYI
|
||
# KwYBBQUHAgEWF2h0dHBzOi8vc2VjdGlnby5jb20vQ1BTMAgGBmeBDAEEATBJBgNV
|
||
# HR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29QdWJs
|
||
# aWNDb2RlU2lnbmluZ0NBUjM2LmNybDB5BggrBgEFBQcBAQRtMGswRAYIKwYBBQUH
|
||
# MAKGOGh0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY0NvZGVTaWdu
|
||
# aW5nQ0FSMzYuY3J0MCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNv
|
||
# bTAjBgNVHREEHDAagRhwa2llbmdpbmVlcmluZ0BpbnRlbC5jb20wDQYJKoZIhvcN
|
||
# AQEMBQADggGBAB01WGV1cWjtTCQGkNtDRpmS08NuUis1F2+0cwIrk2dY8tXKiZ5R
|
||
# supkBKWfpjNSHdW79DvVCotBbyRYUdDSeFkQ8jRPm+vlzyFhRWuW4qSYcIlx6qia
|
||
# pGZEFsvmEEXMnwG9zEEeKsYlnM/ZSI23uLZCXyhJx35G2PpBr3tMym6gIvta5Dml
|
||
# 4S/XEJJI/ZvIKhPO5QUemCS07S9QN7SOKeEkk1LdV1ccCBNtRpAzmGVr4iYS4pbV
|
||
# r8yishYe25TSAPeWEy9PYEMnjZbQQS8lD8XFB6gfiTJLFCCzIKsHzMIk+FuJlwVl
|
||
# q4ec/Wrx0+fpVeo2SPJZI/iE82gtD5oywotprC47MdvVlcvbePYnHoJqqRtnhX+E
|
||
# 6jlGRtnhUCPV+BsRScp4v8DIUJGdV5AzS5rYu3YhJGDJgTgPGvBtmvaPeJtxcKzX
|
||
# UnMpPtanuJgW3o1ucSo9SKb9dNqFcLcOUVD2lDjh85Z0anJom924xhVm4cGNWSF7
|
||
# az8cVA6zH/Rc6DCCBhowggQCoAMCAQICEGIdbQxSAZ47kHkVIIkhHAowDQYJKoZI
|
||
# hvcNAQEMBQAwVjELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRl
|
||
# ZDEtMCsGA1UEAxMkU2VjdGlnbyBQdWJsaWMgQ29kZSBTaWduaW5nIFJvb3QgUjQ2
|
||
# MB4XDTIxMDMyMjAwMDAwMFoXDTM2MDMyMTIzNTk1OVowVDELMAkGA1UEBhMCR0Ix
|
||
# GDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDErMCkGA1UEAxMiU2VjdGlnbyBQdWJs
|
||
# aWMgQ29kZSBTaWduaW5nIENBIFIzNjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCC
|
||
# AYoCggGBAJsrnVP6NT+OYAZDasDP9X/2yFNTGMjO02x+/FgHlRd5ZTMLER4ARkZs
|
||
# Q3hAyAKwktlQqFZOGP/I+rLSJJmFeRno+DYDY1UOAWKA4xjMHY4qF2p9YZWhhbeF
|
||
# pPb09JNqFiTCYy/Rv/zedt4QJuIxeFI61tqb7/foXT1/LW2wHyN79FXSYiTxcv+1
|
||
# 8Irpw+5gcTbXnDOsrSHVJYdPE9s+5iRF2Q/TlnCZGZOcA7n9qudjzeN43OE/TpKF
|
||
# 2dGq1mVXn37zK/4oiETkgsyqA5lgAQ0c1f1IkOb6rGnhWqkHcxX+HnfKXjVodTmm
|
||
# V52L2UIFsf0l4iQ0UgKJUc2RGarhOnG3B++OxR53LPys3J9AnL9o6zlviz5pzsgf
|
||
# rQH4lrtNUz4Qq/Va5MbBwuahTcWk4UxuY+PynPjgw9nV/35gRAhC3L81B3/bIaBb
|
||
# 659+Vxn9kT2jUztrkmep/aLb+4xJbKZHyvahAEx2XKHafkeKtjiMqcUf/2BG935A
|
||
# 591GsllvWwIDAQABo4IBZDCCAWAwHwYDVR0jBBgwFoAUMuuSmv81lkgvKEBCcCA2
|
||
# kVwXheYwHQYDVR0OBBYEFA8qyyCHKLjsb0iuK1SmKaoXpM0MMA4GA1UdDwEB/wQE
|
||
# AwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMBsG
|
||
# A1UdIAQUMBIwBgYEVR0gADAIBgZngQwBBAEwSwYDVR0fBEQwQjBAoD6gPIY6aHR0
|
||
# cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljQ29kZVNpZ25pbmdSb290
|
||
# UjQ2LmNybDB7BggrBgEFBQcBAQRvMG0wRgYIKwYBBQUHMAKGOmh0dHA6Ly9jcnQu
|
||
# c2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY0NvZGVTaWduaW5nUm9vdFI0Ni5wN2Mw
|
||
# IwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMA0GCSqGSIb3DQEB
|
||
# DAUAA4ICAQAG/4Lhd2M2bnuhFSCbE/8E/ph1RGHDVpVx0ZE/haHrQECxyNbgcv2F
|
||
# ymQ5PPmNS6Dah66dtgCjBsULYAor5wxxcgEPRl05pZOzI3IEGwwsepp+8iGsLKaV
|
||
# pL3z5CmgELIqmk/Q5zFgR1TSGmxqoEEhk60FqONzDn7D8p4W89h8sX+V1imaUb69
|
||
# 3TGqWp3T32IKGfIgy9jkd7GM7YCa2xulWfQ6E1xZtYNEX/ewGnp9ZeHPsNwwviJM
|
||
# BZL4xVd40uPWUnOJUoSiugaz0yWLODRtQxs5qU6E58KKmfHwJotl5WZ7nIQuDT0m
|
||
# WjwEx7zSM7fs9Tx6N+Q/3+49qTtUvAQsrEAxwmzOTJ6Jp6uWmHCgrHW4dHM3ITpv
|
||
# G5Ipy62KyqYovk5O6cC+040Si15KJpuQ9VJnbPvqYqfMB9nEKX/d2rd1Q3DiuDex
|
||
# MKCCQdJGpOqUsxLuCOuFOoGbO7Uv3RjUpY39jkkp0a+yls6tN85fJe+Y8voTnbPU
|
||
# 1knpy24wUFBkfenBa+pRFHwCBB1QtS+vGNRhsceP3kSPNrrfN2sRzFYsNfrFaWz8
|
||
# YOdU254qNZQfd9O/VjxZ2Gjr3xgANHtM3HxfzPYF6/pKK8EE4dj66qKKtm2DTL1K
|
||
# FCg/OYJyfrdLJq1q2/HXntgr2GVw+ZWhrWgMTn8v1SjZsLlrgIfZHDGCG2Mwghtf
|
||
# AgEBMGkwVDELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDEr
|
||
# MCkGA1UEAxMiU2VjdGlnbyBQdWJsaWMgQ29kZSBTaWduaW5nIENBIFIzNgIRAP5c
|
||
# 1JUBimUXpNBO+HtrkzowDQYJYIZIAWUDBAIBBQCgfDAQBgorBgEEAYI3AgEMMQIw
|
||
# ADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYK
|
||
# KwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgT1mET+UB56bgEjyg7huUYk98EPML
|
||
# 6HxQNCqrXCrxgZYwDQYJKoZIhvcNAQEBBQAEggGAAvHAPZnRRN/DjnBrN5SfxUcP
|
||
# +4SoDbkK7pLi8SuPei5wT01IBhTPqOU9BrHPrsi30NyJ0XWEmI1WEWa8/g8J2smE
|
||
# 2uLrtdoXmPyxL2YhoNnkN7VVw/fnyw8oQzW3bRxutWsjCvfDqWHk1o7ajp/iq5oY
|
||
# YrHGDzHnyAwd8fmFX4Qx/o8OcGnLihtUEnMg6ZEMucPLjMXbx7+ZHCT440ix6xSR
|
||
# 9TQW5wgKnoJbBxQ56NuUIjBRlzD3uv/9Urjs4bkp+kAgwC0Ay20qaBG7SDW9sW+v
|
||
# 7w51JbM/Rybb5pB7xhaZhUl6wiNKq0XHLlX7TCYuCtRc4dXpBMNBrdU+k3eYGN0Z
|
||
# RdUzONcAflegqh03xpxl43py7Gq1JpaafmWOQ+o53sPXcFqHpXizyIbTZQyU77OG
|
||
# sq6OCFj7Q2IVIYrYz23PQ6m8X+oEg84Mp36eX2ROUOkdksy/d6QZrwAN5pnc5Ne8
|
||
# teJ1RDLQ/z9iyG04Y5zXP2QGA1kCV45NnaW69QeHoYIYzTCCGMkGCisGAQQBgjcD
|
||
# AwExghi5MIIYtQYJKoZIhvcNAQcCoIIYpjCCGKICAQMxDzANBglghkgBZQMEAgIF
|
||
# ADCB8wYLKoZIhvcNAQkQAQSggeMEgeAwgd0CAQEGCisGAQQBsjECAQEwMTANBglg
|
||
# hkgBZQMEAgEFAAQgE05JFN1kbWpyK5PkMI33/3LIUMEccluxr4ymm+0VJeQCFCDi
|
||
# 1nJQ1YiAbMWAUDs6P2wTeyJSGA8yMDI1MDEyNzE5MDEwMFqgcqRwMG4xCzAJBgNV
|
||
# BAYTAkdCMRMwEQYDVQQIEwpNYW5jaGVzdGVyMRgwFgYDVQQKEw9TZWN0aWdvIExp
|
||
# bWl0ZWQxMDAuBgNVBAMTJ1NlY3RpZ28gUHVibGljIFRpbWUgU3RhbXBpbmcgU2ln
|
||
# bmVyIFIzNaCCEv8wggZdMIIExaADAgECAhA6UmoshM5V5h1l/MwS2OmJMA0GCSqG
|
||
# SIb3DQEBDAUAMFUxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0
|
||
# ZWQxLDAqBgNVBAMTI1NlY3RpZ28gUHVibGljIFRpbWUgU3RhbXBpbmcgQ0EgUjM2
|
||
# MB4XDTI0MDExNTAwMDAwMFoXDTM1MDQxNDIzNTk1OVowbjELMAkGA1UEBhMCR0Ix
|
||
# EzARBgNVBAgTCk1hbmNoZXN0ZXIxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDEw
|
||
# MC4GA1UEAxMnU2VjdGlnbyBQdWJsaWMgVGltZSBTdGFtcGluZyBTaWduZXIgUjM1
|
||
# MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjdFn9MFIm739OEk6TWGB
|
||
# m8PY3EWlYQQ2jQae45iWgPXUGVuYoIa1xjTGIyuw3suUSBzKiyG0/c/Yn++d5mG6
|
||
# IyayljuGT9DeXQU9k8GWWj2/BPoamg2fFctnPsdTYhMGxM06z1+Ft0Bav8ybww21
|
||
# ii/faiy+NhiUM195+cFqOtCpJXxZ/lm9tpjmVmEqpAlRpfGmLhNdkqiEuDFTuD1G
|
||
# sV3jvuPuPGKUJTam3P53U4LM0UCxeDI8Qz40Qw9TPar6S02XExlc8X1YsiE6ETcT
|
||
# z+g1ImQ1OqFwEaxsMj/WoJT18GG5KiNnS7n/X4iMwboAg3IjpcvEzw4AZCZowHyC
|
||
# zYhnFRM4PuNMVHYcTXGgvuq9I7j4ke281x4e7/90Z5Wbk92RrLcS35hO30TABcGx
|
||
# 3Q8+YLRy6o0k1w4jRefCMT7b5mTxtq5XPmKvtgfPuaWPkGZ/tbxInyNDA7YgOgcc
|
||
# ULjp4+D56g2iuzRCsLQ9ac6AN4yRbqCYsG2rcIQ5INTyI2JzA2w1vsAHPRbUTeqV
|
||
# LDuNOY2gYIoKBWQsPYVoyzaoBVU6O5TG+a1YyfWkgVVS9nXKs8hVti3VpOV3aeua
|
||
# HnjgC6He2CCDL9aW6gteUe0AmC8XCtWwpePx6QW3ROZo8vSUe9AR7mMdu5+FzTmW
|
||
# 8K13Bt8GX/YBFJO7LWzwKAUCAwEAAaOCAY4wggGKMB8GA1UdIwQYMBaAFF9Y7Uwx
|
||
# eqJhQo1SgLqzYZcZojKbMB0GA1UdDgQWBBRo76QySWm2Ujgd6kM5LPQUap4MhTAO
|
||
# BgNVHQ8BAf8EBAMCBsAwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEF
|
||
# BQcDCDBKBgNVHSAEQzBBMDUGDCsGAQQBsjEBAgEDCDAlMCMGCCsGAQUFBwIBFhdo
|
||
# dHRwczovL3NlY3RpZ28uY29tL0NQUzAIBgZngQwBBAIwSgYDVR0fBEMwQTA/oD2g
|
||
# O4Y5aHR0cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljVGltZVN0YW1w
|
||
# aW5nQ0FSMzYuY3JsMHoGCCsGAQUFBwEBBG4wbDBFBggrBgEFBQcwAoY5aHR0cDov
|
||
# L2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljVGltZVN0YW1waW5nQ0FSMzYu
|
||
# Y3J0MCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG
|
||
# 9w0BAQwFAAOCAYEAsNwuyfpPNkyKL/bJT9XvGE8fnw7Gv/4SetmOkjK9hPPa7/Ns
|
||
# v5/MHuVus+aXwRFqM5Vu51qfrHTwnVExcP2EHKr7IR+m/Ub7PamaeWfle5x8D0x/
|
||
# MsysICs00xtSNVxFywCvXx55l6Wg3lXiPCui8N4s51mXS0Ht85fkXo3auZdo1O4l
|
||
# HzJLYX4RZovlVWD5EfwV6Ve1G9UMslnm6pI0hyR0Zr95QWG0MpNPP0u05SHjq/Yk
|
||
# PlDee3yYOECNMqnZ+j8onoUtZ0oC8CkbOOk/AOoV4kp/6Ql2gEp3bNC7DOTlaCmH
|
||
# 24DjpVgryn8FMklqEoK4Z3IoUgV8R9qQLg1dr6/BjghGnj2XNA8ujta2Jyoxpqpv
|
||
# yETZCYIUjIs69YiDjzftt37rQVwIZsfCYv+DU5sh/StFL1x4rgNj2t8GccUfa/V3
|
||
# iFFW9lfIJWWsvtlC5XOOOQswr1UmVdNWQem4LwrlLgcdO/YAnHqY52QwnBLiAuUn
|
||
# uBeshWmfEb5oieIYMIIGFDCCA/ygAwIBAgIQeiOu2lNplg+RyD5c9MfjPzANBgkq
|
||
# hkiG9w0BAQwFADBXMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1p
|
||
# dGVkMS4wLAYDVQQDEyVTZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIFJvb3Qg
|
||
# UjQ2MB4XDTIxMDMyMjAwMDAwMFoXDTM2MDMyMTIzNTk1OVowVTELMAkGA1UEBhMC
|
||
# R0IxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDEsMCoGA1UEAxMjU2VjdGlnbyBQ
|
||
# dWJsaWMgVGltZSBTdGFtcGluZyBDQSBSMzYwggGiMA0GCSqGSIb3DQEBAQUAA4IB
|
||
# jwAwggGKAoIBgQDNmNhDQatugivs9jN+JjTkiYzT7yISgFQ+7yavjA6Bg+OiIjPm
|
||
# /N/t3nC7wYUrUlY3mFyI32t2o6Ft3EtxJXCc5MmZQZ8AxCbh5c6WzeJDB9qkQVa4
|
||
# 6xiYEpc81KnBkAWgsaXnLURoYZzksHIzzCNxtIXnb9njZholGw9djnjkTdAA83ab
|
||
# EOHQ4ujOGIaBhPXG2NdV8TNgFWZ9BojlAvflxNMCOwkCnzlH4oCw5+4v1nssWeN1
|
||
# y4+RlaOywwRMUi54fr2vFsU5QPrgb6tSjvEUh1EC4M29YGy/SIYM8ZpHadmVjbi3
|
||
# Pl8hJiTWw9jiCKv31pcAaeijS9fc6R7DgyyLIGflmdQMwrNRxCulVq8ZpysiSYNi
|
||
# 79tw5RHWZUEhnRfs/hsp/fwkXsynu1jcsUX+HuG8FLa2BNheUPtOcgw+vHJcJ8Hn
|
||
# JCrcUWhdFczf8O+pDiyGhVYX+bDDP3GhGS7TmKmGnbZ9N+MpEhWmbiAVPbgkqykS
|
||
# kzyYVr15OApZYK8CAwEAAaOCAVwwggFYMB8GA1UdIwQYMBaAFPZ3at0//QET/xah
|
||
# bIICL9AKPRQlMB0GA1UdDgQWBBRfWO1MMXqiYUKNUoC6s2GXGaIymzAOBgNVHQ8B
|
||
# Af8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADATBgNVHSUEDDAKBggrBgEFBQcD
|
||
# CDARBgNVHSAECjAIMAYGBFUdIAAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL2Ny
|
||
# bC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljVGltZVN0YW1waW5nUm9vdFI0Ni5j
|
||
# cmwwfAYIKwYBBQUHAQEEcDBuMEcGCCsGAQUFBzAChjtodHRwOi8vY3J0LnNlY3Rp
|
||
# Z28uY29tL1NlY3RpZ29QdWJsaWNUaW1lU3RhbXBpbmdSb290UjQ2LnA3YzAjBggr
|
||
# BgEFBQcwAYYXaHR0cDovL29jc3Auc2VjdGlnby5jb20wDQYJKoZIhvcNAQEMBQAD
|
||
# ggIBABLXeyCtDjVYDJ6BHSVY/UwtZ3Svx2ImIfZVVGnGoUaGdltoX4hDskBMZx5N
|
||
# Y5L6SCcwDMZhHOmbyMhyOVJDwm1yrKYqGDHWzpwVkFJ+996jKKAXyIIaUf5JVKjc
|
||
# cev3w16mNIUlNTkpJEor7edVJZiRJVCAmWAaHcw9zP0hY3gj+fWp8MbOocI9Zn78
|
||
# xvm9XKGBp6rEs9sEiq/pwzvg2/KjXE2yWUQIkms6+yslCRqNXPjEnBnxuUB1fm6b
|
||
# PAV+Tsr/Qrd+mOCJemo06ldon4pJFbQd0TQVIMLv5koklInHvyaf6vATJP4DfPtK
|
||
# zSBPkKlOtyaFTAjD2Nu+di5hErEVVaMqSVbfPzd6kNXOhYm23EWm6N2s2ZHCHVhl
|
||
# UgHaC4ACMRCgXjYfQEDtYEK54dUwPJXV7icz0rgCzs9VI29DwsjVZFpO4ZIVR33L
|
||
# wXyPDbYFkLqYmgHjR3tKVkhh9qKV2WCmBuC27pIOx6TYvyqiYbntinmpOqh/QPAn
|
||
# hDgexKG9GX/n1PggkGi9HCapZp8fRwg8RftwS21Ln61euBG0yONM6noD2XQPrFwp
|
||
# m3GcuqJMf0o8LLrFkSLRQNwxPDDkWXhW+gZswbaiie5fd/W2ygcto78XCSPfFWve
|
||
# UOSZ5SqK95tBO8aTHmEa4lpJVD7HrTEn9jb1EGvxOb1cnn0CMIIGgjCCBGqgAwIB
|
||
# AgIQNsKwvXwbOuejs902y8l1aDANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UEBhMC
|
||
# VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4w
|
||
# HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVz
|
||
# dCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMjEwMzIyMDAwMDAwWhcN
|
||
# MzgwMTE4MjM1OTU5WjBXMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBM
|
||
# aW1pdGVkMS4wLAYDVQQDEyVTZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIFJv
|
||
# b3QgUjQ2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAiJ3YuUVnnR3d
|
||
# 6LkmgZpUVMB8SQWbzFoVD9mUEES0QUCBdxSZqdTkdizICFNeINCSJS+lV1ipnW5i
|
||
# hkQyC0cRLWXUJzodqpnMRs46npiJPHrfLBOifjfhpdXJ2aHHsPHggGsCi7uE0awq
|
||
# KggE/LkYw3sqaBia67h/3awoqNvGqiFRJ+OTWYmUCO2GAXsePHi+/JUNAax3kpqs
|
||
# tbl3vcTdOGhtKShvZIvjwulRH87rbukNyHGWX5tNK/WABKf+Gnoi4cmisS7oSimg
|
||
# HUI0Wn/4elNd40BFdSZ1EwpuddZ+Wr7+Dfo0lcHflm/FDDrOJ3rWqauUP8hsokDo
|
||
# I7D/yUVI9DAE/WK3Jl3C4LKwIpn1mNzMyptRwsXKrop06m7NUNHdlTDEMovXAIDG
|
||
# AvYynPt5lutv8lZeI5w3MOlCybAZDpK3Dy1MKo+6aEtE9vtiTMzz/o2dYfdP0KWZ
|
||
# wZIXbYsTIlg1YIetCpi5s14qiXOpRsKqFKqav9R1R5vj3NgevsAsvxsAnI8Oa5s2
|
||
# oy25qhsoBIGo/zi6GpxFj+mOdh35Xn91y72J4RGOJEoqzEIbW3q0b2iPuWLA911c
|
||
# RxgY5SJYubvjay3nSMbBPPFsyl6mY4/WYucmyS9lo3l7jk27MAe145GWxK4O3m3g
|
||
# EFEIkv7kRmefDR7Oe2T1HxAnICQvr9sCAwEAAaOCARYwggESMB8GA1UdIwQYMBaA
|
||
# FFN5v1qqK0rPVIDh2JvAnfKyA2bLMB0GA1UdDgQWBBT2d2rdP/0BE/8WoWyCAi/Q
|
||
# Cj0UJTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zATBgNVHSUEDDAK
|
||
# BggrBgEFBQcDCDARBgNVHSAECjAIMAYGBFUdIAAwUAYDVR0fBEkwRzBFoEOgQYY/
|
||
# aHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRp
|
||
# b25BdXRob3JpdHkuY3JsMDUGCCsGAQUFBwEBBCkwJzAlBggrBgEFBQcwAYYZaHR0
|
||
# cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEADr5lQe1o
|
||
# RLjlocXUEYfktzsljOt+2sgXke3Y8UPEooU5y39rAARaAdAxUeiX1ktLJ3+lgxto
|
||
# LQhn5cFb3GF2SSZRX8ptQ6IvuD3wz/LNHKpQ5nX8hjsDLRhsyeIiJsms9yAWnvdY
|
||
# OdEMq1W61KE9JlBkB20XBee6JaXx4UBErc+YuoSb1SxVf7nkNtUjPfcxuFtrQdRM
|
||
# Ri/fInV/AobE8Gw/8yBMQKKaHt5eia8ybT8Y/Ffa6HAJyz9gvEOcF1VWXG8OMeM7
|
||
# Vy7Bs6mSIkYeYtddU1ux1dQLbEGur18ut97wgGwDiGinCwKPyFO7ApcmVJOtlw9F
|
||
# VJxw/mL1TbyBns4zOgkaXFnnfzg4qbSvnrwyj1NiurMp4pmAWjR+Pb/SIduPnmFz
|
||
# bSN/G8reZCL4fvGlvPFk4Uab/JVCSmj59+/mB2Gn6G/UYOy8k60mKcmaAZsEVkhO
|
||
# Fuoj4we8CYyaR9vd9PGZKSinaZIkvVjbH/3nlLb0a7SBIkiRzfPfS9T+JesylbHa
|
||
# 1LtRV9U/7m0q7Ma2CQ/t392ioOssXW7oKLdOmMBl14suVFBmbzrt5V5cQPnwtd3U
|
||
# OTpS9oCG+ZZheiIvPgkDmA8FzPsnfXW5qHELB43ET7HHFHeRPRYrMBKjkb8/IN7P
|
||
# o0d0hQoF4TeMM+zYAJzoKQnVKOLg8pZVPT8xggSRMIIEjQIBATBpMFUxCzAJBgNV
|
||
# BAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxLDAqBgNVBAMTI1NlY3Rp
|
||
# Z28gUHVibGljIFRpbWUgU3RhbXBpbmcgQ0EgUjM2AhA6UmoshM5V5h1l/MwS2OmJ
|
||
# MA0GCWCGSAFlAwQCAgUAoIIB+TAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQw
|
||
# HAYJKoZIhvcNAQkFMQ8XDTI1MDEyNzE5MDEwMFowPwYJKoZIhvcNAQkEMTIEMG+6
|
||
# 37WluWant8aXwS+XBRmV+opEXwUnrNt4TtEF7BIjNok3mpTt41iKrgHasPAt+zCC
|
||
# AXoGCyqGSIb3DQEJEAIMMYIBaTCCAWUwggFhMBYEFPhgmBmm+4gs9+hSl/KhGVIa
|
||
# FndfMIGHBBTGrlTkeIbxfD1VEkiMacNKevnC3TBvMFukWTBXMQswCQYDVQQGEwJH
|
||
# QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS4wLAYDVQQDEyVTZWN0aWdvIFB1
|
||
# YmxpYyBUaW1lIFN0YW1waW5nIFJvb3QgUjQ2AhB6I67aU2mWD5HIPlz0x+M/MIG8
|
||
# BBSFPWMtk4KCYXzQkDXEkd6SwULaxzCBozCBjqSBizCBiDELMAkGA1UEBhMCVVMx
|
||
# EzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYD
|
||
# VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBS
|
||
# U0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkCEDbCsL18Gzrno7PdNsvJdWgwDQYJ
|
||
# KoZIhvcNAQEBBQAEggIAYsge1etZj5Utq4lCBAK/09iYvhjfzDY+GvogZth9SFMs
|
||
# HkFT9ohiOm3kZzF2zc9SHOUpEm5k73zLCctHPfcwbx+OAoJlTzGttapWpxLgoKeX
|
||
# VZFD4yPEI1jjwyJTv5rQ9Us4Bf47lF+vtJcUBJIBg3qTEJX/3L94kZqa/kRWkFRJ
|
||
# hhhmGJh+6Tk3fyIQo+B093WGL26f60CkodkhCQ+EkR9cn/GW61KaM4U6l5ryT81R
|
||
# r1kY0nwNeKz+7IXF6+4bMpfJb6PO5MmkyAmQP/pRoctF+aptk6rkeQ/hYvKi4Hro
|
||
# AFZoXNMNJIjMQgamlwMl4Pc3wJRy95P8XdKfJp9U0wUOr3oFulFcewcBXfVuxh3C
|
||
# h6IOLUyFhAnbTd33Phsq5X3a8kTligDHQ1dW0v2k2Q0lSkJ3fCzaJhohjbDTEmIu
|
||
# ZRve0ULL2trK+woSiXwBw3lnqtsbgF/zD3UxVmC8sL2eI1tLLvkNU4/LuL7JeV8y
|
||
# f8cFgbVAFL+w1ZfjyvFTol2fwM8vnfXrzQulGffW9Xk80FGRXApbQU9Me3tSqj4n
|
||
# Mk86LlcNdEmyDnu4rZnsH/WGq+quDOR/3gHyY7FlFZ/g1mdkduGX3I7lbndP8TZA
|
||
# 4vwDQJ3k/lRu3Q2EM5GFlr86uSGkSdgZMAYGTD2697xMv/kY5p1jn2KY8oYWLp4=
|
||
# SIG # End signature block
|