所以我有点新的PS,我已经花了整个上午试图弄清楚这一点,并寻找类似的问题/答案在这里和谷歌上。
基本上这就是我的剧本:
$value = $env:COMPUTERNAME
$csv = Import-Csv -Path '\\UNC\PATH\file.csv'
$props = 'CsSystemFamily','CsDNSHostName', 'CsManufacturer'
Get-ComputerInfo | Select-Object -Property $props | Export-Csv -Path $csv -NoTypeInformation - Delimiter ';' -Append
我将其部署为GPO,因为我需要从某些OU收集此特定数据。问题是,我希望首先检查计算机名是否存在于CsDNSHostName列中,以便我的脚本不会两次添加同一台计算机。
先谢谢你,
我试过很多方法,但最后发现的是:
$value = $env:COMPUTERNAME
if ($file-contains $value) {
write-host 'Computer name already exists'
} else {
Get-ComputerInfo | Select-Object -Property $props | Export-Csv -Path $csv -NoTypeInformation - Delimiter ';' -Append
}
这不semm工作,因为它将只是跳过if,并直接转到else
1条答案
按热度按时间bihw5rsg1#
-contains
是可以使用的正确运算符,但必须将其应用于CsDNSHostName
属性(列)值的数组,这很容易做到,这要归功于member-access enumeration: