Como gerenciar o tipo de inicialização do serviço de host de dispositivo UPnP com o PowerShell

O serviço UPnP (Universal Plug and Play) Device Host é um componente essencial em muitos ambientes de TI, permitindo que os dispositivos se conectem e se comuniquem perfeitamente em uma rede. O gerenciamento do tipo de inicialização desse serviço é essencial para a eficiência operacional e a segurança. Este artigo se aprofunda em um script do PowerShell criado para definir o tipo de inicialização do serviço UPnP Device Host.

Histórico

O serviço UPnP Device Host facilita a descoberta e o controle de dispositivos, tornando mais fácil para os dispositivos se conectarem a redes sem configuração manual. No entanto, sua conveniência também apresenta riscos potenciais à segurança. Os profissionais de TI e os provedores de serviços gerenciados (MSPs) geralmente precisam controlar o tipo de inicialização desse serviço para obter um equilíbrio entre funcionalidade e segurança.

O roteiro

#Requires -Version 5.1

<#
.SYNOPSIS
    Set the startup type for the UPnP Device Host service.
.DESCRIPTION
    Set the startup type for the UPnP Device Host service.
.EXAMPLE
    No parameters needed.
    Disables UPnP Host service.
.EXAMPLE
     -StartupType Automatic
    Enables UPnP Host service.
.EXAMPLE
    PS C:> Set-Upnp.ps1 -StartupType Automatic
    Enables UPnP Host service.
.OUTPUTS
    None
.NOTES
    Minimum OS Architecture Supported: Windows 10, Windows Server 2016
    Release Notes:
    Initial Release
    (c) 2023 NinjaOne
    By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/terms-of-use.
    Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. 
    Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. 
    Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. 
    Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. 
    Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. 
    Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. 
    EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).
.COMPONENT
    OSSecurity
#>

[CmdletBinding()]
param (
    [Parameter()]
    [ValidateSet("Boot", "System", "Automatic", "Manual", "Disabled")]
    [String]
    $StartupType = "Disabled"
)

begin {
    function Test-IsElevated {
        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()
        $p = New-Object System.Security.Principal.WindowsPrincipal($id)
        if ($p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator))
        { Write-Output $true }
        else
        { Write-Output $false }
    }
}
process {
    if (-not (Test-IsElevated)) {
        Write-Error -Message "Access Denied. Please run with Administrator privileges."
        exit 1
    }
    try {
        Set-Service -Name "upnphost" -StartupType $StartupType
    }
    catch {
        Write-Error $_
        exit 1
    }
}
end {}

 

Acesse mais de 300 scripts no NinjaOne Dojo

Obter acesso

Detalhamento

O script começa com um atributo CmdletBinding, indicando funções avançadas que agem de forma semelhante aos cmdlets. O bloco param define os parâmetros do script, com o tipo de inicialização padrão definido como “Disabled” (Desativado).

O bloco begin contém uma função, Test-IsElevated, que verifica se o script é executado com privilégios de administrador. Isso é fundamental porque a alteração das configurações de serviço geralmente requer permissões elevadas.

No bloco de processo, o script primeiro verifica se há permissões elevadas. Se não estiver presente, ele gera um erro. Se as permissões forem adequadas, ele tentará definir o tipo de inicialização do serviço UPnP Device Host usando o cmdlet Set-Service. Todos os erros encontrados durante esse processo são detectados e exibidos.

Casos de uso em potencial

Imagine um profissional de TI, Alex, trabalhando em uma empresa de médio porte. Após uma auditoria de segurança, recomenda-se que os serviços UPnP sejam desativados nos servidores que não os utilizam. Alex pode usar esse script para definir rapidamente o tipo de inicialização do serviço UPnP Device Host como “Disabled” (Desativado) em vários servidores, garantindo a conformidade com a recomendação de segurança.

Comparações

Embora a GUI do Windows Services permita o ajuste manual dos tipos de inicialização de serviços, ela não é dimensionável para vários sistemas. A Política de Grupo também pode ser usada, mas pode ser um exagero para uma alteração simples e sua configuração pode ser complexa. Esse script oferece um meio-termo: é mais escalável do que os métodos manuais e mais simples do que a Política de Grupo.

