我正在为服务器应用程序最终确定一组cmdlet。该应用程序的一部分包括安全主体管理和数据对象管理,以及两者的“到期”(定时和手动)。在到期日期之后,将拒绝安全主体的登录和访问,并且可以选择阻止访问该主体所拥有的数据(通过删除或通过将其标记为已过期来作为自动维护的一部分)。
从Get-Verb的输出中,我看不到Expire的明显同义词,Expire是此处要执行的 Action 的最自然的动词选择。安全主体上的Expire使主体失效,也可能使所有其存储的数据失效,而数据对象的失效仅限于该对象。
Set-已经在两种对象类型中使用,并且在功能上有部分重叠(Expire-强制过去的日期,并删除数据,而Set-将允许将来或过去的日期,但不删除数据)。
Expire以这种方式将两个操作(Set + Remove)组合在一起,并且出于数据安全的原因,我们不想强行将这两个操作分离(这已经是可能的)。
因此,我也认为Disable-不适用,因为它暗示了Enable-可能会逆转。
我还认为Remove-本身是不合适的,因为在操作中有一些数据记录特别是而不是被删除。
至少对于数据而言,“取消发布”似乎非常接近,但是再次看来,“取消发布”和“发布”是要配对的,在这种情况下,它是不可逆的。当应用于安全主体时,它也没有意义。
那么,如果您想使某些内容过期,那么您希望使用哪个(如果有的话)标准动词?
最佳答案
看着approved verbs的列表,两个人朝我跳了出去:
如果没有成对的操作,我不会太担心,因为某些内置cmdlet会发生这种情况。例如,Stop-Computer
没有成对的Start-Computer
。有Remove-Variable
,但没有Add-Variable
(有New-Variable
)。我认为,只有存在一个成对的命令并一致命名它才重要。
另一种选择是特别使用Set-ObjectExpiration
/ Get-ObjectExpiration
之类的东西,如果要在对象即将到期时进行查询是有意义的。