小编Ben*_*ard的帖子

在 PowerShell 中调用构造函数的 .NET 语法

使用PowerShell 中的System.DirectoryServices.AccountManagement命名空间、PrincipalContext类。我无法PrincipalContext Constructor (ContextType, String)通过以下方式致电

[System.DirectoryServices.AccountManagement.PrincipalContext]::PrincipalContext($ContextType, $ContextName)
Run Code Online (Sandbox Code Playgroud)

我收到错误"Method invocation failed because [System.DirectoryServices.AccountManagement.PrincipalContext] does not contain a method named 'PrincipalContext'.

只能用下面的方式调用吗?

New-Object -TypeName System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList $ContextType, $ContextName
Run Code Online (Sandbox Code Playgroud)

想了解为什么它以第二种方式工作而不是第一种方式。有没有办法用方括号来做到这一点?

完整代码是这样的:

Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$ContextName = $env:COMPUTERNAME
$ContextType = [System.DirectoryServices.AccountManagement.ContextType]::Machine
$PrincipalContext = [System.DirectoryServices.AccountManagement.PrincipalContext]::PrincipalContext($ContextType, $ContextName)
$IdentityType = [System.DirectoryServices.AccountManagement.IdentityType]::SamAccountName
[System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity($PrincipalContext, $IdentityType, 'Administrators')
Run Code Online (Sandbox Code Playgroud)

.net powershell

6
推荐指数
1
解决办法
4174
查看次数

当path\filename超过260个字符时,在PowerShell中获取/设置文件属性

我正在寻找一种在PowerShell中获取和设置文件属性(隐藏和只读)的方法,用于组合路径和文件名超过260个字符的文件.我知道.NET类不支持更长的文件路径; 我已经尝试过了.Attrib也不起作用.我收到错误"参数格式不正确 - ".同样,Dir也不起作用.

我正在使用Robocopy来获取文件名.Robocopy对长路径没有任何问题.但是,我不能使用Robocopy获取/设置属性,因为我只使用Robocopy的/ L列表模式.

任何人都有PowerShell的变通方法?

更新:

subst不支持超长路径.它似乎确实适用于部分路径.

mklink 需要本地卷.

net use不支持超长路径.它似乎确实适用于部分路径.

New-PSDrive 不支持超长路径,甚至不支持部分路径.

.net powershell robocopy

5
推荐指数
1
解决办法
639
查看次数

标签 统计

.net ×2

powershell ×2

robocopy ×1