新手学习PowerShell可能产生的问题

从零开始学Windows PowerShell(1) 初见基础命令 还记得之前我写过一篇文章《新手学习PowerShell可能产生的问题》,其中也做了一个投票调查是有关于多少人希望看到什么类型的PowerShell文章,统计结果出来后显示至少有三分之一的人选择了希望能有一些入门文章。要知道即便PowerShell已经面世至少十年了,市场上有关于PowerShell的资料和书籍也十分丰富,但是依然会有不少朋友不知道从何下手去系统的去学习PowerShell。所... 阅读详情

学到很多东西的诀窍,就是一下子不要学很多。 出自(洛克)

主要探讨下如何学习PowerShell和学习过程中可能会遇到的一些情况讨论,原因还是因为我发现大部分人还是处于想要了解PowerShell和用好PowerShell范围的。对了,之前我在我的微信公共订阅号做了一个投票调查,上次的投票结果出来了,从投票结果可以看出这一点,希望【关于更多PowerShell入门基础类的文章】占了绝大多数。所以我觉得特别有必要写一篇文章讨论下关于学习PowerShell的一些建议和一些理解误区。

这里写图片描述

写这篇文章时,我脑海里已经出现了几个方面来讨论,而为了一目了然,我用QA问答的内容形式排版。

Q1: 学习PowerShell需要有编程开发背景吗?

A1: 我多次在一些技术群以及媒介论坛上看到有新人问没有编程经验,学习PowerShell的话有必要去学习下开发吗?不少回答都显得多少有些误人子弟。他们的建议是询问者去学习C#甚至.NET这样才能很好的使用PowerShell。

而我的回答是,完全不用。

从学习角度来说,对于一个初学者,或者说可能之前并没有多少接触过编程概念的人而言,建议他去学习C#开发这是反其道而行的做法。往远的说,学习的首要目的是使自己所学的东西尽快产生乐趣,那么去学习.NET等编程知识,增加了学习的曲线陡峭,甚至很有可能在还没开始学习PowerShell时已经半途而废了。

从学习角度来说,对于一个初学者,或者说可能之前并没有多少接触过编程概念的人而言,建议他去学习C#开发这是反其道而行的做法。往远的说,学习的首要目的是使自己所学的东西尽快产生乐趣,那么导反其道而行去学习.NET等编程知识,甚至很有可能在还没开始学习PowerShell时已经半途而废了,因为。

从PowerShell本身而言,很多人认为PowerShell是基于.NET内核为基础,以及一些C#类似的语言,所以学习C# 和 .NET非常有必要。实则不然,如果你能对于PowerShell有一些表面上的观察就应该发现PowerShell最基本的命令都是以【动-名词】的方式构成,这难道不是有意为之吗?PowerShell从一开始的面世,微软对于PowerShell战略角度的定位、学习曲线等可都是经过深思熟虑的,而不是简单的为了模仿Linux Shell和为了替代Windows CMD而生。早先我在第一篇【我们为什么应该学习PowerShell】中曾就提到过,PowerShell具备平顺的学习曲线,它是一门易学易理解的一门脚本语言,所以请直接去学习它吧,微软可不想开发一个让很多人都望而退步的脚本语言,何况原来大批GUI操作者让他们转向自动化脚本是多么的困难,所以微软已经帮你降低了学习门槛了。但是,我也并不完全否认关于学习了.NET和C#的好处,如果你具备其它开发语言背景当然能够更好的帮助你去理解PowerShell,但仅仅是辅助而并非必要,由于对于刚入门的新手。

–

Q2: 如何学习PowerShell,有哪些宝典,神器吗?

A2: 这也是很多人时常会问到的一个问题,并没有什么所谓的宝典和神器,如果真的有的话,大家都知道了,也就根本不会出现这个问题。那么到底怎么学习呢?每个人的学习方法都是不同的,我只能给出我的建议,我认为最好的就是去看微软官方的说明文档建立基础之后再去看一些相关书籍。我是有幸国内较早第一批接触PowerShell的人,从最初打开那个蓝色窗口到现在经历的11个年头我始终认为官方文档是最好的入门教程,尤其对于上一个问题提到没有编程基础的人而言文档也清晰的说明了每个功能和命令的用法。曾经带过不少新手给他们的建议做法都是直接看文档,之后随着你对PowerShell的基本使用了解后可以看一些PowerShell实战的书籍,随着时间的积累,现在市面上已经有不少PowerShell经典的书籍了。当然到底是先看文档还是先看书又或者看视频完全都随个人的学习方式,这个就属于仁者见仁智者见智了。

