我试图在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"}

08-07 17:01