我们在本地计算机上安装了大量具有多个帐户的服务器,我需要从多个服务器中删除多个本地帐户并检查它们是否已被删除。
我能看到的唯一方法就是使用PS-remoting(在我们的环境中,它完全被锁定,所以这是唯一的选择)
据我所知,许多新命令(如Remove-localuseraccount
)仅支持新版本的PS(我们有一个升级到更好版本的项目)
$Computers = Get-Content C:\script\servers.txt
ForEach ($Computer in $Computers) {
$Session = New-PSSession -ComputerName $Computer
Invoke-Command -Session $session -ScriptBlock {
}
但是我可以运行什么命令来检查我拥有的多个帐户列表,如果找到任何帐户列表则删除?
答案 0 :(得分:0)
这将禁用本地帐户并使用DSC保持这种方式。
Setup.ps1
Install-Module -Name 'PSDscResources'
Set-Location -Path "$env:LocalAppData\Temp"
Configuration 'DisableDefaults'
{
Import-DscResource -ModuleName 'PSDscResources'
Node 'localhost'
{
User 'Default'
{
Username = 'DefaultAccount'
Disabled = $True
}
User 'Guest'
{
Username = 'Guest'
Disabled = $True
}
User 'Admin'
{
Username = 'Administrator'
Disabled = $True
}
}
}
DisableDefaults
Execution.ps1
Set-Location -Path "$env:LocalAppData\Temp\DisableDefaults"
$Computers = Get-Content -Path 'C:\script\servers.txt'
$Sessions = New-CimSession -ComputerName $Computers
Start-DscConfiguration -Path '.' -CimSession $Sessions -Wait -Force -Verbose
Remove-CimSession -CimSession $Sessions
您可以剪切CimSession[]
并只传递-ComputerName $Computers
。此外,您可以使用-Credential $PSCred
参数。