–

Q3: 怎么样才算写好PowerShell,会写脚本会用命令就算吗?

A3: 这个问题存在不确定性,但是却有一定标准性,所以我还是想说说怎么样才能算写好一个基本算的上合格的PowerShell脚本。我曾经遇到过,也面试过不少编写脚本的人们,他们都具备多门高级编程语言学习的背景,但都出现过一个共性问题那就是会用A类语言去思考B类语言,我们都知道在编程世界中,所有编程语言就像人类真实世界的自然语言一样都是能够“互通”的,这样的就出现了一个结果,我看到不少PowerShell脚本里充斥着C#等其它编程语言思维的代码写法和编码风格,明明可以一个PowerShell内置命令配合一个参数能解决的问题,为什么要写一个函数附加引入dll库去解决呢?以及编码风格上并不是纯粹的PowerShell Style,就像一个人说了一口浓重中式英语的味道,这算会英语但不算英语好,虽然功能是达到了,但是这并不是合格的PowerShell脚本或者说写好了PowerShell,很容易就可以看出脚本开发者的PowerShell水平程度。

–

Q4: 我已经能写PowerShell脚本,但是为什么还是感觉不会用很多PowerShell命令?

A4: 即便是我已经用了多年PowerShell的人一样会遇到很多没见过的PowerShell命令,而且要知道PowerShell最重要包括现在依然最主要的使命是服务于所有微软产品,所以你会用PowerShell并不代表你能在某个微软产品上用好PowerShell,有Exchange版本的PowerShell, 有SharePoint版本的PowerShell,有Azure版本的PowerShell,有Windows Server版本的PowerShell等等等等,数百个大大小小的产品数万个命令,据不完全统计多年前PowerShell内置的命令库早已接近5位数,可想而知,这个地球上没有人能会用所有的PowerShell命令,这是极为正常不过的事了。另外要说的是,如果想以PowerShell为工作,那么你必须基于你所熟悉的产品为核心,然后利用PowerShell去辅助它,使它成为你高效的工具。

–

Q5: 我想用PowerShell解决一个问题,但是并没有找到可以解决这个问题的命令,是不是代表PowerShell做不了,或者我装的PowerShell版本太低?

A5: 目前大部分使用PowerShell的人我想都是基于Windows系统和微软产品为依托的架构环境,那么现在PowerShell百分之九十九都是能解决涉及微软系统的管理和微软产品的应用,如果你找不到相关针对性命令那也是十分正常,但这并不代表无法用PowerShell去解决,换个思路就能很好理解PowerShell的这一个个命令都是微软帮你封装好了,如果没有相关命令怎么办呢?那就自己写一个,在Windows PowerShell 早期版本的时候几乎没有多少内置系统管理的命令,那时候想要写一个修改系统时钟的脚本话,没有专门的命令可以从解刨问题,从原理角度出发,我了解到系统的时钟修改涉及到注册表键值,那么可以用注册表命令写一个修改注册表的小脚本就做到了,甚至你可以封装成一个命令给别人用。如果还不行呢,你可以引入.NET类库去做,随着PowerShell版本的迭代发布,调用PowerShell去做各种各样的事已经变的越来越方便。但是请相信我,绝大部分问题你几乎不会涉及更深层的开发,只是你没找到更好的解决方法而已。

–

回头看看写了不少,时钟的指针马上要指向第二天了,永远觉得时间不够用,许多事没有完成,不过如果能解答一些人心中的困惑和疑问那这些时间便是值得的。

其实还有各种各样的疑问问题没有归类,你可以在评论区一起与我和大家探讨当然也欢迎加入我们的微信群,但归根结底我认为很多新手遇到问题的原因在于过急,而没有一步步去学习和了解,当你了解后会发现很多问题属于很基础的问题,所以不要跨越性去学习,或许可以临时为了解决一个问题去临时翻阅下资料,但并不建议长期以往。我也曾遇到不少这类PowerShell使用者,他会使用PowerShell Level3技能的一些东西,却完全不知道Level1的技能,在一个Level1上的问题卡了很久,最后才发现越来非常简单帮助文档里都有说明,这就是长期以往用到哪现查资料而忽略了系统性循序渐进的学习后果。

