智能感知无法正确回应

时间:2018-03-23 07:08:04

标签: powershell csv active-directory

我有一个非常简单的脚本,用于从CSV文件导入用户

这是代码:

$filepath = import-csv "C:\Users\levl\OneDrive\Users Making script\Users-list.csv"

$users= $filepath

ForEach ($user in $users) {

Get the users info $firstname = $user }

脚本未完成,因为我无法通过intellisense来完成脚本。

导入csv文件后,当我尝试编写" $ user。" Intellisense没有显示CSV文件中的标题

这是csv文件中的标题:

名字,姓氏,SamAccountName,职位,部门,描述,路径,ScriptPath

和intelisense在图片上显示不同的标题

intelisense

PS:当我运行$ users时,我得到用户列表,因为它必须是

2 个答案:

答案 0 :(得分:0)

所以在我的情况下,从一些奇怪的原因,我必须运行所有的脚本,即使它 还没有完成,所以PowerShell将导入正确的属性,只有在我开始根据csv文件看到正确的属性之后

因此,如果您在尝试从CSV文件中获取所有信息时没有看到正确的属性时遇到这个奇怪的问题,请尝试在ForEach循环中编写前几行然后它将开始向您展示正确的属性。

这就是为什么我喜欢我的职业,每天我都学到新东西:)

答案 1 :(得分:0)

如果你考虑一下你发布的代码片段,很明显ISE不知道要向你呈现什么属性,因为在你运行前两行之前,对于$ filepath或$ newusers的内容是什么是无关紧要的。 (因为在加载CSV之前,PowerShell的内容是未知的)。

运行这些行后,变量将被正确填充,然后ISE可以查询对象并根据文件的实际内容显示正确的属性。

为了使问题复杂化,你会发现有些例子与此相矛盾:

enter image description here

这样做的原因是Get-Service让PowerShell知道它返回的对象类型是什么类型,因此即使在运行它之前,PowerShell也会知道你将得到的结果(无论如何)。

相关问题