PowerShell使用-debug定位问题

PowerShell就像它的名字一样,很强大,用起来很方便,所以微软基本上所有的主流企业级产品都支持PowerShell,Azure也不例外。通过Azure门户网站固然是简单直观,但对于很多IT管理员或者开发者来说,用PowerShell脚本是更加方便的。我个人也是很喜欢PowerShell。

运行PowerShell命令时如果出错,一般情况下,根据错误信息,还是比较容易发现是哪里错了,但也有错误信息不够友好的情况,这个时候怎么来定位具体是哪出错了呢?使用-debug参数,它会把PowerShell这个黑盒子打开,将具体运行过程展示在你面前,这样就很方便定位问题了。

比如我最近就遇到这样一个情况。Azure中国(mooncake)上一个新的中继服务推出预览版了,叫混合连接,比起原来的WCF中继,因为是基于Web Socket,所以适用性更广,我也就很开心的尝试了,但在创建中继服务命名空间时就报错了。

PS C:\Users\allenl> $relayns = New-AzureRmRelayNamespace -ResourceGroupName $rgName -Name $namespaceName -Location $loca
tion
New-AzureRmRelayNamespace : Operation returned an invalid status code ‘NotFound‘
At line:1 char:12
+ $relayns = New-AzureRmRelayNamespace -ResourceGroupName $rgName -Name ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [New-AzureRmRelayNamespace], ErrorResponseException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.Relay.Commands.Namespace.NewAzureRelayNamespace

错误信息说NotFound,什么东西没找到?这个中继服务的资源提供商还没注册?资源组没创建?还是位置写的不对所以没找到?。。。

用-debug,马上答案就出来了。这个命令一直执行到成功发生HTTP请求去调用创建中继服务命名空间的REST API,结果得到相应如下

DEBUG: ============================ HTTP RESPONSE ============================

Status Code:
NotFound

Headers:
Pragma : no-cache
x-ms-failure-cause : gateway
x-ms-request-id : 267981bf-f3c8-4037-8698-c7bdfd34b45e
x-ms-correlation-request-id : 267981bf-f3c8-4037-8698-c7bdfd34b45e
x-ms-routing-request-id : CHINAEAST:20170705T025822Z:267981bf-f3c8-4037-8698-c7bdfd34b45e
Strict-Transport-Security : max-age=31536000; includeSubDomains
Cache-Control : no-cache
Date : Wed, 05 Jul 2017 02:58:21 GMT

Body:
{
"error": {
"code": "ResourceGroupNotFound",
"message": "Resource group ‘relaydemorg‘ could not be found."
}
}

这里我们就可以看到具体的错误原因了,是因为资源组没有找到,一查发现原来是我的资源组名称提供错了,所以没找到。

以后PowerShell发现不够清晰的错误,用-debug调试,你会发现很好用的。

时间: 2024-08-05 17:37:06

PowerShell使用-debug定位问题的相关文章

kali实战-缓冲区溢出

我们之前可能都了解过自动化的程序,学习自动化程序的使用方法,但是在计算机领域有一个词语叫做"零日漏洞",这样的漏洞是如何发现的呢?有些漏洞通过远程就可以控制你的计算机,安装木马,达到这样的目的,他们是如何通过远程控制你的系统的呢?今天我们学习此类攻击中最主要一种:缓冲区溢出,通过缓冲区溢出我们就可以控制目标机器.基于本章的内容从原理上我们已经具备这样的方法可以自己去发现"零日漏洞",发现的原理和方法将在本章注意展开讲解. 加Q群交流kali Q群:108186516

在centos6.4上配置vim的一些零碎记录

上一篇日志已经step by step地实录了如何在本机mac上配置vim开发环境已经各种插件. 有了一定经验之后,把配置vim的环境到了实验室远程server上centos6.4的环境下配置,这台机器是内网服务器连外网比较麻烦. 主要就是多了server无法联网的条件,这个将来在公司配置开发机环境也是基本不能联网的,所以就当提前适应了吧. 这里把遇到的一些关键点记录下来,以便后个人后续查阅. 编译vim74 由于YouCompleteMe插件需要vim7.3高版本支持:而server上的vim

