如何解决删除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""
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。