我正在创建一个 PowerShell 模块,当我导入它时出现以下警告。
WARNING: The names of some imported commands from the module 'ModuleName' include unapproved verbs that might make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb.
这是由我的 cmdlet 引起的Is-WindowsServer
。它返回$true
或$false
取决于服务器是否运行 Windows 操作系统。但事实证明“IS”不是已批准的 PowerShell 动词。我查看了已批准的 PowerShell 动词列表,但没有找到可以替代的动词。
https://msdn.microsoft.com/en-us/library/ms714428(v=vs.85).aspx
在这种情况下应使用的最佳动词是什么?
答案1
我建议动词Test
也Test-Path
返回$true/$false。
或者以下任何一种:
Test-32Bit PowerShellPack
Test-32Bit PSSystemTools
Test-64Bit PowerShellPack
Test-64Bit PSSystemTools
Test-Dtc MsDtc
Test-IsAdministrator PowerShellPack
Test-IsAdministrator PSUserTools
Test-NetConnection NetTCPIP
Test-ScriptFileInfo PowerShellGet
Test-SFTPPath Posh-SSH
Test-AlternateDataStream pscx
Test-AppLockerPolicy AppLocker
Test-Assembly pscx
Test-Certificate PKI
Test-ComputerSecureChannel Microsoft.PowerShell.Management
Test-Connection Microsoft.PowerShell.Management
Test-DscConfiguration PSDesiredStateConfiguration
Test-FileCatalog Microsoft.PowerShell.Security
Test-KdsRootKey Kds
Test-ModuleManifest Microsoft.PowerShell.Core
Test-MSMQueue pscx
Test-Path Microsoft.PowerShell.Management
Test-PSSessionConfigurationFile Microsoft.PowerShell.Core
Test-Script pscx
Test-UevTemplate UEV
Test-UserGroupMembership pscx
Test-WSMan Microsoft.WSMan.Management
Test-Xml pscx
答案2
我同意@LotPings 的评论,最适合您测试的动词是Test
。
如果警告或错误文本将您引向 cmdlet 或“about_*”主题,那是因为您犯了一个常见错误。引用的材料通常包含解决方案。
根据警告建议,输入Get-Verb
批准动词的列表。
请记住,理解和使用Get-Help
其他类似的命令(Get-Command、Get-Verb、Get-Member 等)对于成功使用 PowerShell 来说几乎是必不可少的。如果您采用这种思维方式,您可以扩展您的经验以涵盖您从未使用过的命令,因为一切都是如此标准化。