gpt4 book ai didi

powershell - 保存自定义 $variables 以在不同的 PS session 中访问

转载 作者:行者123 更新时间:2023-12-03 00:08:36 25 4
gpt4 key购买 nike

所以预先警告,我对powershell还是很陌生,如果我错过了一些明显的东西,我深表歉意。

我有几个脚本命令会定期运行,以在我们的 RDS 服务器上执行与 AD 相关的工作。有 3 台服务器,用户在登录时可能会被转储到其中的任何一台。我想做的很多命令都不起作用如果您指定了错误的计算机,并检查用户在哪一台上是一种痛苦。

我想做的是制作一个在 PS session 和重新启动之间持续存在的 $RDS_Servers 变量,这样我就不必每次都输入它并进行繁琐的工作。我希望它是一个专门用于多功能性的 $variable。我已经想出了如何将它保存为脚本,以便可以通过 RDS_Servers.ps1 调用它,但这很笨重并且很难插入到动态编写的脚本中,而不是一个不错的 $variable。

到目前为止我所做的是运行以下内容:

$RDS_Servers = Get-ADComputer -Filter * -SearchBase "OU=2016 RDS,OU=远程桌面,OU=服务器,OU=计算机,OU=XXX,DC=XXX,DC=XXX,DC=XXX"

这将返回 RDS 服务器 OU 中所有对象的列表,这正是我想要的。包含可按需调用的对象的变量。这被分配给 $RDS_Servers,并且可以转储到脚本中,例如通过 Get-ADuser -computer $RDS_Server -user UserX 之类的方式搜索用户 AD 对象,这样它就可以找到它们而无需查找他们使用的服务器'上。

这里的问题是,虽然这在每个 session 的基础上都可以正常工作,但我想做的事情是以某种方式将 $RDS_Servers 保存为在 session 之间持续存在的“默认”变量,这样如果我想做一些工作PS 在 AD 用户上,我可以每次只插入 $RDS_Servers 而不必在每个 session 中指定变量。

tl;博士不知道如何在 session 之间保存变量,请停止:o

/详细

最佳答案

变量有一个范围,它们只在定义的范围内可用。这记录在此处的内置帮助文件中:

About_Scopes

Get-Help -Name about_Scopes

关闭 session 后,所有资源都将消失。

您可以将您喜欢使用的任何代码或值放在一个静态文件中,您可以根据需要使用脚本读回该文件。将该文件存储在中央文件共享上,以便您可以从任何您允许读取它的机器上访问它。

或者,您可以创建和使用 PowerShell 配置文件来保存您选择的任何环境配置。

About_Profiles
Get-Help -Name about_Profiles

该配置文件只是位于当前用户配置文件文件夹中的另一个 .ps1。每次 PowerShell 启动时都会加载配置文件中的任何内容。无论您在 PowerShell 加载后会做什么。

关于powershell - 保存自定义 $variables 以在不同的 PS session 中访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54858017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com