我正在为服务器应用程序最终确定一组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之类的东西,如果要在对象即将到期时进行查询是有意义的。

09-05 16:23