【问题标题】:Editing value of variable correctly [duplicate]正确编辑变量的值[重复]
【发布时间】:2020-03-15 23:05:37
【问题描述】:

我目前正在尝试掌握 powershell,在我之前编写的脚本中,我做了一些愚蠢的事情,编辑文本文件的值,只是为了告诉 powershell 再次获取这些值。我昨晚熬夜看教程,但一直在努力寻找一种方法,并且正在以正确的方式寻求一些帮助来完成以下操作

目标

获取脚本编辑一个变量的值,该变量包含一个测试账号的主目录属性

我目前拥有的东西

{
Do {

    $name = Read-Host 'Enter the required Log on ID'

} Until ($name)

$drive = Get-ADUser $name -Properties * | select homedirectory
$drive = $drive -replace 'homedirectory', '' 
$drive

初始变量为

homedirectory                                                                                                               
-------------                                                                                                               
\\WIN-7V7GI0R7CFK\homedrives\Onetest$

使用替换功能后变成了

@{=\\WIN-7V7GI0R7CFK\homedrives\Onetest$}

请查看随附的屏幕截图,我正在寻找 $drive 变量作为驱动器路径,在本例中为 \WIN-7V7GI0R7CFK\homedrives\Onetest$

感谢任何帮助,只是寻找将所有这些联系在一起的正确方法,以便我可以在必要时将其合并到脚本的其他部分

【问题讨论】:

    标签: powershell


    【解决方案1】:

    当您执行select homedirectory 时,您正在检索一个具有一个名为homedirectory 的单一属性的对象

    如果您只想要该属性的,请使用

    Select-Object -ExpandProperty HomeDirectory
    

    之后无需执行任何时髦的替换操作。

    附:

    1. 除非您确实需要用户的所有属性,否则使用-Properties * 被认为是不好的做法。在这种情况下,您只对其中一个感兴趣,因此如果您将其更改为 -Properties HomeDirectory,代码将会得到改进。

    2. 使用Read-Host 读取想要的用户,然后将其用作Get-ADUser cmdlet 的Identity 参数要求例外。身份只能是SamAccountNameDistinguishedNameGUID 或用户 SID。请在 Read-Host 提示中明确说明,或者改用 -Filter 参数,这样您就可以捕获错误并向用户报告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 2020-08-30
      • 2013-01-19
      • 1970-01-01
      • 2013-08-21
      相关资源
      最近更新 更多