Powershell,清洁输出数据

时间:2016-02-11 07:30:09

标签: powershell username

我正在编写一个脚本来获取登录到任何计算机的任何用户的用户名。它适用于2例例。

以下是代码:

$computername = Get-Content 'I:\NodeList\SWSL.txt'
Remove-item "I:\NodeList\UsersPC.txt"
foreach ($computer in $computername) 
{
    if(Test-Connection -Computername $Computer -BufferSize 16 -Count 1 -ea 0)
    {        
        $Uinfo = gwmi win32_computersystem -comp $computer | select Username,Caption #,Manufacturer
        $Uinfo | Out-File -Filepath "I:\NodeList\UsersPC.txt" -Append
        Write-Host $Uinfo
    }else{ 
        Write-Host $computer " Is offline, not responing to ping"
        $computer + " Is offline!" | Out-File -Filepath     "I:\NodeList\UsersPC.txt" -Append
    }
}

首先输出是:

USername       Caption 
--------       ------- 
BINYAN\Charlie SYD-WS04

但我只想:

Charlie SYD-WS04

域名总是一样的,所以我只需要用户名和计算机名称,而不是标题或“---”

第二个问题是,我们是一个渲染农场,所有渲染都在一个名为“渲染”的用户帐户上处理。 对于那些计算机我只获取计算机名称,用户名为空。 此用户帐户是域用户,但不像其他用户帐户(悉尼,墨尔本,布里斯班)。 它位于AD中的默认“用户”文件夹中。

1 个答案:

答案 0 :(得分:1)

您可以使用regex删除域名,该\替换所有内容,包括'.*?\\'select -expand

您使用$_.PROPERTY或使用foreach循环删除标题,您可以使用$Uinfo = gwmi win32_computersystem -comp $computer | foreach { '{0} {1}' -f ($_.Username -replace '.*?\\'), $_.Caption }

选择属性

所以你的陈述可能是这样的:

Dim req As HttpWebRequest = HttpWebRequest.Create("http://url.to.website.com")

我没有答案/我不明白你的第二个问题。