使用 select-object 提取主机名的一部分

Extracting part of a host name with select-object

我有一个简单的 powershell 函数,我在其中提供日志类型和事件,它会扫描我们所有的 SQL 服务器。除了主机名被 return 编辑为 hostname.domain.local 外,它可以正常工作。我希望它 return 只是主机名。我试过 machinename.split('.') 和 substring 但它不起作用。我已经尝试将 select-object 放入一个单独的变量中,并打算将它与其余列连接起来,但是 运行.

花费的时间太长了

这是我在更改我的功能之前正在测试的示例废代码以及无法正常工作的注释掉的部分。环顾四周,发现了很多关于这些命令的资源,但是当我尝试在我的脚本中使用它们时,它们不起作用。

我不断收到的错误是找不到接受参数 '. '.

$servers = Get-Content -literalpath   "C:\temp\sql_servers3.txt" 
#$server
#$result = 
ForEach($box in $servers) {Get-Eventlog -ComputerName $box -LogName 
application -After 1-4-2018 -Entrytype Error | Where {$_.source -notin 
'Perfnet','Perflib', 'ntfs', 'vss'}| select-object -property MachineName}  
#$result_Host_name = select-object -inputobject $result -property 
 'MachineName'
 #'TimeGenerated', 'MachineName'.Split('.')[1], 'EventID','message'}
 #| Where {$_.source -notin 'Perfnet','Perflib', 'ntfs', 'vss'} 0
 #return $result_Host_name

当使用 Select-Object.

时,您要查找的是“Calculated Property
| Select-Object @{n='HostName';e={($_.MachineName -split '\.')[0]}}