【发布时间】:2020-08-06 18:04:11
【问题描述】:
(我是 PS 新手,主要使用 VBS 和 Batch,所以我仍在研究 PS 脚本)
我需要从我们所有 500 个系统中删除大部分(但不是全部)域帐户。 其中一些来自特定列表。 有些遵循通用格式 *21、*19 等...
我可以找到可以让我删除特定用户帐户的脚本,但我不知道如何将长列表传递给它或使用通配符...
如果我能弄清楚如何在其中获取所需的值,这似乎很有希望......
:: 这个脚本取自https://www.nextofwindows.com/delete-user-profiles-on-a-remote-computer-in-powershell
$Computer = Read-Host "Please Enter Computer Name: "
$user = Read-Host "Enter User ID: "
Invoke-Command -ComputerName $computer -ScriptBlock {
param($user)
$localpath = 'c:\users\' + $user
Get-WmiObject -Class Win32_UserProfile | Where-Object {$_.LocalPath -eq $localpath} |
Remove-WmiObject
} -ArgumentList $user
【问题讨论】:
-
看来您需要做的只是将条件放入
Where-Object大括号中。 -
是的,但是当我有一个需要删除的 15 个或更多配置文件的列表时,是否有办法将其传递给列表,而无需专门对每个配置文件进行硬编码?
-
您是否要从多台计算机上删除多个帐户?
-
是的。我们有 500 台员工个人电脑,我想从所有系统中删除所有承包商、IT 员工、测试帐户等。所以实际上我想向代码传递计算机列表和配置文件名称列表。
标签: powershell parameter-passing user-profile