Articles of PowerShell

在PowerShell中使用AD组

我正在通过PowerShell脚本创buildAD帐户。 它还将用户添加到第二个AD组。 默认情况下,此用户位于主要组的Domain Users组中。 我怎么能够… 确定第二个AD组的ID 将用户的主组标识设置为#1 从Domain Users组中删除用户(#1和#2完成后,这应该很容易)。 我的脚本正在使用[ADSI]命令创build用户并将其添加到第二组。 我没有使用任何附加组件,如MS-AD或Quest。

PowerCLI – 使用现有的scsi控制器将共享硬盘添加到vm

我想添加一个共享虚拟磁盘到已经连接到第一个虚拟机的第二个虚拟机。 他们将共享访问磁盘,通过设置为虚拟总线共享的SCSI控制器。 这可以通过vCenter GUI正常工作,但是我想通过PoweCLI来完成。 我无法find将新的SCSI控制器连接到第二个虚拟机的方法,而无需将现有的硬盘作为parameter passing给new-scsicontroller cmdlet。 不幸的是,这会在第一个虚拟机上创build一个新的SCSI控制器,而不是第二个虚拟机。 任何想法如何使用vSphere API或其他技术做到这一点?

尝试使用Powershell解压文件

我试图解压一堆包括新的xlsx文件到TMP文件夹的档案,然后在该文件夹上工作,然后将其删除。 而狗屎只是不想走我的路。 $spath = "C:\_PS\TestFolder" $destination=”C:\TestFolder\Testzip" Get-ChildItem $spath -include *.xlsx -Recurse | foreach-object { # Remove existing TMP folder and create a new one Remove-Item -Recurse -Force $destination New-Item $destination -type directory $archiveFile = $_.fullname | out-string -stream "Extract this: " + $archiveFile "To here: " + $destination $shellApplication = new-object -com shell.application $zipPackage = […]

在某个date之前使用Powershell来存档邮箱

我们有一个单独的归档设备,可以在使用日记帐号时对邮件进行归档。 在此之前,我必须将每个邮箱手动存档到PST文件,然后将文件存储在我们的存储服务器上。 幸运的是,我不必再那样做了。 我的问题是,使用Powershell,是否可以在每个(或全部一次)邮箱中删除电子邮件并在某个date之前删除? 这将防止我仍然需要将每个邮箱归档到PST文件,即使我可以稍后删除PST文件。 我不想触摸日历项目,只有邮件项目(文件夹和子文件夹)。

validation谁通过PowerShell备份了Bitlocker密钥?

我们目前在工作中使用笔记本电脑上的Bitlocker。 帮助台负责在构build系统时将Bitlocker密钥备份到AD。 我们最近碰到一个问题,那就是用户有一个BitLockerclosures的硬件问题,所以它不会超过屏幕提示恢复密钥。 没问题,我们之前有过这个,除了当我看AD时没有钥匙,这意味着有人忘了把它备份起来。 所以我随机点击一些其他的笔记本电脑对象,并find另一个没有备份。 所以这让我觉得我们需要认真研究一下,然后再发生(更高层次的员工)。 而不是通过整个笔记本电脑OU,点击Bitlocker恢复选项卡,有没有办法在PowerShell检查该标签,看看里面有什么东西? 我甚至不需要知道那里的关键,只要知道是否有数据显示它已经被备份。 如果不是这不是世界末日,但我宁愿能用脚本来做到这一点,而不是手动。 🙂 我一直在网上寻找,但到目前为止,没有发现我想要的东西,通常比我需要的要复杂得多。 谢谢你提供的所有帮助!

如何安装不在域上的远程软件?

我有一种情况,我写的一些软件将被部署在60台笔记本电脑上。 笔记本电脑都运行Windows 7,但没有域控制器,他们都将连接到一个192.168.xxnetworking使用WiFi。 有没有方便的方法,软件(包括一个MSI文件)可以推出到所有的笔记本电脑和安装? 我查看了WMIC,但我认为这需要将机器join到域中,组策略也是如此。 另外一个select是Powershell,但是我有4个小时的时间来完成这个任务,并且没有时间来找出正确的脚本。 如果必须手动完成(我可以find志愿者),这不是世界末日,但如果它可以自动化,它会更好。

从Format-Table到Export-CSV的对象pipe道有意外的结果

我正在运行此命令获取所有Activesync用户的列表,并将其导出到C:\ activesync.csv Get-ActiveSyncDevice | Get-ActiveSyncDeviceStatistics | sort-object status, devicetype , lastsyncattempttime | ft FirstSyncTime ,LastPolicyUpdateTime ,LastSyncAttemptTime ,LastSuccessSync , DeviceType , DeviceID, DeviceAccessState, Identity -a | Export-Csv c:\activesync.csv 问题是,如果我省略尾部| c:\activesync.csv ,CSV数据与控制台显示不匹配 | c:\activesync.csv …其中显示的数据和列不匹配。 这是一个在PowerShell中的错误?

运行使用任务计划程序时,我的PowerShell脚本不会保存到文件; 我是否需要指定一个特定的参数?

我有一个脚本,下载一个临时的Excel文件,将其中的一部分复制到一个新的文件,并将其保存到networking上的特定位置。 问题是,新的文件永远不会被创build/保存。 如果我在本地运行脚本(通过cmd.exe,PowerShell或PowerShell ISE ),它会将文件保存在本地或networking中。 如果我尝试通过日程安排或通过任务计划程序按需运行脚本,则会创build临时文件,但不会创build或保存最终文档。 是否有我需要通过的具体论证,或者我可能做错了什么? 这是我目前使用的命令: powershell.exe -file C:\path\to\my\powershell\script\thescript.ps1 由于它调用了环境variables和其他相对于脚本位置的variables,我还将“Start in”设置为 C:\path\to\my\powershell\script\ 我曾尝试使用 \\MYSERVER\Path\To\Directory\file.xlsx 作为networking上文件的位置( 如这里所build议的 ),但是这也不起作用。

用于设置密码过期的Powershell脚本

由于服务台工作人员的错误,我发现我公司AD中的100多个用户帐户已经被设置,以便他们的密码永不过期。 为了避免所有这些用户突然发现自己无法login的情况,我想运行一个脚本来设置密码到期到指定的date。 我正在使用Quest AD cmdlet,但是我只使用powershell来获得简单的脚本来获取用户列表。 我试图修改的属性是'PasswordStatus',我想将这个属性设置为“密码永不过期”,以便在特定的date。不是一个脚本的人,所以在这方面的任何帮助将是最受欢迎的。

为什么Remove-ADGroupMember默认为需要确认?

在脚本中,我需要pipe理一个组的成员。 不幸的是,用于从组中Remove-ADGroupMember成员的cmdlet, Remove-ADGroupMember总是要求确认。 这与所描述的cmdlet的行为是矛盾的,因为有一个-Confirm选项应该打开确认。 这需要使用模糊的,logging不完整的冒号对开关参数的值进行绑定: -Confirm:$false ,而使用直接的-Force开关更合理。 环境中是否有一个设置可以改变cmdlet的行为? 这只是一个执行不力的function? 我是否错过了一些可以解释开关参数混淆行为的明显文档?