删除cim实例powershell脚本以正确的方式删除服务器的配置文件问题

问题描述

我正在使用此脚本以正确的方式从RD服务器中删除损坏的配置文件。我想知道是否可以让脚本要求清除配置文件名称,而不是手动在脚本中键入。

Get-CimInstance -ComputerName servername1,servername2,servername3 -Class Win32_UserProfile | 
Where-Object { $_.LocalPath.split('\')[-1] -eq 'profilenametocleanup' } | 
Remove-CimInstance

该脚本运行良好,还可以删除损坏的注册表项。我希望我们的Servicedesk能够使用它,所以使它变得更加业余友好将是很棒的。

谢谢!

解决方法

绝对!您只需要将变量值'profilenametocleanup'替换为变量引用即可!

PowerShell中的变量的定义和分配方式如下:

$username = "Some value or expression goes here"

要提示用户输入字符串值,我们可以使用Read-Host cmdlet:

$username = Read-Host -Prompt "Enter the username of the profile to remove!"

然后,在现有管道中:

# replace the 'profiletocleanup' value with our variable instead
Get-CimInstance -ComputerName servername1,servername2,servername3 -Class Win32_UserProfile | Where-Object { $_.LocalPath.split('')[-1] -eq $username } | Remove-CimInstance

如果您想稍后在其他脚本中重用此管道,则最好将其重写为函数:

function Remove-RemoteUserProfile
{
  param(
    [string]$Username,[string[]]$ComputerName = @('servername1','servername2','servername3')
  )

  Get-CimInstance -ComputerName $ComputerName -Class Win32_UserProfile | Where-Object { $_.LocalPath.split('')[-1] -eq $Username } | Remove-CimInstance
}

现在,您可以使用同一命令定位任何用户或一组远程服务器:

# Will remove user profile for user jdoe on servername1 through 3
Remove-RemoteUserProfile -User "jdoe"

# Will remove user profile for user jdoe on servername1 and a machine called client5
Remove-RemoteUserProfile -User "bob" -ComputerName servername1,client5

# In this example we prompt the user for the username before calling the function:
$username = Read-Host -Prompt "Enter the username of the profile to remove!"
Remove-RemoteUserProfile -User $username -ComputerName someOtherComputer123
,

localpath并不总是与用户名完全匹配。使用sid更可靠。实际上,该对象由sid索引。

$user = 'admin'
$sid = Get-LocalUser $user | foreach { $_.sid.value }
get-wmiobject win32_userprofile | where sid -eq $sid | Remove-WmiObject -whatif

What if: Performing the operation "Remove-WmiObject" on target
"\\COMP001\root\cimv2:Win32_UserProfile.SID="S-2-6-31-4961843708-2576926490-3901110831-1002""

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...