Powershell简介 Powershell简介 PowerShell是一种功能强大的脚本语言和shell程序框架,主要用于Windows计算机方便管理员进行系统管理并有可能在未来取代Windows上的默认命令提示符。PowerShell脚本因其良好的功能特性常用于正常的系统管理和安全配置工作,然而,这些特性被攻击者理解并转化为攻击特性,也就成为了攻击者手中的攻城利器,给企业网络造成威胁。 百度百科解释: Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framew 阅读详情

相关推荐

解决Conda在PowerShell中的环境激活问题

Python环境管理工具Conda在Windows PowerShell中常遇到激活失败的问题,主要涉及PowerShell执行策略、Conda初始化配置和环境变量冲突。PowerShell默认的Restricted执行策略会阻止脚本运行,而Conda的激活命令依赖于运行conda-hook.ps1脚本。通过调整执行策略为RemoteSigned,重新初始化Conda环境,并优化环境变量配置,可以有效解决这些问题。这些技术实践不仅适用于Conda,也是Python开发环境配置的基础知识,尤其在多版本Pyth

weixin_33970449的博客 462

PowerShell 快速入门

PowerShell 是一种跨平台的任务自动化解决方案,由命令行 shell、脚本语言和配置管理框架组成。PowerShell 是微软发布的一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。PowerShell 于2016年8月18日开源并提供跨平台支持,可在 Windows、Linux 和 macOS 上运行。

Doublelv 的博客专栏。 8545

Powershell 学习 管道传输

数不对齐时:自定义属性 上一篇文章中我们介绍了使用ByPropertyName 管道传输,通过Import csv文件中的数据来传递给下一个命令作为输入。其实当我们认为创建一些数据时,使用CSV是非常简单的一种方式。但是如果需要你处理一些其他人提供的数据时,格式可能并不是你想要的,可能问题就会变得比较麻烦。 New-ADUser 该命令属于活动目录中的一个模块,存在与Win server 2...

weixin_42545594的博客 1010

PowerShell学习基础篇(使用帮助)

PowerShell不仅仅是一门脚本语言,其实是一种运行命令行工具的命令行Shell。虽然PowerShell可以通过脚本实现很复杂的功能,但脚本仅是使用PowerShell的一种方式。PowerShell为Windows管理员提供自动化管理的工具,微软的多个产品组都采用了PowerShell,第三方生态系统扩展也是基于PowerShell,并且全球的社区专家与爱好者也都帮助PowerShell变得越来越好。

weixin_49668551的博客 1万+

PowerShell 基础使用及相关问题

具体的执行策略可以参考官网连接:关于执行策略 - PowerShell | Microsoft Learn。

向往的是:佛祖堂前的鱼,静静听禅。 1425

PowerShell 学习感悟——2019年11月10日

解锁域账户

Lumiadragon的博客 322

运维:Powershell面向对象编程简介

本文介绍Powershell语言中对面向对象编程的支持。

jclee95的个人博客 706

PowerShell 学习笔记 - 1 PS Core 基础

PowerShell 学习笔记 - 1 PS Core 基础 本章主要探讨 PowerShell 核心,主要基于 Linux 平台上的 PowerShell Core 实现,实际上于 Windows PowerShell 平台上进行的实验获得的结果也不会有太大区别: # 运行容器 C:\Users\chuny>docker run -it --name ps-test-base mc...

cyw0ng 3888

Anaconda安装JupyterLab后Terminal报错?可能是这个隐藏的PowerShell坑

本文深入剖析了在Anaconda环境中安装JupyterLab后,Terminal终端无法启动并报错“powershell.exe”缺失的根本原因。问题核心在于Terminado模块与系统Shell的依赖关系在Windows平台上的特殊性,尤其是在Anaconda环境隔离下可能引发的路径查找失败。文章提供了从环境变量诊断、JupyterLab配置修改到构建健壮开发环境(如使用Docker容器化)的完整解决方案,帮助开发者彻底修复此问题并建立稳定的工作流。

gold的博客 953

PowerShell 编程探索及示例代码

