【发布时间】:2018-12-31 10:48:21
【问题描述】:
我正在编写一个脚本来帮助简化在我们的 Citrix 服务器上删除用户配置文件列表的过程。我不知道如何通过通配符过滤 ProfileImagePath。
在我们的 Windows 2008 服务器上,我可以通过其 Profileimagepath 搜索和排序用户的配置文件列表,但这会获取所有用户,我似乎无法扩展该过滤器以仅带回通配符条目。
set-location | 'HKLM:\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\ProfileList' |% {Get-ItemProperty $_.pspath } | Select
profileImagePath=username*
我得到的是用户配置文件的整个列表,或者如果我输入过滤器 =username* 条目我得到一个错误,我想要得到的只是通配符的结果,理想情况下只是我输入的用户名通配符是我想要返回的。
【问题讨论】:
-
正如 AnsgarWiechers 指出的那样,您的代码被严重破坏,以至于我无法想象您是如何获得任何输出的。 [grin] ///// 这是获取本地用户配置文件路径的另一种方法,它比使用注册表更容易...
(Get-CimInstance -ClassName Win32_UserProfile).LocalPath -like '*[1st2LetersOfMyUserName]*'--- 它提供了我的用户配置文件路径。 -
嘿@Lee_Dailey 是的,我实际上分多个步骤完成了代码,所以我首先设置位置然后运行它,然后运行 get-childlocation,现在我无法让我的代码在它显示的地方工作通过配置文件名称的文件夹。
-
您需要在运行时发布完整代码,以获得有关该代码的帮助。你发布的东西是行不通的。 [grin] ///// 你试过
Get-CimInstance的东西吗?它返回一个更“标准powershell”的对象 - 通常更容易使用。另外,它有一个.Delete()方法... -
不,我没有尝试过,但是 Ansgar 的脚本有效,给了我我想要的,我将不得不研究如何在它的末尾通过管道删除,所以它只是删除了那个一位用户。我的 PS 甚至没有在这台服务器上为
Get-CimInstance提取get-help,所以我不知道我是否可以让它工作,因为它不会运行更新。 -
啊!如果由于某种原因无法更新,您的服务器可能正在运行 psv2。在这种情况下,您应该能够使用
Get-WmiObject而不是新的CIM-*cmdlet。无论如何,你有它工作,这才是最重要的! [咧嘴]
标签: powershell regedit registrykey