我正在编写一个脚本来获取登录到任何计算机的任何用户的用户名。它适用于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中的默认“用户”文件夹中。
答案 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")
我没有答案/我不明白你的第二个问题。