【问题标题】:Custom Properties on PowerShell 3.0PowerShell 3.0 上的自定义属性
【发布时间】:2013-08-01 12:52:13
【问题描述】:

我对 power shell 很陌生,但我做错了什么。

这是我的脚本

Write-Host "PowerShell Version = " ([string]$psversiontable.psversion) 
for($i=1; $i -le 3; $i++)    
{
    $failedObject = @{'IPAddress'='192.168.0.1';
                'Username'='someusername';
        'FailedAttempts'= 0;
                }

    $failedObject.FailedAttempts = 10

    Write-Host $failedObject.IPAddress
    Write-Host $failedObject.Username    
    Write-Host $faileObject.FailedAttempts
}

这是输出

PS C:\Users\Administrator> C:\PSScripts\pstest2.ps1
PowerShell Version =  3.0
192.168.0.1
someusername

192.168.0.1
someusername

192.168.0.1
someusername

我认为我在向我的对象添加自定义属性时遇到问题,但不确定我做错了什么。它似乎只发生在 FailedAttempts 属性上,而不发生在 Username 或 IPAdress 属性上。

这是因为它是一个 int 属性。我究竟做错了什么?最终我会想找到一个基于 IPAddress 和 Username 的对象并将 FailedAttempts 增加 1 或将对象添加到基于 IPAddress 和 Username 的现有数组中......你有简单的代码吗?

我想我现在的主要问题是为什么 FailedAttempts 没有出现在 Write-Host 中?

【问题讨论】:

    标签: powershell powershell-3.0


    【解决方案1】:

    您在这一行有错字:

    Write-Host $faileObject.FailedAttempts
    

    仔细观察。

    【讨论】:

    • 很抱歉,我是 PowerShell 新手,您能否修改我的脚本,以便在输出期间显示 FailedAttempts。出于某种原因,我当前的脚本只是忽略了它。
    • @DanP 我添加了一个属性访问示例。
    • 您能否在一个代码块中提供整个脚本...我仍然无法打印出 FailedAttempts 属性。
    • @DanP Done,仅供参考 - 您在打印 FailedAttempts 时有错字,这就是它没有返回任何内容的原因。你仍然没有真正创建一个对象,只是一个哈希表,但错字是你真正的问题。
    • 谢谢...我习惯让编译器告诉我我有错字:)。关于对象与哈希表,我将不得不考虑熟悉 PowerShell。最终,我想将这些“对象/哈希表”放入一个数组中,并根据 ip 和用户名检索它们,然后增加计数……但这可能是另一个问题。很抱歉发布愚蠢的错字问题...但再次感谢您发现它。
    猜你喜欢
    • 2018-09-12
    • 1970-01-01
    • 2018-06-02
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多