我试图在Windows 2008服务器上查找每个不带“C,E,L,S,T,W”的驱动器号。谁能告诉我我的逻辑错误还是我该怎么做?
[char[]]”CELSTW” | Where-Object {!(Get-PSDrive $_ )}
最佳答案
您从不需要的驱动器盘符列表开始(CELSTW),然后将不存在的驱动器盘符输出作为psdrive。
您想要的是从所有PSDrive的列表开始,并过滤掉与您不想要的PSDrive匹配的位置:
Get-PSDrive | Where-Object { [char[]]"CELSTW" -notcontains $_.Name }
尽管这将为您提供许多其他PSDrive类型。您可能还想为FileSystem提供程序过滤它:
Get-PSDrive | Where-Object { [char[]]"CELSTW" -notcontains $_.Name -AND $_.Provider.Name -eq "FileSystem"}