# 如果模型直接返回文本回复(没有工具调用),说明任务已完成 if (-not$response.tool_calls) { Write-Host"`n=== Agent 完成 ==="-ForegroundColor Green Write-Host"最终回复: $($response.content)"-ForegroundColor White return$response.content }
Name Uri Trusted Priority ---------------------- PSGallery https://www.powershellgallery.com/api/v2 True 50 MyCompanyGallery https://pkgs.dev.azure.com/... True 30 私有仓库 MyCompanyGallery 注册完成
Name Version Description ---------------------- Pester 5.7.1 Pester provides a framework for running BDD tests
--- 按标签搜索 --- Name Version Description ---------------------- Az.Accounts 3.0.2 Microsoft Azure PowerShell... Az.Compute 7.0.1 Microsoft Azure PowerShell Compute...
Pester 已安装
Name Version InstalledLocation ---------------------------- Pester 5.7.1 /Users/user/.local/share/powershell/Modules
目标子网: snet-endpoints (10.0.2.0/24) 正在创建 Private Endpoint: pe-prod-storage ... Private Endpoint 创建完成 创建 Private DNS Zone: privatelink.blob.core.windows.net 关联 DNS Zone 到虚拟网络: vnet-prod-eastus Private Endpoint IP: 10.0.2.4 DNS A 记录已创建: stproddata001 -> 10.0.2.4
DNS 解析验证: stproddata001.blob.core.windows.net -> 10.0.2.4
从输出可以看到,Storage Account 的 FQDN 已经解析到 VNet 内的私有 IP 10.0.2.4,而不是公网地址。这意味着同一 VNet 内的所有虚拟机访问该 Storage Account 时,流量不会离开 Microsoft 骨干网。DNS Zone 的自动关联确保了无需修改应用配置,原有的连接字符串即可直接工作。
Private Link Service 构建
Private Link Service 是 Private Endpoint 的镜像能力——它允许你将 VNet 内部运行的服务(如 API 服务、中间件)通过私有连接暴露给其他 Azure 租户或订阅。下面的脚本展示了如何创建 Private Link Service,配置 NAT 规则和访问控制策略。
if ($visibilityList.Count -gt0) { $plsParams["Visibility"] = $visibilityList }
if ($autoApproval) { $plsParams["AutoApproval"] = $autoApproval }
$pls = New-AzPrivateLinkService @plsParams
Write-Host"Private Link Service 创建完成"-ForegroundColor Green Write-Host"服务别名 (Alias): $($pls.Alias)"-ForegroundColor Green Write-Host"服务资源 ID: $($pls.Id)"-ForegroundColor DarkGray
合规报告清晰地暴露了两个风险点:pe-prod-sql 的 SQL Server 公网端点未禁用,意味着虽然 Private Endpoint 已配置,但数据仍可能通过公网路径被访问,网络隔离形同虚设;pe-staging-storage 的 DNS 解析指向公网 IP 20.150.12.34,说明 Private DNS Zone 配置不完整或 VNet Link 缺失。合规率 50% 表明环境存在明显的配置漂移,建议将此检查集成到 Azure DevOps Pipeline 中,在每次基础设施变更后自动运行。
DNS 解析范围:Private DNS Zone 的 A 记录仅在关联的 VNet 内生效。如果本地数据中心通过 ExpressRoute 或 VPN 连接到 Azure VNet,需要额外配置 DNS 条件转发器或自定义 DNS 服务器,将 Azure 服务域名转发到 Azure 提供的 DNS 代理(168.63.129.16)进行解析。
在 Windows 系统管理中,CIM(Common Information Model)和 WMI(Windows Management Instrumentation)是获取系统底层信息的核心接口。日常运维中我们经常使用 Get-CimInstance 来查询服务状态、磁盘信息等,但这仅仅是冰山一角。CIM 提供的高级查询能力——WQL 查询语言、关联遍历、事件订阅、远程会话管理——可以让你对整个 Windows 基础设施进行深度洞察。
# 4. LIKE 模糊查询:查找所有包含 "SQL" 的服务 Get-CimInstance-Query ` "SELECT Name, State, StartMode FROM Win32_Service WHERE Name LIKE '%SQL%'" | Select-Object Name, State, StartMode
Computer OSType LastSeen -------- ------ -------- prod-web-01 Linux 2026-03-24T07:58:32Z prod-web-02 Linux 2026-03-24T07:58:28Z prod-db-01 Linux 2026-03-24T07:57:45Z prod-app-01 Windows 2026-03-24T07:58:10Z prod-app-02 Windows 2026-03-24T07:58:05Z staging-web-01 Linux 2026-03-24T07:55:12Z dev-box-01 Linux 2026-03-24T07:30:00Z
# 使用 Add-Type 加载 Win32 API Add-Type@" using System; using System.Runtime.InteropServices; using System.Text; public class Win32Api { [DllImport("user32.dll")] public static extern bool SetForegroundWindow(IntPtr hWnd); [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); [DllImport("user32.dll")] public static extern bool IsWindowVisible(IntPtr hWnd); [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] public static extern int GetWindowTextLength(IntPtr hWnd); [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount); public const int SW_RESTORE = 9; public const int SW_MINIMIZE = 6; public const int SW_MAXIMIZE = 3; } "@
在现代云原生开发中,基础设施即代码(Infrastructure as Code,IaC)已经成为团队协作和持续交付的基石。传统 ARM Template 虽然功能强大,但 JSON 语法的冗长和嵌套层级让维护成本居高不下。微软推出的 Bicep 语言正是为了解决这个痛点而诞生的——它是一种透明抽象(transparent abstraction),编译后生成标准 ARM Template,同时提供了更简洁的声明式语法、类型安全和模块化支持。
Bicep 的核心优势在于:语法简洁(去掉了 JSON 的大量样板代码)、编译期类型检查(在部署前就能发现错误)、模块化设计(支持将复杂部署拆分为可复用的模块),以及与 Azure 生态的深度集成。配合 PowerShell 的 Az 模块,我们可以构建从开发到生产的完整部署流水线,实现环境一致性管理和自动化运维。