powershell - 为什么我的PowerShell结果重复?

标签 powershell

美好的一天,

PowerShell新秀在这里...

如果我这样输出到屏幕:

    foreach($databasePermission in $database.EnumDatabasePermissions($user.Name))
{
    Write-Host $databasePermission.PermissionState $databasePermission.PermissionType "TO" $databasePermission.Grantee
} 

我得到了,这就是我想要的:
Grant CONNECT TO dbo

但是,如果我尝试输出到这样的文本文件:
    foreach($databasePermission in $database.EnumDatabasePermissions($user.Name))
{
    "$databasePermission.PermissionState $databasePermission.PermissionType TO $databasePermission.Grantee" | Out-File $filename
} 

我的结果重复如下:
[dbname] Database: cust_serv, Grant, CONNECT.PermissionState [dbname] Database: cust_serv, Grant, CONNECT.PermissionType TO [dbname] Database: cust_serv, Grant, CONNECT.Grantee

谢谢!

最佳答案

如果使用字符串访问对象的属性,则必须将其包含在$(...)中:

看一下两者之间的区别

"$databasePermission.PermissionState"


"$($databasePermission.PermissionState)"

关于powershell - 为什么我的PowerShell结果重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7124259/

相关文章:

windows - 如何使用 powershell 将反斜杠 CR LF 替换为 <br>

powershell - 此计算机上未安装 Windows PowerShell 管理单元 'Microsoft.Sharepoint.Powershell'?

powershell - Invoke-Webrequest 在 POST 上得到 401,但在使用基本身份验证的 GET 上却没有得到 401

Azure DevOps 的 Powershell Invoke-RestMethod 未使用 PAT 进行身份验证

powershell - $PSDefaultParameterValues 可以将默认参数值发送到脚本吗?

powershell - Power Shell 测试连接,然后获取计算机名称或 mac-addr

windows - 通过 powershell 将环境变量设置为依赖于 Windows 上的其他环境变量

powershell - 在 PowerShell 中一起使用 ffmpeg 和 ffplay

Powershell 列表框项目排序错误

powershell - 在 powershell 脚本中捕获批处理文件的输出