Articles of PowerShell

PowerShell命令检查pipe理员权限总是让我错误,当我RDP到它,真正的时候,我使用WinRM

我试图通过Ansible脚本检查我的远程Windows服务器2012 R2机器的pipe理员权限给当前用户。 我发现以下命令来检查互联网上的pipe理员权限: ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator) 现在有几个关于这个问题: 1)当我使用pipe理员帐户将RDP传送到任何系统时,该命令给出'假'作为输出。 但是当我通过Ansible运行它时(Ansible使用winRM来从中央服务器发起命令),同样的命令返回“真”。 2)是否有更好的命令(CMD或PowerShell)来检查当前用户是否具有pipe理权限?

如何使用PowerShell和/或API启用本地组策略设置?

我刚刚发现我必须在运行特定应用程序的服务器上启用本地组策略设置(计算机configuration – >pipe理模板 – >系统 – >用户configuration文件)。 我有用于安装应用程序和configuration服务器的PowerShell安装脚本。 我希望能够在我的安装脚本中启用这个组策略。 有没有办法在PowerShell中做到这一点? 如果没有, 还有其他技术 ? 我很喜欢使用Win32 API ,如果这是我唯一的select。

签署另一个脚本中包含的Powershell脚本?

我是否需要签署Powershellconfiguration文件中包含的每个Powershell脚本(外部.ps1文件)? 如果是这样,我可以用相同的证书签名(或者是最差的做法)吗? 而只是为了清楚如果一个脚本改变,我只需要辞职改变正确的脚本? 因为脚本的内容是通过某种types的校验和编码到签名中的。

有没有办法使用Office365与PowerShell共享日历?

我有一些自己的Office365计划的客户,他们喜欢所有的日历之间彼此共享。 他们是非常不科技的,这使我不得不经常login到每个电子邮件帐户,并发送股票,然后接受他们。 是否有可能在Office365中使用powershell,如果是的话,你可以使用它来大量分享和接受日历邀请? 这些客户端都不是基于域的,也不运行任何交换服务器。

使用DNSCMD和Powershell 3.0将NSlogging添加到主要的非AD DNS区域

