【发布时间】:2014-09-26 11:46:43
【问题描述】:
我对 powershell 很陌生,并且一直在尝试各种方法来从我找到的以下 powershell 脚本中拆分结果,但没有运气。目前,该脚本将所有内容列在 4 列中,每个服务器的结果之间没有间隙。 (当它完成一个服务器的结果时,我希望每个结果之间有一个间隙甚至是带有服务器名称的标头,以便在对多个服务器运行时更容易阅读) 任何帮助格式化此格式将不胜感激。
Get-WmiObject -ComputerName ("server1","server2") Win32_UserProfile | % {
$userinfo = [WMI] ($_.__Path -Replace "Win32_UserProfile", "Win32_SID")
New-Object PsObject -Property @{
ComputerName= $_.__Server
Domain = $userinfo.ReferencedDomainName
User = $userinfo.AccountName
LastUsed = $_.ConvertToDatetime($_.LastUseTime)
}
} | export-csv -NoType c:\Results.csv
这就是我想做的事情
server 1
user lastModified
bob 8/20/14
billy 7/20/14
Carla 6/12/14
server 2
user lastModified
bob 8/20/14
billy 7/20/14
Carla 6/12/14
server 3
user lastModified
bob 8/20/14
billy 7/20/14
Carla 6/12/14
这就是我目前得到的
lastUsed user computername
8/20/14 bob server 1
6/20/14 billy server 1
9/1/14 sam server 3
3/2/14 sonny server 4
因此,当您将 50 60 个配置文件都像这样堆积起来时,它几乎不可读,尤其是如果您尝试按日期排序,因为那时服务器到处都是。
每次运行脚本时,我也会收到此错误,尽管我仍然会得到结果,并且脚本会产生应有的结果。
使用“1”个参数调用“ConvertToDateTime”的异常:“使用“1”个参数调用“ToDateTime”的异常:“指定的参数超出了有效值的范围。 参数名称:dmtfDate"" 在行:13 字符:33 + $.ConvertToDatetime .LastUseTime) + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ScriptMethodRuntimeException
再次感谢您的帮助
【问题讨论】:
-
如果您向我们展示所需的输出会容易得多。否则社区可能会弄错您正在寻找的内容并浪费每个人的时间。
-
当然 - 我需要的是“用户”文件夹中的所有文件夹列表,用于多个服务器的用户、上次使用文件夹和服务器名称。基本上我需要找到哪些配置文件文件夹已经过时了一段时间,然后将其放入 excel 或 HTML 中。该脚本完全符合我的需要,但没有格式。我将在上面展示我想要得到的示例
-
我想知道如果
LastUsedTime没有值是否会发生错误...如果用户从未登录过,可能是null。 -
现在它已经组织好了,我确实看到了一些空白行和带有用户但没有日期的行 - 所以你刚才说的有道理
标签: powershell