# Source for SKU: https://thelazyadministrator.com/2018/03/19/get-friendly-license-name-for-all-users-in-office-365-using-powershell/ # May needs updates later on $Script:O365SKU = @{ "O365_BUSINESS_ESSENTIALS" = "Office 365 Business Essentials" "O365_BUSINESS_PREMIUM" = "Office 365 Business Premium" "DESKLESSPACK" = "Office 365 (Plan K1)" "DESKLESSWOFFPACK" = "Office 365 (Plan K2)" "LITEPACK" = "Office 365 (Plan P1)" "EXCHANGESTANDARD" = "Office 365 Exchange Online Only" "STANDARDPACK" = "Enterprise Plan E1" "STANDARDWOFFPACK" = "Office 365 (Plan E2)" "ENTERPRISEPACK" = "Enterprise Plan E3" "ENTERPRISEPACKLRG" = "Enterprise Plan E3" "ENTERPRISEWITHSCAL" = "Enterprise Plan E4" "STANDARDPACK_STUDENT" = "Office 365 (Plan A1) for Students" "STANDARDWOFFPACKPACK_STUDENT" = "Office 365 (Plan A2) for Students" "ENTERPRISEPACK_STUDENT" = "Office 365 (Plan A3) for Students" "ENTERPRISEWITHSCAL_STUDENT" = "Office 365 (Plan A4) for Students" "STANDARDPACK_FACULTY" = "Office 365 (Plan A1) for Faculty" "STANDARDWOFFPACKPACK_FACULTY" = "Office 365 (Plan A2) for Faculty" "ENTERPRISEPACK_FACULTY" = "Office 365 (Plan A3) for Faculty" "ENTERPRISEWITHSCAL_FACULTY" = "Office 365 (Plan A4) for Faculty" "ENTERPRISEPACK_B_PILOT" = "Office 365 (Enterprise Preview)" "STANDARD_B_PILOT" = "Office 365 (Small Business Preview)" "VISIOCLIENT" = "Visio Pro Online" "POWER_BI_ADDON" = "Office 365 Power BI Addon" "POWER_BI_INDIVIDUAL_USE" = "Power BI Individual User" "POWER_BI_STANDALONE" = "Power BI Stand Alone" "POWER_BI_STANDARD" = "Power-BI Standard" "PROJECTESSENTIALS" = "Project Lite" "PROJECTCLIENT" = "Project Professional" "PROJECTONLINE_PLAN_1" = "Project Online" "PROJECTONLINE_PLAN_2" = "Project Online and PRO" "ProjectPremium" = "Project Online Premium" "ECAL_SERVICES" = "ECAL" "EMS" = "Enterprise Mobility Suite" "RIGHTSMANAGEMENT_ADHOC" = "Windows Azure Rights Management" "MCOMEETADV" = "PSTN conferencing" "SHAREPOINTSTORAGE" = "SharePoint storage" "PLANNERSTANDALONE" = "Planner Standalone" "CRMIUR" = "CMRIUR" "BI_AZURE_P1" = "Power BI Reporting and Analytics" "INTUNE_A" = "Windows Intune Plan A" "PROJECTWORKMANAGEMENT" = "Office 365 Planner Preview" "ATP_ENTERPRISE" = "Exchange Online Advanced Threat Protection" "EQUIVIO_ANALYTICS" = "Office 365 Advanced eDiscovery" "AAD_BASIC" = "Azure Active Directory Basic" "RMS_S_ENTERPRISE" = "Azure Active Directory Rights Management" "AAD_PREMIUM" = "Azure Active Directory Premium" "MFA_PREMIUM" = "Azure Multi-Factor Authentication" "STANDARDPACK_GOV" = "Microsoft Office 365 (Plan G1) for Government" "STANDARDWOFFPACK_GOV" = "Microsoft Office 365 (Plan G2) for Government" "ENTERPRISEPACK_GOV" = "Microsoft Office 365 (Plan G3) for Government" "ENTERPRISEWITHSCAL_GOV" = "Microsoft Office 365 (Plan G4) for Government" "DESKLESSPACK_GOV" = "Microsoft Office 365 (Plan K1) for Government" "ESKLESSWOFFPACK_GOV" = "Microsoft Office 365 (Plan K2) for Government" "EXCHANGESTANDARD_GOV" = "Microsoft Office 365 Exchange Online (Plan 1) only for Government" "EXCHANGEENTERPRISE_GOV" = "Microsoft Office 365 Exchange Online (Plan 2) only for Government" "SHAREPOINTDESKLESS_GOV" = "SharePoint Online Kiosk" "EXCHANGE_S_DESKLESS_GOV" = "Exchange Kiosk" "RMS_S_ENTERPRISE_GOV" = "Windows Azure Active Directory Rights Management" "OFFICESUBSCRIPTION_GOV" = "Office ProPlus" "MCOSTANDARD_GOV" = "Lync Plan 2G" "SHAREPOINTWAC_GOV" = "Office Online for Government" "SHAREPOINTENTERPRISE_GOV" = "SharePoint Plan 2G" "EXCHANGE_S_ENTERPRISE_GOV" = "Exchange Plan 2G" "EXCHANGE_S_ARCHIVE_ADDON_GOV" = "Exchange Online Archiving" "EXCHANGE_S_DESKLESS" = "Exchange Online Kiosk" "SHAREPOINTDESKLESS" = "SharePoint Online Kiosk" "SHAREPOINTWAC" = "Office Online" "YAMMER_ENTERPRISE" = "Yammer for the Starship Enterprise" "EXCHANGE_L_STANDARD" = "Exchange Online (Plan 1)" "MCOLITE" = "Lync Online (Plan 1)" "SHAREPOINTLITE" = "SharePoint Online (Plan 1)" "OFFICE_PRO_PLUS_SUBSCRIPTION_SMBIZ" = "Office ProPlus" "EXCHANGE_S_STANDARD_MIDMARKET" = "Exchange Online (Plan 1)" "MCOSTANDARD_MIDMARKET" = "Lync Online (Plan 1)" "SHAREPOINTENTERPRISE_MIDMARKET" = "SharePoint Online (Plan 1)" "OFFICESUBSCRIPTION" = "Office ProPlus" "YAMMER_MIDSIZE" = "Yammer" "DYN365_ENTERPRISE_PLAN1" = "Dynamics 365 Customer Engagement Plan Enterprise Edition" "ENTERPRISEPREMIUM_NOPSTNCONF" = "Enterprise E5 (without Audio Conferencing)" "ENTERPRISEPREMIUM" = "Enterprise E5 (with Audio Conferencing)" "MCOSTANDARD" = "Skype for Business Online Standalone Plan 2" "PROJECT_MADEIRA_PREVIEW_IW_SKU" = "Dynamics 365 for Financials for IWs" "STANDARDWOFFPACK_IW_STUDENT" = "Office 365 Education for Students" "STANDARDWOFFPACK_IW_FACULTY" = "Office 365 Education for Faculty" "EOP_ENTERPRISE_FACULTY" = "Exchange Online Protection for Faculty" "EXCHANGESTANDARD_STUDENT" = "Exchange Online (Plan 1) for Students" "OFFICESUBSCRIPTION_STUDENT" = "Office ProPlus Student Benefit" "STANDARDWOFFPACK_FACULTY" = "Office 365 Education E1 for Faculty" "STANDARDWOFFPACK_STUDENT" = "Microsoft Office 365 (Plan A2) for Students" "DYN365_FINANCIALS_BUSINESS_SKU" = "Dynamics 365 for Financials Business Edition" "DYN365_FINANCIALS_TEAM_MEMBERS_SKU" = "Dynamics 365 for Team Members Business Edition" "FLOW_FREE" = "Microsoft Flow Free" "POWER_BI_PRO" = "Power BI Pro" "O365_BUSINESS" = "Office 365 Business" "DYN365_ENTERPRISE_SALES" = "Dynamics Office 365 Enterprise Sales" "RIGHTSMANAGEMENT" = "Rights Management" "PROJECTPROFESSIONAL" = "Project Professional" "VISIOONLINE_PLAN1" = "Visio Online Plan 1" "EXCHANGEENTERPRISE" = "Exchange Online Plan 2" "DYN365_ENTERPRISE_P1_IW" = "Dynamics 365 P1 Trial for Information Workers" "DYN365_ENTERPRISE_TEAM_MEMBERS" = "Dynamics 365 For Team Members Enterprise Edition" "CRMSTANDARD" = "Microsoft Dynamics CRM Online Professional" "EXCHANGEARCHIVE_ADDON" = "Exchange Online Archiving For Exchange Online" "EXCHANGEDESKLESS" = "Exchange Online Kiosk" "SPZA_IW" = "App Connect" "WINDOWS_STORE" = "Windows Store for Business" "MCOEV" = "Microsoft Phone System" "VIDEO_INTEROP" = "Polycom Skype Meeting Video Interop for Skype for Business" "SPE_E5" = "Microsoft 365 E5" "SPE_E3" = "Microsoft 365 E3" "ATA" = "Advanced Threat Analytics" "MCOPSTN2" = "Domestic and International Calling Plan" "FLOW_P1" = "Microsoft Flow Plan 1" "FLOW_P2" = "Microsoft Flow Plan 2" "POWERAPPS_VIRAL" = "Microsoft PowerApps Plan 2" } function Get-NavDevice { [CmdletBinding(SupportsShouldProcess = $true, DefaultParameterSetName='ByName')] param ( [Parameter(ParameterSetName='ByName')] [parameter(HelpMessage = 'Search with part of the Devicename (FQDN hostname)')] [ValidateNotNullOrEmpty()] [string]$Name, [Parameter(ParameterSetName='ByModel')] [parameter(HelpMessage = 'Search with part of the model name')] [ValidateNotNullOrEmpty()] [string]$Model, [Parameter(ParameterSetName='ByIP')] [parameter(HelpMessage = 'Search with part of the device IP address')] [ValidateNotNullOrEmpty()] [string]$IP, [parameter(HelpMessage = 'Type of device to include, for example: SW, GSW, EDGE etc.')] [ValidateNotNullOrEmpty()] [ValidateSet('SW','GSW','EDGE','SRV','POWER','WLAN','OTHER')] [string]$Type ) IF ($PSBoundParameters.ContainsKey('Name')) {$UriSuffix = "/?page_size=50000&search=$Name"} ELSE {$UriSuffix = '/?page_size=50000'} IF ($Model -and $Type) {$Filter = {($_.category.id -eq "$Type") -and ($_.chassis.model_name -like "*$Model*")}} ELSEIF ($IP -and $Type) {$Filter = {($_.category.id -eq "$Type") -and ($_.ip -eq "$IP")}} ELSEIF ($Model) {$Filter = {$_.chassis.model_name -like "*$Model*"}} ELSEIF ($IP) {$Filter = {$_.ip -eq "$IP"}} ELSEIF ($Type) {$Filter = {$_.category.id -eq "$Type"}} ELSE {$Filter = {$_ -like '*'}} $APIUri = 'http://8.8.8.8/api/1/netbox' + $UriSuffix $ApiQuery = Invoke-RestMethod -Method Get -Headers @{'Authorization'='token cakewalkman20321312414123'} -Uri $APIUri Write-Debug "The value of results.next is ($ApiQuery).Next" Write-Debug "The value of UriSuffix is $UriSuffix" Write-Debug "The value of ApiQuery is ($ApiQuery).results" Write-Debug "The value of ApiUri is $ApiUri" Write-Debug "The value of Filter before foreach is $Filter" $Output = $APIQuery.Results | Where-Object -FilterScript $Filter | ForEach-Object { New-Object -TypeName psobject -Property @{ Devicename = $_.sysname Type = $_.category.id IP = $_.ip NetboxID = $_.id Modelname = $_.chassis.model_name Serialnumber = $_.chassis.serial Room = $_.room.location + ' ' + $_.room.id RoomDescription = $_.room.description SoftwareVersion = $_.type.description + '' +$_.type.version HardwareRevision = $_.chassis.hardware_revision FirmwareRevision = $_.chassis.firmware_revision SoftwareRevision = $_.chassis.software_revision OrganizationId = $_.organization.Id OrganizationParent = $_.organization.parent OrganizationDescription = $_.organization.description SNMPVersion = $_.snmp_version UpTime = $_.up_since Status = SWITCH ($_.up) { 'Y' {'Online'} 'N' {'Offline'} } Discovered = $_.discovered Group = $_.groups.ID } } Write-Debug "The value of Filter after foreach is $Filter" Write-Debug "The value of Output after foreach is $Output" Write-Output $Output } # SIG # Begin signature block # MIIN+wYJKoZIhvcNAQcCoIIN7DCCDegCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUBFMviPf79A/ToKmXFHg2x+cN # hTigggsxMIIFSTCCBDGgAwIBAgIRAPMKxE4HZQs+EipTj3vsWEUwDQYJKoZIhvcN # AQELBQAwfTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3Rl # cjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQx # IzAhBgNVBAMTGkNPTU9ETyBSU0EgQ29kZSBTaWduaW5nIENBMB4XDTE4MTExNjAw # MDAwMFoXDTIyMTExNjIzNTk1OVowgY4xCzAJBgNVBAYTAk5PMQ0wCwYDVQQRDAQ2 # NDU2MRgwFgYDVQQIDA9Nb3JlIG9nIFJvbXNkYWwxDzANBgNVBAcMBlNrYWFsYTEX # MBUGA1UECQwOS3Zlcm5odXNsaWEgMTgxFTATBgNVBAoMDExhcnMgU3ZpbmdlbjEV # MBMGA1UEAwwMTGFycyBTdmluZ2VuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB # CgKCAQEA3lYNFOUtf0eMeUVVQlCLQTVFJLW5H/U54jYPdAJYtADo/FiZlDtvqcnr # XfFXg7Y1d6yYItV+QsW3eaZGRRbqe7LNpYD7xqxfD1fLWXXXVGr3Bohr0tt+JZ6i # u9+VjBKoypbk81pclZbp1BeXD1LYEfBE0g8avFAfiwT7JYg8qYgCQaDikq69Xijr # qw8hug7fJ1aEzUG+g2o9hjZcaDMmAa8ohVYCmkk0tyybizdUA2P2iiOzcYGTwLih # VuvF7A1sNZ/jZ4ffHlhqLT68oP3dWwIzmkPxSV7vKE3yMITLEQmSP7/uJvp5qg0d # CLv2mz20fMUN2ad2i5QgJ+wnJ/FjuQIDAQABo4IBsDCCAawwHwYDVR0jBBgwFoAU # KZFg/4pN+uv5pmq4z/nmS71JzhIwHQYDVR0OBBYEFKx5HPnt0GiU4dXHDSGe7tCj # 0u5xMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG # AQUFBwMDMBEGCWCGSAGG+EIBAQQEAwIEEDBGBgNVHSAEPzA9MDsGDCsGAQQBsjEB # AgEDAjArMCkGCCsGAQUFBwIBFh1odHRwczovL3NlY3VyZS5jb21vZG8ubmV0L0NQ # UzBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01P # RE9SU0FDb2RlU2lnbmluZ0NBLmNybDB0BggrBgEFBQcBAQRoMGYwPgYIKwYBBQUH # MAKGMmh0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1JTQUNvZGVTaWduaW5n # Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wIQYD # VR0RBBowGIEWbGFycy5zdmluZ2VuQGdtYWlsLmNvbTANBgkqhkiG9w0BAQsFAAOC # AQEAVVafexhPkBmVX66iUEO9cka2KDhnoa67LS3+vS0+Q+jjny9bVTYvZXbSaDmk # WgQKZZk3iK0AMum3eCg+Hkm4bkfar2zBUeABX45IdAV1I698GHZkmsIWAjematn7 # 5qQnX3t0Xjz6RBkvfTdItY6sFzZUAkDUGtiy3BCfANgkQKhqTvRljK6S653tynqt # yVvb65E+K7rbe6S00L6ichAUCYM2EUV9PpvZMViUrz74pAlOl2oopOBc8SGPWC+U # Ja/IdQocXch1+ePnkktgZBDqVMkoP846Bh0CrPOxBPAAgMy/407jXXfjqJL8TZdD # MvT9GeBtv8Spl9aQSl+lYRzA+zCCBeAwggPIoAMCAQICEC58h8wOk0pS/pT9HLfN # NK8wDQYJKoZIhvcNAQEMBQAwgYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVh # dGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9E # TyBDQSBMaW1pdGVkMSswKQYDVQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24g # QXV0aG9yaXR5MB4XDTEzMDUwOTAwMDAwMFoXDTI4MDUwODIzNTk1OVowfTELMAkG # A1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMH # U2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxIzAhBgNVBAMTGkNP # TU9ETyBSU0EgQ29kZSBTaWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A # MIIBCgKCAQEAppiQY3eRNH+K0d3pZzER68we/TEds7liVz+TvFvjnx4kMhEna7xR # kafPnp4ls1+BqBgPHR4gMA77YXuGCbPj/aJonRwsnb9y4+R1oOU1I47Jiu4aDGTH # 2EKhe7VSA0s6sI4jS0tj4CKUN3vVeZAKFBhRLOb+wRLwHD9hYQqMotz2wzCqzSgY # dUjBeVoIzbuMVYz31HaQOjNGUHOYXPSFSmsPgN1e1r39qS/AJfX5eNeNXxDCRFU8 # kDwxRstwrgepCuOvwQFvkBoj4l8428YIXUezg0HwLgA3FLkSqnmSUs2HD3vYYimk # fjC9G7WMcrRI8uPoIfleTGJ5iwIGn3/VCwIDAQABo4IBUTCCAU0wHwYDVR0jBBgw # FoAUu69+Aj36pvE8hI6t7jiY7NkyMtQwHQYDVR0OBBYEFCmRYP+KTfrr+aZquM/5 # 5ku9Sc4SMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMBMGA1Ud # JQQMMAoGCCsGAQUFBwMDMBEGA1UdIAQKMAgwBgYEVR0gADBMBgNVHR8ERTBDMEGg # P6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9SU0FDZXJ0aWZpY2F0 # aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcBAQRlMGMwOwYIKwYBBQUHMAKGL2h0 # dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1JTQUFkZFRydXN0Q0EuY3J0MCQG # CCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wDQYJKoZIhvcNAQEM # BQADggIBAAI/AjnD7vjKO4neDG1NsfFOkk+vwjgsBMzFYxGrCWOvq6LXAj/MbxnD # PdYaCJT/JdipiKcrEBrgm7EHIhpRHDrU4ekJv+YkdK8eexYxbiPvVFEtUgLidQgF # TPG3UeFRAMaH9mzuEER2V2rx31hrIapJ1Hw3Tr3/tnVUQBg2V2cRzU8C5P7z2vx1 # F9vst/dlCSNJH0NXg+p+IHdhyE3yu2VNqPeFRQevemknZZApQIvfezpROYyoH3B5 # rW1CIKLPDGwDjEzNcweU51qOOgS6oqF8H8tjOhWn1BUbp1JHMqn0v2RH0aofU04y # MHPCb7d4gp1c/0a7ayIdiAv4G6o0pvyM9d1/ZYyMMVcx0DbsR6HPy4uo7xwYWMUG # d8pLm1GvTAhKeo/io1Lijo7MJuSy2OU4wqjtxoGcNWupWGFKCpe0S0K2VZ2+medw # bVn4bSoMfxlgXwyaiGwwrFIJkBYb/yud29AgyonqKH4yjhnfe0gzHtdl+K7J+IMU # k3Z9ZNCOzr41ff9yMU2fnr0ebC+ojwwGUPuMJ7N2yfTm18M04oyHIYZh/r9VdOEh # dwMKaGy75Mmp5s9ZJet87EUOeWZo6CLNuO+YhU2WETwJitB/vCgoE/tqylSNklzN # wmWYBp7OSFvUtTeTRkF8B93P+kPvumdh/31J4LswfVyA4+YWOUunMYICNDCCAjAC # AQEwgZIwfTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3Rl # cjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQx # IzAhBgNVBAMTGkNPTU9ETyBSU0EgQ29kZSBTaWduaW5nIENBAhEA8wrETgdlCz4S # KlOPe+xYRTAJBgUrDgMCGgUAoHgwGAYKKwYBBAGCNwIBDDEKMAigAoAAoQKAADAZ # BgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYB # BAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQUoLQ9bhjPF67RbYW30Ci2IcoFrmwwDQYJ # KoZIhvcNAQEBBQAEggEACRW7tarnEgyNEXPl1Bo24xhrSXDXbbNwh/0uj/lZvIks # gPbD/83mEVBAll2wnUmAWq1eI2CMWcNHd9XDhOHHva9QmVUOWkv/AXIrWm0x6o9m # bDlfnM72TT53tueOpCadtSN/wCCNtthF/Xi/nxaQo18x8NYaJSu/sLHwQOvLbvWE # T9R7TqThR7XPCCG1vUvEYZyHx87VT8joBmYtnu1tDxadRgjaAOgwO6z41McKSysS # O3S0fPLflhUJwWMmKSoBOZYlux8Q5kohboywqccPNNSCNWxevRkgRa7tGdgW49lw # kwr92kSf8LVOcm/4NK1Rz8Uuty9HP1yrfL6/zFFjzA== # SIG # End signature block