在本文中,我们将深入了解 PowerShell 的基本知识,并提供一些示例代码帮助您更好地理解和使用 PowerShell。通过学习和实践,您可以进一步深入了解 PowerShell 的功能和用法,并利用其强大的功能来完成各种任务,提高工作效率。要安装 PowerShell,您可以访问 Microsoft 的官方网站,在下载中心找到适用于您的操作系统的版本并按照指示进行安装。在开发过程中,调试和错误处理是非常重要的。使用这些技巧,您可以更好地理解和修复脚本中的错误,并提高代码的质量和可靠性。

CyberLynxX的博客 445

Unity简单操作:PostProcessing的使用

Postprocessing是一个unity2018版本的集成后期插件,有了这个插件,之后用unity开发时,后期调整颜色、光晕等会很方便。 目录 新建一个postprocessing profile(配置文件)。​ 参数说明: 新建一个postprocessing profile(配置文件)。 在主相机下加一个组件PostProcess Layer。 注意:需要将相机的Layer层设置与Post Process Layer 下的Volume blending(体积混合)...

weixin_39114763的博客 7367

通过机器学习来检测Powershell恶意行为

讲在前面 国内外的各大厂商以及各类研究员多年来对在网络威胁中使用Powershell进行渗透的行为做了不同形式的报告,那么,为什么Poweshell在近几年的渗透中很受攻击中追捧呢,最大的特点就是Powershell的灵活性和丰富的功能使常规检测形同虚设。这篇文章在火眼(FireEye)的通过机器学习来检测Powershell恶意行为研究基础上进行部分修改后展示。 通过这篇文章,读者将会简单学习到: 为什么传统的“基于签名”或“基于规则”的检测引擎检测Powershell的威胁会遇到瓶颈 如何使用自

Ping_Pig的博客 1129

别再让会议变‘回音壁’:手把手教你调优WebRTC的AEC3回声消除(附实战代码)

本文深入解析WebRTC的AEC3回声消除技术,提供从参数调优到声学环境适配的实战指南。通过诊断回声特征、解剖核心参数(如filter.length_blocks和delay_estimate_smoothing)以及应对特殊场景(如密闭空间与开放办公区),帮助开发者有效解决视频会议中的回声问题,提升语音通信质量。附有实战代码和调试工具,适合需要优化实时通信体验的开发者。

weixin_29220405的博客 171

PowerShell安装过程中卡住问题的分析与解决

在Windows系统上安装PowerShell 7.4.4版本时,用户遇到了安装程序卡住的现象。具体表现为使用PowerShell-7.4.4-win-x64.msi安装包进行安装时,安装进度条停滞不前,既没有完成安装也没有显示任何错误信息。 ## 环境背景 发生问题的系统环境为Windows PowerShell 5.1版本(构建版本10.0.22621.3958),这是Windows 11...

gitblog_00514的博客 1062

FactoryTool量产神器实战:5分钟搞定多块RK3568板卡并行烧录

本文详细介绍了使用瑞芯微FactoryTool对多块RK3568板卡进行高效并行烧录的实战指南。文章从硬件连接、驱动配置、软件操作到排错技巧,提供了一套完整的量产解决方案,重点阐述了如何利用该工具在5分钟内完成多设备固件烧录,并确保eMMC存储的写入稳定性与效率,大幅提升生产线吞吐量。

b0c1d2的博客 986

ICESat-2数据下载的两种方法

ICESat-2数据下载

weixin_46341898的博客 2899

PowerShell

来源: TeamsSix 文章作者: TeamsSix 参考文章链接: https://teamssix.com/211027-163641.html#toc-heading-8 仅作为学习笔记,侵删 范例靶机:红日靶场的dc 1、介绍 PowerShell 可以简单的理解为 cmd 的高级版,cmd 能做的事在 PowerShell 中都能做,但 PowerShell 还能做很多 cmd 不能做的事情。 PowerShell 内置在 Windows 7、Windows Server 2008 R2 及更高

mingyqf的博客 4328

二叉树的操作之统计二叉树中节点的个数

一,问题描述 给定一颗二叉树,已知其根结点。 ①计算二叉树所有结点的个数 ②计算二叉树中叶子结点的个数 ③计算二叉树中满节点(度为2)的个数   二,算法分析 找出各个问题的基准条件,然后采用递归的方式实现。 ①计算二叉树所有结点的个数 1)当树为空时,结点个数为0,否则为根节点个数 加上 根的左子树中节点个数 再加上 根的右子树中节点的个数 借助遍历二叉树的思路,每访问一个结...

