PowerShell动词表示“;“到期”;
我正在完成服务器应用程序的cmdlet集。应用程序的一部分包括安全主体管理和数据对象管理,以及两者的“过期”(定时和手动)。过期日期后,安全主体的登录和访问被拒绝,并且有选择地阻止对该主体拥有的数据的访问(立即删除或作为自动维护的一部分,将其标记为过期) 从Get-Verb的输出中,我看不到Expire的明显同义词,Expire是这里执行的操作最自然的动词选择。在安全主体上过期使主体过期,也可能使其存储的所有数据过期,而数据对象的过期仅限于该对象 Set-已用于这两种对象类型,并且功能部分重叠(Expire-强制过去的日期并删除数据,而Set-将允许未来或过去的日期但不删除数据) 以这种方式,Expire将两个操作(Set+Remove)组合在一起,出于数据安全原因,我们不希望强制将两个操作分离(这已经是可能的)PowerShell动词表示“;“到期”;,powershell,powershell-4.0,Powershell,Powershell 4.0,我正在完成服务器应用程序的cmdlet集。应用程序的一部分包括安全主体管理和数据对象管理,以及两者的“过期”(定时和手动)。过期日期后,安全主体的登录和访问被拒绝,并且有选择地阻止对该主体拥有的数据的访问(立即删除或作为自动维护的一部分,将其标记为过期) 从Get-Verb的输出中,我看不到Expire的明显同义词,Expire是这里执行的操作最自然的动词选择。在安全主体上过期使主体过期,也可能使其存储的所有数据过期,而数据对象的过期仅限于该对象 Set-已用于这两种对象类型,并且功能部分重叠(
由于这个原因,我也认为禁用是不合适的,因为它暗示了启用--/p>反向的可能性。 我还认为删除本身是不合适的,因为在操作过程中有数据记录被明确地而不是删除
至少对于数据而言,取消发布似乎非常接近,但再次表明,取消发布和发布似乎是成对的,在这种情况下,这是不可逆的。当应用于安全主体时,它也没有意义那么,如果您想让某个东西过期,您希望使用哪一个(如果有的话)标准动词呢?那么
Invoke
呢?它可以是调用ExpireAppObject
或类似的东西
实际上,没有一个合适的动词符合您的情景,这是基于查看两个“向我跳”的列表:
拒绝(dn):
拒绝、对象、阻止或反对资源或进程的状态
Revoke(rk):指定不允许访问资源的操作。这个动词与Grant成对出现
如果没有成对操作,我不会太担心,因为有些内置cmdlet会出现这种情况<代码>停止计算机,例如,没有配对的启动计算机
。有删除变量
,但没有添加变量
(有新变量
)。我认为,只有当成对命令存在时,它的命名才是一致的,这一点才很重要
另一种选择可能是使用类似于
设置ObjectExpiration
/获取ObjectExpiration
的东西,特别是如果想要查询对象何时将过期是有意义的话。Hmm。我并不完全反对撤销,尤其是对于安全主体。但是,它并不完全准确,对于数据来说,它没有真正意义,因为它不是对数据的访问,而是数据对象本身被删除。好主意。@DavidRa也许你有两个完全不同的动词(例如,Revoke Principal和Remove Data),它们的参数指示效果是立即的还是延迟的。我认为Revoke Principal已经足够接近了(它已经需要一个SwitchParameter来决定是否也删除数据)。但是删除数据/拒绝数据感觉不正确。不过,在这一点上,我可能是在吹毛求疵。如果不是因为PSH愚蠢地坚持显示“未经批准”动词的警告消息,我根本不会问这个问题,因为cmdlet可以使用任意数量的GCM命令找到—GCM Product、GCM Datatype、GCM User都可以找到与产品相关的cmdlet,如果没有“愚蠢”的警告,我们就不会有一致的环境。不过,有一种简单的解决方法:正确命名cmdlet(使用已批准的动词),如果域需要不在列表中的动词,请使用别名。这两个方面你都能做到最好:知道域的人会找到命令(带别名),而common verb会让那些只使用PowerShell并且不想使用Delete-、Remove-、Vanish-…;)的人发现命令+1,因为在本例中,命令名中包含单词Expire。如果用户想到Expire,他们宁愿搜索命令*Expire*
,而不是搜索一些在这种情况下不符合要求的已批准动词。不幸的是,我不得不经常使用调用Xyz
。ApprovedVerb-nown
的概念非常好,但认可的词汇非常差。