[玩转系统] 最佳实践成就完美
作者:精品下载站 日期:2024-12-14 08:07:43 浏览:12 分类:玩电脑
最佳实践成就完美
在过去的几周里,我一直在分享和演示编写有效的 PowerShell 函数的技术。我知道我已经提到了一些推荐的最佳实践。但由于它们很重要,所以我想回顾并重新强调它们。这些实践将使您的代码更易于编写、更易于调试或排除故障并且更安全。我想其中一些是简单的常识,但有时我们需要有人提醒我们。这些项目没有任何特定的顺序。
遵循命名约定
使用动词-名词命名约定为您的函数指定一个有意义的名称。您可以为 .ps1 脚本文件指定任何适合您的名称,但函数应遵循动词-名词命名约定。如果我无法通过运行 Get-Verb 找到你的函数的动词部分,那么你就做错了。我知道有时找到正确的动词可能很棘手。但要找到尽可能接近的东西。您始终可以使用您希望的任何动词为您的函数创建别名。
名词应该是单数,尽管我有时会违反这一规则。使名词有意义且具体。如果存在命名冲突的可能性,请考虑为名词添加前缀。前缀可以是您姓名的首字母缩写,也可以是组织的缩写。前缀应该消除命名冲突并使识别命令更容易。
如果出现命名冲突,您可以使用其完全限定名称运行命令:
smbshare\get-smbshare
使用命令名称指定命令的模块名称。
另一个重要的命名约定是避免脚本中使用别名。在控制台提示符下以交互方式运行 PowerShell 时,可以随意使用别名。但在脚本中,请使用完整的 cmdlet 名称和参数名称。我建议甚至使用参数名称作为位置参数。如果您使用像 VS Code 这样具有 Intellisense 功能的编辑器,那么这并不是太大的负担。您只需编写一次代码,因此第一次就以正确的方式编写。
也就是说,您可以随意使用您想要的所有别名在 VSCode 中编写您的函数。完成后,使用 VSCode 扩展您的别名。您可以使用命令选项板或键盘快捷键中的命令。
请注意,这将不会添加缺少的参数名称。
由于 PowerShell 命令的设计方式,如果您使用完整的命令和参数名称,它实际上是自记录的。
无密码
我想这是理所当然的,但如果您需要提醒,请不要将任何密码或凭据硬编码到您的脚本和函数中。
$pw = "Open$esame!"
...
foo.exe /u administrator /p $pw
另外,还要避免这种情况:
Param(
[string]$Name,
[string]$Password
)
如果您的命令需要密码,请让用户输入 PSCredential。
Param(
[pscredential]$Credential
)
这并不意味着需要提前创建凭证对象。用户可以指定用户名,PowerShell 将提示输入密码。
另一种选择是集成 Microsoft 的 SecretStore 和 SecretManagement 模块。
保持不可知论
您的 PowerShell 代码应该是不可知的。我的意思是它不应该对域名之类的东西有硬编码值。这是不好的形式。
$domain = "ContosoCorp.pri"
至少,使用 PowerShell 填充该值。
$domain = (Get-ADDomain).DNSRoot
您还可以将其作为参数并让用户指定一个值。或者,这是一项高级技术,编写函数以使用 .psd1 文件中的配置数据。
如果你不能在不先清理代码的情况下向我展示你的代码,我会说你做错了什么。可能感觉您节省了时间,但我认为这实际上使您的代码变得不太安全。
评论数
我们总是谈论内部文档的需求。阅读 PowerShell 代码应该像阅读故事一样。您应该能够遵循该操作。如果您使用完整的 cmdlet 和参数名称,则可以处理大部分工作。如果您包含有意义的 Write-Verbose 消息,那也将填补空白。仅当运行可能难以理解的 .NET 代码块或需要解释为何使用当前代码的脚本部分时,才需要添加注释部分。随着代码的成熟和更新,插入包含关键更改的注释可能会有所帮助。
代码注释对你和下一个人来说都是一样的。您可能是六个月后查看代码的人,努力弄清楚您想要实现的目标。
让它变得漂亮
我记得在我使用 VBScript 的时候。一位论坛成员的代码有问题。我主动提出提供帮助,他发布了他的代码。这是数百行单行距、左对齐的代码。根本无法阅读,而且 VBScript 已经够难的了。缩进和空白很重要。我刚刚提到你的代码应该讲一个故事。代码在文件中的显示方式可以帮助讲述这个故事。空行或空白不会造成性能损失。如果您的代码更易于阅读,则调试和故障排除也更容易。
最简单的方法是在 VS Code 中编写函数。右键单击编辑器窗格,选择“设置文档格式”或使用键盘快捷键。
当我第一次看到它的实际效果时,感觉就像魔法一样,正是这把我推向了 VS Code 的怀抱。您还可以配置 VSCode 在每次保存文件时格式化文件。
概括
我希望你们中的许多人已经遵循这些建议。如果没有,我想知道为什么。您可以对本文发表评论。也许我可以澄清或提供更多背景信息。查找要在 PowerShell 脚本项目中使用的代码只是工作的一部分。如何使用代码同样重要。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag