我有一台 Exchange 2010 SP3 服务器,它从 MSExchangeIS 获取应用程序事件错误 9646:
Mapi 会话 [ID] [AD 用户] 超过了“objtFolder”类型的最大 500 个对象
对此进行调查,发现原因是几个用户对其他人的邮箱拥有大量完全访问权限。
由于这种方式在 SP1 中发生了变化,请参阅此处的 Technet 文章,他们现在会自动打开他们有权访问的所有用户,而不是仅在需要时才能够添加或打开它们。
理想情况下,我想要一个脚本,我可以运行它来全局删除所有用户的 -Automapping $true 字符串:这应该让他们在需要时访问邮箱,但阻止它自动打开,占用 MAPI 会话。
我从上面的 URL 尝试了 Microsoft Technet 脚本,但这似乎没有按预期工作:
[PS]$FixAutoMapping = Get-MailboxPermission sharedmailbox|where {$_AccessRights -eq "FullAccess" -and $_IsInherited -eq $false}
The operation couldn't be performed because object sharedmailbox couldn't be found on '[Servername]'.
+ CategoryInfo : InvalidData: (:) [Get-MailboxPermission], ManagementObjectNotFoundException
+ FullyQualifiedErrorId : B485A4C7,Microsoft.Exchange.Management.RecipientTasks.GetMailboxPermission
Run Code Online (Sandbox Code Playgroud)
我假设 sharedmailbox 是一个在我的服务器上不存在的特定示例邮箱:我需要一个脚本来搜索所有邮箱,然后将 Automapping $true 更改为 Automapping $false 以获取对邮箱的任何访问权限。 …
我的任务是导出几个 AD 组的成员.csv,我过去总是使用Get-ADGroupMemberpowershell 中的命令导出这些组的成员,指定组名称,选择我需要的属性,然后使用export-csv.
我似乎遇到了一个组的问题,尽管这似乎与 AD 组的成员属于不同林中的外部域这一事实有关。本质上我运行下面的命令,但输出文件显示为空白。
Get-ADGroupMember -identity "VPN Users" | select name | Export-csv -path c:\vpnuserslist.csv -NoTypeInformation
Run Code Online (Sandbox Code Playgroud)
输出如下:
PS C:\Windows> Get-ADGroupMember -identity "VPN Users" | select name | Export-Csv -Path c:\vpnuserstest.csv -NoTypeInformation
Get-ADGroupMember : The operation completed successfully
At line:1 char:18
+ Get-ADGroupMember <<<< -identity "VPN Users" | select name | Export-Csv -Path c:\vpnuserstest.csv -NoTypeInformation
+ CategoryInfo : NotSpecified: (VPN Users:ADGroup) [Get-ADGroupMember], ADException
+ FullyQualifiedErrorId : The operation completed successfully,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember
Run Code Online (Sandbox Code Playgroud)
我还注意到,当转到 Active …
我想循环遍历我的所有域服务帐户,并确保人们无法使用该帐户登录服务器。
如何检查服务帐户是否具有交互式登录权限和/或远程登录权限?
它们不是托管服务帐户,因为它们在多个服务器上用作服务帐户。
我尝试过gpresult /s myservername /user myusername /h gpreport.html,但我不太理解该报告。
有一个部分包含:
Security Group Membership when Group Policy was applied
MYDOMAIN\Domain Users
Everyone
BUILTIN\Users
BUILTIN\Administrators
NT AUTHORITY\REMOTE INTERACTIVE LOGON
NT AUTHORITY\INTERACTIVE
Run Code Online (Sandbox Code Playgroud)
最后两个是允许该用户登录服务器的吗?
或者是否有我可以使用命令行检查和查找的组策略?
我的 DSC 配置中有以下内容:
xWebApplication StaffDirectoryApp {
Website = "MySite"
Name = "MyApp"
WebAppPool = "MyPool"
PhysicalPath = $Destination
Ensure = "Present"
PreloadEnabled = $true
}
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常,但我还想使用 AuthenticationInfo 属性(尽管文档似乎说它应该是 AuthenticationInformation,但事实并非如此)。
我能找到的唯一例子是 GitHub 上的一个单元测试,它们的用法是这样的:
AuthenticationInfo = New-CimInstance -ClassName MSFT_xWebApplicationAuthenticationInformation `
-ClientOnly `
-Property @{ Anonymous = $false; Basic = $false; Digest = $false; Windows = $true }
Run Code Online (Sandbox Code Playgroud)
然而,这会产生以下结果:
Convert property 'AuthenticationInfo' value from type 'STRING' to type 'INSTANCE' failed
Run Code Online (Sandbox Code Playgroud)
我应该如何设置这个属性?
我一直在尝试在运行 Windows Server 2012 R2 的 VM 上使用OpenSSH的PowerShell 端口进行公钥身份验证。
我忠实地遵循了安装说明,并确保我的文件权限对于.ssh\authorized_keys. (无法在 Win32-OpenSSH wiki 中发布特定说明的链接,因为我太少,无法发布两个以上的链接,请参阅下面的评论)。
我可以使用用户名/密码按预期从 linux 主机登录到 windows 主机。然而,密钥认证不走运。
我的本地 .ssh/config文件包含:
Host remotehostname
HostName remotehostname
User remoteuser
Port 22
IdentityFile /home/myusername/.ssh/id_dsa
Run Code Online (Sandbox Code Playgroud)
本地.ssh目录中的权限显示正确:
[me@localhost.ssh]$ ls -ltrh
total 56K
-rw------- 1 cengadmin cengadmin 1.6K Sep 11 10:01 known_hosts
-r-------- 1 cengadmin cengadmin 672 Sep 11 10:06 id_dsa
-r-------- 1 cengadmin cengadmin 580 Sep 11 10:13 config
Run Code Online (Sandbox Code Playgroud)
对于我的一个应用程序,我有一个 Windows 服务(在 Windows Server 2012 R2 x64 上),它的作用是在不同的计划和触发器上执行许多作业。其中之一是在 Office 365 上重置用户密码。运行该服务的服务器安装了 Microsoft Online Services 登录助手和用于 Windows PowerShell 的 Microsoft Azure Active Directory 模块(MSOnline 版本 1.1.166.0)。
从 PowerShell 我可以成功地与我的用户调用以下内容。
$> $cred = Get-Credential
$> Connect-MsolService -Credential $cred
Run Code Online (Sandbox Code Playgroud)
如果我以帐户身份运行 PowerShell,我的服务启动时也能正常运行。从 Windows 服务运行重置密码功能失败并显示以下消息:
The term 'Connect-MsolService' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. …Run Code Online (Sandbox Code Playgroud) powershell .net azure microsoft-office-365 azure-active-directory
我正在尝试通过优化卷 cmdlet 对卷进行碎片整理。我已经通过了挂载点路径。但它失败如下。
PS C:\Users\Administrator> Optimize-Volume -Path C:\Testvol1\disk
Optimize-Volume : No MSFT_Volume objects found with property 'Path' equal to 'C:\Testvol1\disk'. Verify the value of the property and retry.
At line:1 char:1
+ Optimize-Volume -Path C:\Testvol1\disk
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Testvol1\disk:String) [Optimize-Volume], CimJobException
+ FullyQualifiedErrorId : CmdletizationQuery_NotFound_Path,Optimize-Volume
Run Code Online (Sandbox Code Playgroud)
如何传递Optimize-volume的路径?或者有没有其他方法可以使用可用的 mounthpath 进行碎片整理?
我想检索属于我的 Windows 7 工作站所属的 Windows 域的计算机列表。
我想在几乎不需要额外安装的情况下实现这一点,尤其是 Microsoft 提供的 230MB 远程服务器管理工具包。
到目前为止,我看到的选项包括 DSQuery 工具(RSAT 包的一部分)和 PowerShell 的 ActiveDirectory 模块(也是 RSAT 包的一部分)。
关于将执行查询的用户的权限,我希望能够使用非特权域用户,但如果没有非特权替代方案,管理员也是一个选项。
我还将提到该net view命令显示同一子网中或工作站“附近”的几台计算机,但显然不是域中的所有计算机。另一方面,该命令不net view /domain:<domain_name>显示任何结果,并返回错误 6118(这很奇怪,因为我希望net view也不会显示任何结果)。
我最近在 2 个不同的位置移动了很多很多文件。它是完全相同的数据集,使用相同的 robocopy 命令,但在我们总部的 Windows Server 2012 R2 上花费不到 30 分钟(使用 PowerShell v4)在 Windows Server 2008 R2 SP 1(PowerShell v2)上花费了大约 15 小时) 在我们 ISP 的服务器中心。两台服务器中的后者实际上有更多的 RAM 和 CPU(实际上是后者的两倍:512 GB 内存,64 核)。
两个任务之间唯一的另一个明显的硬件差异(对我而言)是在 2012 服务器上我将数据从本地磁盘移动到 SAN 卷,而在 2008 R2 服务器上它是跨 SAN(从 LUN 到 LUN)。我不认为这是罪魁祸首,因为源卷和目标卷之间的 iSCSI 带宽在每台机器上都是相同的。
也许我遗漏了一些东西,所以我想把它放在这里,看看你们都有什么见解。
powershell robocopy file-transfer windows-server-2008-r2 windows-server-2012-r2
Powershell 有一个Get-TlsCipherSutecmdlet,可返回有关 TLS 可以使用哪些密码的信息。
输出包括一个Protocols似乎被设置为数字数组的字段,例如:
PS C:\>Get-TlsCipherSuite -Name "AES"
KeyType : 0
Certificate : ECDSA
MaximumExchangeLength : 65536
MinimumExchangeLength : 0
Exchange : ECDH
HashLength : 0
Hash :
CipherBlockLength : 16
CipherLength : 256
BaseCipherSuite : 49196
CipherSuite : 49196
Cipher : AES
Name : TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
Protocols : {771, 65277}
Run Code Online (Sandbox Code Playgroud)
Protocols作为每个密码套件(例如,771和652677)的字段值的数字的含义是什么?
注意:如果您去探索,请注意此命令的输出似乎与 不符select,请参阅https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/16511008-get-tlsciphersuite-does-not -输出-表现良好-ob
powershell ×10
windows ×2
.net ×1
azure ×1
defrag ×1
domain ×1
dsc ×1
dsquery ×1
exchange ×1
known-hosts ×1
outlook-2007 ×1
outlook-2010 ×1
robocopy ×1
ssh ×1
ssl ×1