新手学习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

A Super-Resolution Imaging Method for Forward-Looking Scanning Radar Based on Improved TV论文阅读

具体而言,作者提出了一种改进的总变差(Improved Total Variation, ITV)方法,通过引入。论文旨在解决前视扫描雷达(Forward-Looking Scanning Radar)超分辨率成像中传统。(Batch Processing),以增强图像边缘特征的保留能力,并提升计算效率。论文的核心创新点在于对传统TV正则化的邻域梯度计算进行扩展,提出。ITV剖面(图3d)在噪声下仍保持矩形边缘,仅存。​(公式10):实现稀疏约束。),抑制远端单元贡献。(幅度远低于目标)。

yangqoor的博客 1238

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

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

Ping_Pig的博客 1129

FreeRTOS-Plus-CLI使用笔记

FreeRTOS-Plus-CLI使用笔记 一、简介 详细介绍可参考FreeRTOS-Plus-CLI官网地址入口 FreeRTOS+CLI(Command Line Interface, 命令行接口)提供了一种简单、小型、可扩展且RAM高效的方法,使FreeRTOS应用程序能够处理命令行输入。添加一条指令的步骤如下: 提供一个实现命令功能的函数 将命令映射到该功能函数 注册命令 运行命令解释器 命令行调试接口对于排查分析出现的问题提供了很好的接口,可以通过查看传感器信息判断传感器是否正常,可以查看内置

ApexYuan 6962

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

鱼眼相机去畸变(图像拉直/展开/矫正)算法及实战总结

1、算法说明经纬度矫正法, 可以把鱼眼图想象成半个地球, 然后将地球展开成地图,经纬度矫正法主要是利用几何原理, 对图像进行展开矫正。经过P点的入射光线没有透镜的话,本应交于相机成像平面的e点。然而,经过鱼眼相机的折射,光线会交于相机成像平面的d点,就产生了畸变,因此畸变图像整体上呈现出像素朝图像中心点聚集的态势。而去畸变,就是将折射到d点的点,重新映射回到e点,因此去畸变之后的图像与原始的鱼眼图像相比,仿佛是把向心聚集的像素又重新向四周铺展开来。AVM环视系统——鱼眼相机去畸变算法 - 知乎。

大胡子大叔的专栏 2万+

Vector CANoe VT2516A实战:从硬件连接到CAPL脚本的完整配置指南

本文详细介绍了Vector CANoe VT2516A板卡从硬件连接到CAPL脚本编写的完整配置指南。涵盖硬件接线原则、VT System配置避坑技巧、系统变量创建规范、可视化Panel设计、CAPL脚本调试及典型故障排查案例,帮助工程师快速掌握VT2516A板卡的应用实践,提升汽车电子测试效率。

weixin_30608503的博客 254

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

STM32开发者必看:如何在正点原子探索者开发板上快速移植CANopenNode协议栈

本文为STM32开发者提供了在正点原子探索者开发板上快速移植CANopenNode协议栈的实战指南。文章详细介绍了从环境准备、硬件抽象层适配到协议栈初始化与测试的全过程,并分享了PDO配置与性能优化等关键技巧,帮助开发者高效实现CANopen标准化通信。

weixin_29173777的博客 462

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

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

Windows PowerShell 5557

AgentScope深入分析-ReActAgent

ReActAgent 是 AgentScope 框架中最核心的智能体实现,它完美诠释了"推理-行动"(Reasoning-Acting)循环的精髓。本文将深入分析 ReActAgent 的类继承关系、核心执行流程,以及状态管理、钩子机制、实时介入等关键技术点。通过阅读本文,你会理解智能体如何与模型交互、如何执行工具、如何处理中断,以及这些机制背后的设计考量。模块化:通过组合不同的组件(模型、格式化器、工具集、记忆)来构建智能体透明性:所有关键流程都对开发者可见,可以精确控制可扩展性。

842

docker部署neo4j,设置密码。Neo.ClientError.Security.Unauthorized: The client is unauthorized due to authenti

卷,设置NEO4J_AUTH将不会起作用,因为该数据库已经配置了身份验证。Neo4j Docker 服务将会启动,但您需要使用已与该数据库关联的用户名和密码才能登录。这里,使用了环境变量NEO4J_AUTH,设置了用户名为neo4j,密码为neo4jneo4j。这个命令还是比较全的,包括设置密码,设置端口,挂载外部的数据目录等。原因嘛,就是使用docker创建的neo4j,登录不上。把👆提到的外挂的数据,都清空了,再重新来一遍。有一种情况下,这样设置密码,并不会成功。如果不出意外,目前就算大功告成了。

xiezhipu的博客 563

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

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

清晨的光明 9万+

Mac安装Claude Code的3种方式及5类报错解决方案

介绍在Mac上安装Claude Code的3种实测可行方式(官方dmg、Homebrew+ARM原生构建、Docker容器化),并针对Gatekeeper签名验证失败、Rosetta 2内存对齐崩溃、Python ABI兼容性冲突等5类高频报错提供根因分析与可复现解决方案,覆盖M1–M3及Intel

weixin_28728443的博客 361

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

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

Alexhirchi的博客 2万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

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

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

小猫三两只。 966

廖雪峰Python教程[完整版]

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

【内网学习笔记】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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: 安全地复用登陆凭据
下一篇: 从零开始学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、付费专栏及课程。

余额充值