我知道有一个非常类似的问题发布了这个,但提供的修复将不会为我工作,所以不是劫持他的线程,我开始了一个新的问题。 我通过Powershell和dnscmd向某些区域添加了一个NSlogging,每个logging的结果都是相同的 – IP地址为星号,意味着它是“作为DNS查询结果检索到的IP地址,可能不代表实际logging在这个服务器上“。 当星号出现时,该区绝对不会转移。 在使用脚本之后,我查看在DNS2,3和4服务器上创build的辅助区域,如果我回去并从脚本创build的主节点中删除NS,并说明“DNS Server未加载区域”,并添加NS手动,星号消失,刷新后,辅助区域是好的,由DNS服务器加载。 如果我通过GUI中的名称服务器选项卡添加相同的服务器,则不会有星号,并且区域传输没有问题。 我正在这样做“黑洞”这些区域 这里是我创build的Powershell脚本(是的,我知道它可能不是最好的方式或最好的工具,但没有我们没有服务器2012年,但我不能导入任何模块到我的Powershell和DNSCMD工具是我必须与我一起工作,并允许我在这个networking上工作。 我有一个使用下面的脚本添加到“黑洞”的url的文本文件 $a = Get-Content "D:\filelocation\blackholetest.txt" $b = "@" foreach ($a in $a) { dnscmd DNS1 /zoneadd $a /Primary /File $a".dns" dnscmd DNS1 /recordadd $a WWW A IP.ADD.RE.SS dnscmd DNS1 /recordadd $a $b NS DNS2.fully.qualified.domain.name dnscmd DNS1 /recordadd $a $b NS DNS3.fully.qualified.domain.name dnscmd DNS1 /recordadd $a […]

PS Remoting到AD,Get-ADUser和具有本地variables的脚本块

我正在尝试编写一个PS脚本来pipe理AD对象,方法是连接到DC并使用Get-ADUser(以及其他某些其他cmdlet)检索信息。 我使用以下PS代码连接到DC: $global:MyDC = ($env:LOGONSERVER -replace "\\", "") + ".domain.com" $ADsession = New-PSSession -computerName $global:MyDC Invoke-Command -Session $ADsession -Command {Import-Module -Name ActiveDirectory} Import-PSSession -session $ADsession -module ActiveDirectory -Prefix RM 像这样的工程(所以我的PS Remoting似乎是确定的): $strUsersOU = "CN=UserOU,DC=domain,DC=com" $strResourcesOU = "OU=Resources," + $strUsersOU $strSharedOU = "OU=Shared," + $strUsersOU [array]$arrADusers = @(Get-RMADUser -Filter * -SearchBase $strUsersOU -Properties DisplayName, AccountExpirationDate, lockedout, […]

在Windows部署自动化中了解Puppet的用例

我必须在Windows环境中自动执行一些任务。 正在使用的技术是MS SQL Server 2008,IIS,MSMQ等。运行应用程序的所有依赖项都安装在一台机器上。 但是,在生产环境中,依赖关系是在不同的实例上设置的。 截至目前,在任何实例上安装依赖关系(SQL Server,IIS等)都是手动的。 我打算做的第一件事就是创build一个包含所有相关组件(软件)的基本映像。 我认为Puppet和Powershell和Jenkins一起会帮助我。 我对Puppet和Powershell都是新手。 我的目标是: 1)在主机上自动安装软件。 2)在所有(或大部分)环境(开发,集成,分期,UAT,生产)上使用此映像 上述步骤应该是自动化的。 现在我的困惑是,如果我使用Powershell说,安装SQL服务器(和其他软件),那么木偶进入图片? 我可以从Jenkins调用这个Powershell脚本,通过在环境中使用自定义configuration文件来部署在不同的环境中。 我在这里不是很了解木偶的真实用例吗? 我应该实际上使用任何其他工具,如docker等? 请指导我

远程计算机上的Clear-RecycleBin失败

如果我的RDP到我的Windows 2016服务器(称为LAUREL)并运行这个PowerShell,它工作正常: Clear-RecycleBin -DriveLetter C -force 但是,如果我从我的Windows 10工作站作为域pipe理员login运行,命令: icm -ComputerName laurel -ScriptBlock {Clear-RecycleBin -DriveLetter C -force} 我得到: The system cannot find the path specified At line:1 char:1 + icm -ComputerName laurel -ScriptBlock {Clear-RecycleBin -DriveLetter … + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (RecycleBin:String) [Clear-RecycleBin], Win32Exception + FullyQualifiedErrorId : FailedToClearRecycleBin,Microsoft.PowerShell.Commands.ClearRecycleBinCommand + PSComputerName : laurel 关于如何清除远程服务器上的回收站的任何想法? 这个PowerShell的片段将被集成到一个自动虚拟机构build。

交换2010 – 交付报告 – PowerShell

在ECP中,我可以search发送给用户的消息并打开发送报告。 特别是在报告中,我可以看到邮件发送之后,如果由于规则而移动到用户邮箱中的其他文件夹。 我试图用PowerShell这样做,但没有得到相同的信息。 我使用了get-messagetrackinglog,get-messagetrackingreport,search-messagetrackingreport,但他们只是告诉我,如果用户收到它。 与传递报告不同,它不会告诉我邮件已被移到另一个文件夹。 有没有其他的命令,我不知道得到这个信息? 谢谢。

从Windows 10 PowerShellpipe理HyperV Server 2012R2

我无法通过Windows 10上的PowerShellpipe理运行HyperV Server 2012R2(独立的HyperV安装)的主机。虽然我可以通过Windows 10中的Hyper-Vpipe理器连接到它们,并且pipe理它们就好了,当我尝试运行PowerShell命令: Get-VMHost <HyperVHostName> 要么 Get-VMReplication -ComputerName <HyperVHostName> Powershell返回 此Windows PowerShell会话中使用的Hyper-V模块不能用于远程pipe理服务器。 加载兼容版本的Hyper-V模块,或使用Powershell远程直接连接到远程服务器。 错误消息的文档进一步指向了Hyper-V 2012R2的基本远程pipe理文档: https ://technet.microsoft.com/en-us/library/hh846767(v=ws.11).aspx PowerShell命令在Hyper-V Server 2016以及Windows Server 2016上都可以正常工作。由于我不想使用PowerShell远程连接通过PowerShell会话单独连接每台计算机,因此我想知道我能做些什么从Windows 10 Powershellpipe理HyperV Server 2012R2工作。 有任何想法吗?