Implicações de segurança

Embora o serviço UPnP Device Host ofereça conveniência, ele pode ser um risco potencial à segurança se não for verificado. Ao controlar seu tipo de inicialização, os profissionais de TI podem atenuar as possíveis vulnerabilidades. No entanto, deve-se tomar cuidado para não interromper os serviços necessários, pois isso pode afetar a conectividade e a funcionalidade do dispositivo.

Recomendações

  • Sempre teste o script em um ambiente controlado antes de implantá-lo na produção.
  • Revise regularmente o tipo de inicialização de serviços essenciais, como o UPnP Device Host, para garantir que eles estejam alinhados com a postura de segurança da organização.

Considerações finais

No cenário em constante evolução da TI, ferramentas como o NinjaOne podem ser inestimáveis. Com seus recursos abrangentes de monitoramento e gerenciamento de TI, o NinjaOne pode complementar scripts como o discutido, oferecendo uma abordagem holística para o gerenciamento de TI. Ao utilizar scripts manuais e ferramentas automatizadas, os profissionais de TI podem garantir que serviços como o UPnP Device Host sejam funcionais e seguros.

FAQs

O script é compatível com o Windows 10 e o Windows Server 2016 em diante.

Você pode modificar o valor padrão $StartupType no bloco param.

Próximas etapas

Montar uma equipe de TI eficaz requer uma solução centralizada que seja a principal ferramenta de entrega de serviços. Com NinjaOne, a TI monitora, gerencia, protege e oferece suporte a todos os dispositivos, onde quer que estejam, dispensando infraestrutura complexa no local.

Saiba mais sobre a solução NinjaOne Remote Script Deployment, agende uma demonstração, ou inicie sua avaliação gratuita da plataforma NinjaOne.

Categorias:

Recomendados para você

Como verificar de forma eficiente a ativação do Windows e a verificação da licença usando o PowerShell

Um guia completo: Como atualizar o PowerShell para a versão 5.1

Script do PowerShell para detectar dispositivos USB: Uma ferramenta essencial para profissionais de TI

Como monitorar os logins dos usuários em sistemas Windows com o PowerShell

Aprimoramento das operações de TI: Como lidar com tempos de espera aleatórios no macOS

Como remover o Dell SupportAssist usando o PowerShell

Termos e condições NinjaOne

Ao clicar no botão “Aceito” abaixo, você indica sua aceitação dos seguintes termos legais, bem como dos nossos Termos de Uso:

  • Direitos de propriedade: A NinjaOne é proprietária e continuará a ser proprietária de todos os direitos, títulos e interesses relativos ao script (incluindo os direitos autorais). A NinjaOne está concedendo a você uma licença limitada para usar o script de acordo com os presentes termos legais.
  • Limitação de uso: Você só poderá usar o script para fins comerciais internos ou pessoais legítimos, sendo vedado compartilhar o script com terceiros.
  • Proibição de republicação: Em nenhuma circunstância você tem permissão para republicar o script em qualquer biblioteca de scripts pertencente ou sob o controle de qualquer outro fornecedor de software.
  • Isenção de responsabilidade da garantia: O script é fornecido “no estado em que se encontra” e “conforme disponível”, sem qualquer tipo de garantia. A NinjaOne não promete ou garante que o script estará livre de defeitos ou que atenderá às suas necessidades ou expectativas específicas.
  • Assunção de riscos: O uso do script é por sua própria conta e risco. Você reconhece que há certos riscos inerentes ao uso do script, e você compreende e assume cada um desses riscos.
  • Renúncia e isenção de responsabilidade: Você não responsabilizará a NinjaOne por consequências adversas ou não intencionais resultantes do seu uso do script e renunciará a quaisquer direitos ou tutelas legais que possa ter contra a NinjaOne em relação ao seu uso do script.
  • EULA: Se você for cliente da NinjaOne, o uso do script está sujeito ao Contrato de Licença de Usuário Final aplicável a você (EULA).