Powershell - Добавление параметра Export-ToCSV в функцию - PullRequest
2 голосов
/ 17 марта 2020

Итак, у меня есть скрипт, который я написал для получения информации о области действия от DHCP. Он отлично работает, рисуя информацию в окне PowerShell. Я могу направить Out-GridView или Export-ToCSV в процесс, но я пытался найти способ, которым, когда кто-то использует эти функции, он может выбрать любую из них, используя параметр в функции.

Пример: Get-ScopeByDescription -Description "Site" -Property "Имя хоста" -ToCSV или -ToGridView

Function Get-ScopeByDescription
{
 [cmdletBinding()]
    Param
    (
        [Parameter(Mandatory,ValueFromPipelineByPropertyName)]
        [ValidateNotNullOrEmpty()]
        [String] $Description,

        [Parameter(ValueFromPipelineByPropertyName)]
        [ValidateSet('IPAddress','Hostname','ClientID']
        [String] $Property = 'Hostname'

        ###This is where I'm looking to add functionality of Export-ToCSV and Out-GridView as a Parameter.

    )
    Begin
    {
        Write-Warning "This process will take a minute. Ctrl+C to cancel."
    }
    Process
    {
        $ScopeDesc = Get-DhcpServerv4Scope -ComputerName DHCPsvr |
                     Where-Object -Property Description -Like *"$Description"*

        $ScopeDesc | Get-DhcpServerv4Lease -ComputerName DHCPsvr -AllLeases |
                     Select IPAddress, Hostname, ClientID, LeaseExpiryTime, AddressState, ScopeID |
                     Sort-Object -Property $Property

    } 

Этот сценарий предназначен для сброса DHCP область от сервера по описанию, что является более простым для поиска / запоминания параметром для тех, кто использует это для запоминания.

...