Så här hanterar du starttypen för UPnP Device Host Service med PowerShell

UPnP-tjänsten (Universal Plug and Play) Device Host är en viktig komponent i många IT-miljöer, eftersom den gör det möjligt för enheter att ansluta och kommunicera sömlöst i ett nätverk. Att hantera starttypen för denna tjänst är avgörande för både driftseffektivitet och säkerhet. Den här artikeln handlar om ett PowerShell-skript som är utformat för att ange starttyp för tjänsten UPnP Device Host.

Bakgrund

UPnP Device Host-tjänsten underlättar upptäckt och kontroll av enheter, vilket gör det enklare för enheter att ansluta till nätverk utan manuell konfiguration. Men bekvämligheten innebär även potentiella säkerhetsrisker. IT-proffs och tjänsteleverantörer (MSP) behöver ofta kontrollera starttypen för denna tjänst för att hitta en balans mellan funktionalitet och säkerhet.

Manus

#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 {}

 

Få tillgång till över 300 skript i NinjaOne Dojo

Få tillgång till

Detaljerad uppdelning

Skriptet inleds med ett CmdletBinding-attribut som anger avancerade funktioner som fungerar på samma sätt som cmdlets. Param-blocket definierar parametrarna för skriptet, med standardstarttypen inställd på “Inaktiverad”.

Begin-blocket innehåller en funktion, Test-IsElevated, som kontrollerar om skriptet körs med administratörsbehörighet. Detta är viktigt eftersom ändring av serviceinställningar vanligtvis kräver förhöjda behörigheter.

I processblocket kontrollerar skriptet först om det finns förhöjda behörigheter. Om den inte finns, ger den ett felmeddelande. Om behörigheterna är tillräckliga försöker den ange starttypen för tjänsten UPnP Device Host med hjälp av cmdlet Set-Service. Eventuella fel som uppstår under denna process fångas upp och visas.

Potentiella användningsområden

Föreställ dig en IT-expert, Alex, som arbetar på ett medelstort företag. Efter en säkerhetsgranskning rekommenderas att UPnP-tjänster inaktiveras på servrar som inte använder dem. Alex kan använda det här skriptet för att snabbt ställa in starttypen för UPnP Device Host-tjänsten till “Inaktiverad” på flera servrar, vilket säkerställer att säkerhetsrekommendationen följs.

Jämförelser

Även om Windows Services GUI tillåter manuell justering av starttyper för tjänster, är det inte skalbart för flera system. Grupprinciper kan även användas, men det kan vara överdrivet för en enkel ändring och kan vara komplicerat att konfigurera. Detta skript erbjuder en medelväg – det är mer skalbart än manuella metoder och enklare än grupprinciper.

Vanliga frågor

  • Kan jag använda skriptet på vilken Windows-maskin som helst?
    Skriptet stöder Windows 10 och Windows Server 2016 och framåt.
  • Vad händer om jag vill ange en annan standardstarttyp?
    Du kan ändra standardvärdet för $StartupType i param-blocket.

Konsekvenser för säkerheten

UPnP Device Host-tjänsten är bekväm, men om den inte är markerad kan den utgöra en potentiell säkerhetsrisk. Genom att kontrollera dess starttyp kan IT-personal minska potentiella sårbarheter. Var dock noga med att inte störa nödvändiga tjänster, eftersom det kan påverka enheternas anslutningsmöjligheter och funktionalitet.

Rekommendationer

  • Testa alltid skriptet i en kontrollerad miljö innan du distribuerar det i produktion.
  • Granska regelbundet starttypen för kritiska tjänster som UPnP Device Host för att säkerställa att de överensstämmer med organisationens säkerhetsrutiner.

Avslutande tankar

I det ständigt föränderliga IT-landskapet kan verktyg som NinjaOne vara ovärderliga. Med sina omfattande funktioner för IT-övervakning och -hantering kan NinjaOne komplettera skript som det som diskuteras och erbjuda en helhetssyn på IT-hantering. Genom att använda både manuella skript och automatiserade verktyg kan IT-personal se till att tjänster som UPnP Device Host är både funktionella och säkra.

Next Steps

Building an efficient and effective IT team requires a centralized solution that acts as your core service deliver tool. NinjaOne enables IT teams to monitor, manage, secure, and support all their devices, wherever they are, without the need for complex on-premises infrastructure.

Learn more about NinjaOne Remote Script Deployment, check out a live tour, or start your free trial of the NinjaOne platform.

Kategorier:

Du kanske även gillar

×

Se NinjaOne i aktion!

Genom att skicka detta formulär accepterar jag NinjaOne:s integritetspolicy.

NinjaOne Villkor och bestämmelser

Genom att klicka på knappen “Jag accepterar” nedan anger du att du accepterar följande juridiska villkor samt våra användarvillkor:

  • Äganderätt: NinjaOne äger och kommer att fortsätta att äga alla rättigheter, titlar och intressen i och till manuset (inklusive upphovsrätten). NinjaOne ger dig en begränsad licens att använda skriptet i enlighet med dessa juridiska villkor.
  • Begränsning av användning: Du får endast använda skriptet för dina legitima personliga eller interna affärssyften, och du får inte dela skriptet med någon annan part.
  • Republikbildning Förbud: Du får under inga omständigheter återpublicera skriptet i något skriptbibliotek som tillhör eller kontrolleras av någon annan programvaruleverantör.
  • Friskrivning från garantiansvar: Skriptet tillhandahålls “i befintligt skick” och “som tillgängligt”, utan garanti av något slag. NinjaOne ger inga löften eller garantier om att skriptet kommer att vara fritt från defekter eller att det kommer att uppfylla dina specifika behov eller förväntningar.
  • Antagande av risk: Din användning av skriptet sker på egen risk. Du bekräftar att det finns vissa inneboende risker med att använda skriptet, och du förstår och tar på dig var och en av dessa risker.
  • Avstående och befrielse: Du kommer inte att hålla NinjaOne ansvarig för några negativa eller oavsiktliga konsekvenser till följd av din användning av skriptet, och du avstår från alla juridiska eller skäliga rättigheter eller rättsmedel som du kan ha mot NinjaOne i samband med din användning av skriptet.
  • EULA: Om du är en NinjaOne-kund omfattas din användning av skriptet av det licensavtal för slutanvändare som gäller för dig (EULA).