目录

简介

先决条件

要求

使用的组件

概述

使用PowerShell更新动态IP（硬编码IP）

允许编写动态IP更新脚本的方法

简介

本文档介绍如何在Cisco Umbrella中使用PowerShell为动态网络更新IP地址。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档中的信息基于Cisco Umbrella。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

概述

本文旨在作为一般概述。使用动态IP地址维护网络文章中提供了支持使用动态IP更新Umbrella的选项列表。

.

您可以使用任何脚本方法使用API更新您的IP地址。  本文演示如何使用PowerShell。

开始此过程之前：

- 按照使用动态IP地址维护网络一文中的详细信息配置控制面板。

- 在Deployments > Networks下的Umbrella Dashboard中记录动态网络的名称。

使用PowerShell更新动态IP（硬编码IP）

1.确定此网络的当前外部IP地址。这必须从此网络上的计算机执行。

$MyIp = Resolve-DnsName myip.opendns.com | Select -ExpandProperty IPAddress

2.获取凭证。请注意，这些设备必须对您的控制面板具有完全管理权限。

$MyCredential = Get-Credential

这将打开一个弹出窗口。

3.输入您的电子邮件地址和密码。然后，您可以使用此命令使用这些凭证发布更新：

Invoke-RestMethod -Uri "https://updates.opendns.com/nic/update?hostname=biscuit&myip=$MyIP" -Credential $MyCredential

允许编写动态IP更新脚本的方法

此方法需要预存储凭据以供无人值守使用。

警告：此方法不安全，仅作为示例提供。这仅在PowerShell 5.1上进行了测试。

1.首先，生成包含密码的模糊文件。此操作只需运行一次。输入控制面板中任何完整管理员用户的电子邮件地址和密码。

(Get-Credential).Password | ConvertFrom-SecureString | Out-File "C:\MyPassword.txt"

2.然后，您可以在完整的脚本中使用此文件：

$UmbrellaNetwork = "your network name"

$User = "your admin email address"

$MyIp = Resolve-DnsName myip.opendns.com | Select -ExpandProperty IPAddress

$File = "C:\MyPassword.txt"

$MyCredential=New-Object -TypeName System.Management.Automation.PSCredential ` -ArgumentList $User, (Get-Content $File | ConvertTo-SecureString)

Invoke-RestMethod -Uri "https://updates.opendns.com/nic/update?hostname=$UmbrellaNetwork&myip=$MyIp" -Credential $MyCredential