weixin_34200628的博客 4567

[PowerShell教程][09]PowerShell中的数组使用

 在日常处理中,除了使用像“数值类型”和“字符串类型”外,还需要使用能够包含其他对象的“集合”类型(请注意,这里的集合对应英文是Collection,而非数学概念上的Set。)。大多数常见语言,都提供一些操作集合类型的语法。最基本的集合类型就是数组类型,它提供了一种下标基于0的数组对象。首先通过几个简单的例子,来了解一下PowerShell中的数组是如何使用的。PS C:/> 1,a

Windows PowerShell 5557

国产麒麟系统下Kettle安装避坑指南:解决aarch64架构不支持问题

本文详细解析了在国产麒麟系统上部署Kettle时遇到的aarch64架构不支持问题,提供了从获取适配的SWT库、修改启动脚本到生产环境调优的完整解决方案。文章重点解决了ARM架构与Java GUI工具的兼容性挑战,并分享了内存配置、字体显示及Carte服务部署等实战经验,助力用户在国产化环境中稳定运行ETL流程。

weixin_29197835的博客 560

金蝶EAS uploadlogo漏洞实战:如何快速检测你的系统是否受影响

本文详细解析了金蝶EAS uploadlogo任意文件上传漏洞的检测与防护方法,帮助企业安全团队快速识别系统风险。通过资产发现、漏洞验证和应急响应方案,有效防范财务数据泄露和系统入侵风险,提升企业整体安全防护能力。

weixin_29322553的博客 386

Anaconda在PowerShell中无法使用activate激活环境

Anaconda在PowerShell中无法使用activate激活环境 并且使用Anaconda Navigator管理器也是可以成功激活环境的: 但是问题来了:我在windows自带的WindowsPowerShell里使用activate命令切换环境时,命令明明已经成功执行,但却没有成功切换环境,如图: 经过...

清晨的光明 9万+

【3天快速入门WPF】8-数据绑定基础

以下是一个简单的 WPF 数据绑定示例,使用两个TextBox控件分别表示Name和Age来进行进行数据绑定试验。运行程序后,你会看到初始界面中TextBox 中显示初始名字 “张三”,TextBox 中显示初始年龄 “25”。在 XAML 中创建一个简单的界面,包含一个 TextBox 用于输入名字,一个 TextBox 用于显示年龄。当你在 TextBox 中修改名字时,Person 对象的 Name 属性会被自动更新,反之亦然。它的主要作用是为控件及其子控件提供一个默认的数据源,用于数据绑定。

Zy100Papa的博客 969

Powershell无法执行脚本问题解决方案

最近在看python书,在搭建python骨架,创建虚拟环境的地方卡了一天,各种问题,太惨了哈哈哈哈 相信很多人都遇到了这个问题 问题 无法将“..venvs\lpthw\Scripts\activate”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后重试。所在位置 行:1 字符: 32 venvs\lpthw\Scripts\a...

Alexhirchi的博客 2万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

bat 批处理文件中 PowerShell 命令换行问题

摘要:本文探讨了批处理文件中执行多行PowerShell命令失败的原因及解决方案。批处理解释器将换行视为命令结束,导致PowerShell多行代码被截断。三种有效方法包括:1) 单行压缩命令;2) 使用续行符^保持逻辑行完整;3) 写入临时脚本文件执行。测试对比显示临时文件法兼容性最好但速度中等,单行法最快但可读性差。最佳实践推荐参数简写和错误处理机制,并演示了变量传递技巧。

小猫三两只。 966

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【内网学习笔记】2、PowerShell

1、介绍 PowerShell 可以简单的理解为 cmd 的高级版,cmd 能做的事在 PowerShell 中都能做,但 PowerShell 还能做很多 cmd 不能做的事情。 PowerShell 内置在 Windows 7、Windows Server 2008 R2 及更高版本的 Windows 系统中,同时 PowerShell 是构建在 .NET 平台上的,所有命令传递的都是 .NET 对象。 PowerShell 有如下特点: Windows 7 以上的操作系统默认安装 PowerShel

TeamsSix 的 优快云 空间 1368

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

上一篇: 安全地复用登陆凭据
下一篇: 从零开始学Windows PowerShell(1) 初见基础命令
itanders
博客等级 码龄19年 178粉丝 177原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值