我正在编写一个工作脚本,并试图确定我的代码显示错误的原因。我是这个编码的新手,想要了解什么是错的。
我得到的错误来自我的.txt文件中的标签.... PC列表。
例如:获取内容:无法找到路径' F:\ tag 77909'因为它不存在 我的困惑是,当我在.Replace代码之后写主机时,它正确打印
Ex:您无法在空值表达式上调用方法。 + $ Notags = $ PC.Replace<<<< ("标记"," PC") + CategoryInfo:InvalidOperation :( Replace:String)[],RuntimeEx ception + FullyQualifiedErrorId:InvokeMethodOnNull
我得到的最后一个错误是它只打印出最后一台PC ....我的.txt文件列表中的ID ???我不确定为什么我有一个foreach循环
**MY CODE SO FAR:**
Import-Module activedirectory
$compImports = Get-Content "C:\Temp\temp\input.txt"
$groupExport = "C:\temp\temp\output.txt"
Clear-Content $groupExport
$Header = "PC Name" + "|" + "Group Name" + "|" + "Group Description"
#Write header
$Header | Out-File $groupExport -Append
#get PC tag listing
$PCs = Get-Content $compImports
#For loop to change all "tag " to "PC"
foreach($PC in $PCS)
{
$Notags =$PC.Replace("tag ", "PC")
}
#loop to get information and print it out
foreach ($Notag in $Notags) {
$computerobj = Get-ADComputer $Notag -Properties memberof
$computerobj.memberof | ? {$_ -match '^CN=APP.*'} `
| % {get-adgroup $_ -Properties name, description} | `
% {$computerobj.Name + "|" + $_.name + "|" + $_.description `
| Out-File $groupExport -Append}
}
答案 0 :(得分:1)
我在这里至少看到一个问题
$compImports = Get-Content "C:\Temp\temp\input.txt"
...
$PCs = Get-Content $compImports
您正在调用Get-Content
两次,这会产生您最有可能发生的错误。
可以简化为
$PCs = Get-Content "C:\Temp\temp\input.txt"
因此,您的其他错误应该消失,因为$ PC应包含该点的实际数据。