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

从Chiplet到UCIE:D2D互联技术如何重塑半导体设计生态

本文探讨了D2D互联技术在半导体设计中的革命性作用,从Chiplet到UCIE标准的演进如何重塑行业生态。详细分析了D2D互联的技术本质、架构选择及UCIE标准带来的变革,并展望了未来光学D2D和3D集成等趋势。高速互联接口技术的突破为AI加速器和计算芯片提供了更高带宽和能效。

weixin_29292535的博客 931

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

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

Ping_Pig的博客 1129

【3D目标检测】环境搭建(OpenPCDet、MMdetection3d、Det3d)

在Conda虚拟环境中搭建MMdetection3d环境

qq_44703886的博客 4252

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

使用GDScript(godot)生成仿杀戮尖塔地图

使用GDScript(godot)生成仿杀戮尖塔地图 extends Node2D export (PackedScene) var Ball var 被连接数 = {} # 每个怪物被下层怪物连接的数量 最多为2 var 连接1 = {} # 第一次连接的上层怪物位置 var 连接2 = {} # 第二次连接的上层怪物位置 var 怪物数量 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0] # 每层怪物的数量 var 总层数 =8 # 总层数 var 怪物坐标行 = {} #

weixin_45038716的博客 3010

GEM5教程--gem5开始之旅(一)

GEM5系列教程--gem5开始之旅一、建立GEM5 GEM5模拟器是一个用于计算机系统结构研究的模块化平台,包含系统级别的结构以及处理器的微体系结构。读者若想详细的了解,请查看其官方文档GEM5文档 读者如果想要入门GEM5的话,可以参考Learning_GEM5这个网站,这里面有较为详细的教程,可以带读者从入门到精通。小编我对GEM5的入门学习也是从这个Learning_GEM5这个网站学习的...

qq_43381135的博客 3万+

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

华为OD机试 - 商品推荐多属性排序 - 数组(Python/JS/C/C++ 双机位A卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。双十一来临,小王准备买某个购物平台买坚果。在输入坚果时,页面默认按照综合推荐列表。小王想知道这个综合排序时如何完成的,于是便开始思考算法题。经过一番操作后,完成它的多个关键词排序算法。希望你给小王提供一份正确的排序结果,验证其实现算法结果的准确性

学Java,找哪吒 622

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

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

Windows PowerShell 5557

educoder中Hive综合应用案例 — 用户搜索日志分析

Hive综合应用案例 — 用户搜索日志分析

weixin_46026136的博客 4764

DataX对接数据如何在ODS加密脱敏数据(插件开发)

datax对接mysql数据,对姓名只保留姓,名变成**。对这种简单的脱敏,可以不用修改datax源码,直接在配置文件上实现。

大模型大数据攻城狮的专栏 991

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

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

清晨的光明 9万+

【python股票价格预测】基于LSTM(长短期记忆网络)的股票价格预测(附python代码)

【python股票价格预测】基于LSTM(长短期记忆网络)的股票价格预测(附python代码)

k8291121的博客 1011

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

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

Alexhirchi的博客 2万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

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

小猫三两只。 966

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

余额充值