Komut dosyası için gerçekten kötüyüm ancak her durumda özel etki alanı hesaplarını özel adlandırma kurallarıyla silmeleri gereken bir komut dosyası oluşturmam gerekiyor. Güç kabuğu v3 kullanıyoruz. Filtreleme profillerine sıkıştım. Ben kuş sayıları gibi birçok profil var: bb1231X, ba1231z, bb1231rw. Bu yüzden sadece BB **** X içeren profilleri silmek istiyorum ve çift onay işareti 7 sembol, 7 sembol X olmalı ve başlangıç BB olmalıdır.Powershell, özel sembollerle sunucu etki alanı profillerini silme
Ve bu çift çek yazmayı nasıl bilmiyorum. Herhangi bir yardım mutluluk duyacaktır.
Güncel komut dosyası: (veya kısaca regex
)
Function Get-System-Drive-Clean {
[CmdletBinding()]
Param(
[Parameter(Mandatory=$true)]
[string]$computerName
)
PROCESS {
foreach ($computer in $computerName) {
Write-Verbose "Housekeeping on $computer"
Write-Verbose "Mapping drive \\$computer\c$"
$drive = New-PSDrive -Name $computer.replace(".","-") -PSProvider FileSystem -Root \\$computer\C$
write-Verbose "Checking windows version"
#Cheking windows version
$version = (Get-WmiObject -ComputerName $computer -Class Win32_OperatingSystem).version
Write-Verbose "Windows version $version"
#Profile Deleting area.
if ($version -ge 6) {
write-Verbose "Getting profiles from WMI (Win 2k8 and above)..."
$profiles = Get-WmiObject Win32_UserProfile -ComputerName $computer -Filter "LocalPath like 'C:%R'"
if ($profiles -ne $null) {
$profiles | foreach {
Write-Verbose ("Deleting profile: " + $_.LocalPath)
#$_.Delete()
#| Where {(!$_.Special) -and ($_.ConvertToDateTime($_.LastUseTime) -lt (Get-Date).AddDays(-5))}
}
}
}
}
}
}
}
Merhaba, teşekkür Jessen replly için. Gösterdiğiniz gibi regex eklemeye çalıştığınız: $ profiles = Get-WmiObject -ComputerName $ bilgisayar Win32_UserProfile -filter "LocalPath Like 'C: \\ Kullanıcılar \\%'" -Match '^ b. {5} r $' bir hatam var. Get-WmiObject: 'Eşleştirme' parametre adıyla eşleşen bir parametre bulunamıyor. Satırda: 19 char: 125 + ... C: \\ Kullanıcılar \\% '"-Çoklu"^b. {5} r $' + ~~~~~~ + CategoryInfo: GeçersizArşiv: (:), ParameterB [-WmiObject alın] + FullyQualifiedErrorId indingException: NamedParameterNotFound, Microsoft.PowerShell.Comm ands.GetWmiObjectCommand bir WMI sorgusu içinde regex (. yani '-match' operatör) kullanamazsınız –
, bu kadar bir * PowerShell * dil özelliği –
yup, sadece işe yaradı! Sen awsome! :) Şimdi basicaly ben profilleri silme komut dosyası var, ama belki de bir sorun olabileceğine inandığım gibi, profildeki bilgileri silmek için biliyorum. Reg dosyası kullanılmayan kapaklardan temizlenmezse. –