【发布时间】:2021-08-06 03:49:06
【问题描述】:
我是编码/powershell 的新手。我“写”了这个小脚本
$Username = Read-Host -Prompt 'Bitte den Usernamen eingeben'
$HomeDirectory = '\\server\user'
$ProfilePath = '\\server\profiles'
$TsProfiles = '\\server\tsprofiles'
foreach ($user in $Username) {
Remove-ADUser -Identity $user
}
foreach ($user in $Username) {
Remove-Item "$HomeDirectory\$user" -Recurse -Force -Verbose -whatif
}
foreach ($user in $Username) {
Remove-Item -Path "$ProfilePath\$user" -Recurse -Force -Verbose -whatif
}
foreach ($user in $Username) {
Remove-Item "$TsProfiles\$user*" -Recurse -Force -Verbose -whatif
}
现在这个脚本运行良好。但我有一个小“问题”
1.) 对于某些用户,没有 TsProfiles 或 ProfilePath 或用户。所以当我运行脚本时,我得到了这个错误
At line:15 char:5
+ Remove-Item -Path "$ProfilePath\$user" -Recurse -Force -Verbose - ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (\\server\profiles\myusername:String) [Remove-Item], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
肯定是因为没有这样的路径,因为用户在该文件夹中没有配置文件。现在我正在寻找一种解决方案,可以将这样的内容写入日志文件
** %Username% 的主目录已删除 **
** %Username% 的 TsProfiles 已删除 **
** %Username% 的配置文件路径未找到 **
【问题讨论】:
-
我想你想要像
If(Test-Path "$HomeDirectory\$user"){Remove-Item "$HomeDirectory\$user" -Recurse -Verbose -Force -WhatIf; Add-Content -Value "** HomeDirectory of $User deleted **" -Path $LogFile}Else{Add-Content -Value "** HomeDirectory of $User not found **" -Path $LogFile}这样的东西 -
非常感谢!那是完美的工作!如果用户也被删除,是否可以登录?我不知道如何在那里检查它,因为我不能使用测试路径:(
标签: powershell active-directory