读《《Hadoop核心技术》作者翟周伟 :我与Hadoop的不解之缘》总结

原文网址:http://www.csdn.net/article/1970-01-01/2824661 1.Hadoop在百度得使用 Hadoop在百度的应用领域主要包括:大数据挖掘与分析,日志分析平台,数据仓库系统,用户行为分析系统,广告平台等存储与计算服务. 目前百度的Hadoop集群规模已经超过数十个至多,单集群节点数目超过5000台,每天处理的数据量超过8000TB.同时百度在Hadoop的基础上还开发了自己的日志分析平台.数据仓库系统,以及统一C++编程接口,并对Hadoop深度改造,

IDEA + maven 零基础构建 java agent 项目

200316-IDEA + maven 零基础构建 java agent 项目 Java Agent(java 探针)虽说在 jdk1.5 之后就有了,但是对于绝大多数的业务开发 javaer 来说,这个东西还是比较神奇和陌生的:虽说在实际的业务开发中,很少会涉及到 agent 开发,但是每个 java 开发都用过,比如使用 idea 写了个 HelloWorld.java,并运行一下, 仔细看控制台输出 本篇将作为 Java Agent 的入门篇,手把手教你开发一个统计方法耗时的 Java A

(17)Powershell中的重定向运算符

默认情况下,Powershell 把输出发送到屏幕显示.但是,Powershell也可以将输出重定向至一个文本文件,或将错误输出重定向至常规输出流. 重定向运算符有什么用 ? 重定向运算符意味着我们可以将命令的输出信息输出到指定的文件,完全满足脚本中的log的要求,即可以利用重定向打印脚本或命令执行的详细信息. Powershell 中有以下重定向运算符. 运算符 说明 示例 > 将输出发送到指定文件. PS D:\> Get-Process > process.txt >>

一个新人如何学习在大型系统中添加新功能和Debug

文章背景: 今年七月份正式入职,公司主营ERP软件,楼主所在的组主要负责二次开发,使用的语言是Java. 什么叫二次开发呢?ERP软件的客户都是企业.而这些企业之间的情况都有所不同,一套标准版本的企业资源管理系统必然难以百分之一百地满足每一家公司的所有要求.所以,在客户提出需求之后,程序员对系统进行增减修改,这就是二次开发. 另外,我们组还负责修复客户报上来的各种漏洞. 学会如何添加新模块新功能 为什么说从头到尾只看代码是不可行的? 基本上,财务系统跨越的年限都会有十几二十年,代码数千万级别,更

linux下mono,powershell安装教程

1简介 简单来说pash就是bash+powershell 2官网 https://github.com/Pash-Project/Pash 3下载fedora20---lxde桌面---32位版. http://download.fedoraproject.org/pub/fedora/linux/releases/20/Live/i386/Fedora-Live-LXDE-i686-20-1.iso 4用vmware虚拟机安装linux,设置用户root,密码=123456,用户user00

failed to sync branch You might need to open a shell and debug the state of this repo.

failed to sync branch You might need to open a shell and debug the state of this repo. i made some changes to a file a month ago. i just realized today that they didn't go anywhere; the GitHub web-site has no history of my changes. The client has no

linux下一键安装 powershell,的bash脚本

说明 目前,linux下的powershell约等于pash.希望大家专注mono,关注pash. 一键安装脚本包括for centos6,centos7,ubuntu 14.04  ubuntu 14.10 安装脚本是用yum或apt安装,mono官方最新版,然后编译安装pash最新版,最后生成两个命令: mybuild用于编译pash mypash用于运行pash 1 centos6 #!/bin/bash # centos6,一键安装mono,pash的shell脚本. # centos