相关疑难解决方法(0)

为什么驱动器根目录上的Set-Acl尝试设置"对象"的所有权?

我想更改C:驱动器的ACL .我想要做的是删除用户可以直接在驱动器上创建文件夹的权限.我在编写时在另一个文件夹上测试了脚本.它没有问题.完成后,我在我们的测试环境中尝试了实际驱动器上的脚本.我得到一个我无法弄清楚的错误.如果我手动删除权限它没有问题.有人有个主意吗?

$path = "C:\"

$colRights = [System.Security.AccessControl.FileSystemRights]"CreateDirectories"

$InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::None 
$PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None 

$objType =[System.Security.AccessControl.AccessControlType]::Allow 
$objUser = New-Object System.Security.Principal.NTAccount("Authenticated Users") 
$objACE = New-Object System.Security.AccessControl.FileSystemAccessRule ($objUser, $colRights, $InheritanceFlag, $PropagationFlag, $objType) 

$objACL = Get-ACL $path 
$objACL.RemoveAccessRule($objACE) 

Set-ACL $path $objACL
Run Code Online (Sandbox Code Playgroud)

错误是:

Set-Acl : The security identifier is not allowed to be the owner of this object.
At C:\Users\mhodler\Desktop\Remove Permission.ps1:57 char:8
+ Set-ACL <<<<  $path $objACL
    + CategoryInfo          : InvalidOperation: (C:\:String) [Set-Acl], InvalidOperationException
+ FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.SetAclCommand
Run Code Online (Sandbox Code Playgroud)

powershell acl

33
推荐指数
2
解决办法
3万
查看次数

PowerShell 导入 Pfx 和私钥“丢失”

我使用以下 PowerShell 函数将 PFX 导入到我的 Windows 2008 R2 服务器的证书存储中

function Import-PfxCertificate ([String]$certPath,[String]$certificateStoreLocation = "CurrentUser",[String]$certificateStoreName = "My",$pfxPassword = $null)
{
    $pfx = new-object System.Security.Cryptography.X509Certificates.X509Certificate2    

    $pfx.Import($certPath, $pfxPassword, "Exportable,PersistKeySet")    

    $store = new-object System.Security.Cryptography.X509Certificates.X509Store($certificateStoreName,$certificateStoreLocation)    
    $store.open("MaxAllowed")    
    $store.add($pfx)    
    $store.close()
    return $pfx
}
Run Code Online (Sandbox Code Playgroud)

该函数的调用者看起来像$importedPfxCert = Import-PfxCertificate $pfxFile "LocalMachine" "My" $password我将它安装到本地机器的我的商店。然后我向我的 IIS 应用程序池授予了读取权限。

我有一个需要使用它的 WCF 服务

<behaviors>
  <serviceBehaviors>
    <behavior>
      <serviceCredentials>
        <serviceCertificate findValue="MyCertName" x509FindType="FindBySubjectName" />
        <userNameAuthentication userNamePasswordValidationMode="Custom"
          customUserNamePasswordValidatorType="MyValidator" />
      </serviceCredentials>
    </behavior>
  </serviceBehaviors>
</behaviors>
Run Code Online (Sandbox Code Playgroud)

当我使用客户端调用服务时,WCF 出现异常 It is likely that certificate 'CN=MyCertName' may not have a private key …

powershell-2.0 x509certificate

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

标签 统计

acl ×1

powershell ×1

powershell-2.0 ×1

x509certificate ×1