我需要用SYSTEM用户映射networking驱动器,我创build了一个由计划任务运行的PS1,第一部分成功映射驱动器: $net = new-object -ComObject WScript.Network $net.MapNetworkDrive("y:", "\\SAN_SERVER\folder1", $false, "domain\service_user", "password") 映射后,一堆东西正在发生,复制文件等 在脚本结尾,映射的驱动器需要断开连接: & 'D:\Scripts\PsExec64.exe' -s cmd /c "net use y: /delete /yes" 这个命令工作,如果我从我的用户帐户手动运行它(我需要启动PS作为pipe理员),但它不工作从计划任务中的脚本,我使用PsExec64.exe,因为我发现,因为networking驱动器映射与域\用户,它只能断开与域/ service_user除非我们使用PsExec64.exe,有没有办法断开驱动器使用不同的credintials?
编辑:它看起来像问题是Exchangepipe理员angular色的问题。 当我的主pipe升级我们的服务器到Exchange 2013,看起来像我的帐户没有被添加到任何一个。 这也解释了为什么我永远无法用我的账户loginEAC。 我已经更新了pipe理angular色,我以前的脚本现在正在工作。 当我使用下面的脚本,它只是为我自己返回信息。 Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Sort-Object TotalItemSize -Descending | Select-Object DisplayName,TotalItemSize 我也尝试了以下两个脚本,但都返回的错误,无法find-Server或-Database参数。 Get-MailboxStatistics -Server SERVERNAME | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label=”TotalItemSize(MB)”;expression={$_.TotalItemSize.Value.ToMB()}},ItemCount -auto Get-MailboxStatistics -database "DATABASENAME" | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label=”TotalItemSize(MB)”;expression={$_.TotalItemSize.Value.ToMB()}},ItemCount -auto 我已经尝试以pipe理员身份运行Exchange Management Powershell,并且首先使用“#Enable Exchange cmdlet”,但似乎都没有帮助解决这个问题。 让我知道是否需要其他信息,并提前感谢。
我需要一种方法来获取Office365中的所有用户帐户(从本地AD与AADSync同步),这不是共享邮箱。 我也需要知道他们是否有执照,但我已经知道了。 我需要这个潜在的分配他们的许可证。 stream程: 新的AD帐户在场所中创build 它与AADSync同步到AAD / Office365 进程向用户查询AAD,并使用自定义逻辑来确定用户是否应该获得许可分配。 新创build的帐户返回并列为没有许可证 进程将许可证分配给新帐户,因为业务规则如此说明 我如何在这里做第3步? 我目前使用这样的东西: Get-MsolUser -MaxResults Unlimited | Select-Object UserPrincipalName,IsLicensed,UsageLocation,Licenses …但是这也返回共享邮箱,我不想要的。
我有一个PowerShell脚本,在办公室PC夜间工作 – (没有pipe理员权限) – 问题是在夜间更新正在推动和系统重新启动和脚本将无法启动,因为我没有批处理执行或其他类似的权利。 有一种方法来“结束任务”窗口更新,但在任务pipe理器中的PowerShell。 但是,我想知道是否安全 – 一旦我回到办公室,我将重新启动电脑。 我无法禁用更新服务 – 没有权利。 主要想知道更新服务和更新任务的区别。 更新服务负责更新下载? 还是任务负责? 更新服务是负责安装更新还是任务负责? 什么时候发生(缺点),如果我继续运行一个脚本,每分钟结束任务的Windows更新任务。 我试图每隔一分钟“closures-a”,但知道它不会影响基于关机的更新。 没有pipe理员权限 – 所以再见了gpedit,regedits等基础的解决scheme。 一旦更新完成 – 将有一个屏幕要求重新启动(5-15分钟)或手动重启后一小时等 – 但由于没有人会在那里是自动重新启动。 请指教。 – 了解更多信息真的很有帮助。
我有一个这样的脚本运行的命令列表 Some-Cmdlet -someswitch | Outfile -filepath .\somefile.txt -append Another-Cmdlet -someswitch | Out-File -filepath .\somefile.txt -append Hello-Cmdlet -someswitch | Out-File -filepath .\somefile.txt -append Banana-Cmdlet -someswitch | Out-File -filepath .\somefile.txt -append 它实际上是创build这个somefile.txt的一长串命令。 如果必须更改somefile.txt的位置或名称,则必须逐一编辑每一行。 我想清理脚本的可维护性,所以我想是这样的: 对于以下命令列表: Some-Cmdlet -someswitch Another-Cmdlet -someswitch Hello-Cmdlet -someswitch Banana-Cmdlet -someswitch 总是把这个添加到命令中: | Outfile -filepath .\somefile.txt -append 这样我只需要在一个地方编辑脚本,如果somefile.txtpath或名称需要改变。
我有这个任务来自动化一个testing实验室的设置。 我的观点是非常苛刻的要求: 一切都必须包含在一个Powershell脚本中。 所需的ISO必须从微软下载页面下载。 一旦ISO被下载,安装程序应该启动并创build虚拟机。 在创build虚拟机时,应该安装Windows Server 2012 R2,并从那里安装AD,OM,DHCP和SQL Server等应用程序。 我几乎所有的一切,直到第4步,有没有人知道一种方法来包括自动装入只有PowerShell ISO? 还是有另一种方法来完成Server 2012的自动安装? 我非常感谢所有想帮助我的人!
我有一个Windows批处理脚本,将EXE或batch file复制到远程文件共享,并使用PowerShell WinRM在远程服务器上运行它。 远程运行该命令的行如下所示: ECHO Invoke-Command -Authentication CredSSP -Credential %USERDOMAIN%\%USERNAME% -ComputerName %SERVER_NAME% -ScriptBlock { cd (gwmi Win32_Share -Filter "name='%SHARE_NAME%'").Path ; .\%MY_EXE_TO_RUN% } |PowerShell.exe -Command – 我需要将当前目录更改为要运行的EXE /batch file所在的文件共享目录(它依赖于此目录)。 它也必须是一个本地目录 – 如果我尝试使用CD \\%SERVER_NAME%\%SHARE_NAME%这可以用于EXE,但是对于batch file将失败,cmd.exe不支持将UNCpath作为当前目录。 但是,我也不想在脚本中硬编码共享的本地path,所以我试图在WMI中查找它。 这对pipe理员工作正常,但对于拒绝访问错误的非pipe理员失败。 这些非pipe理员用户可以将RDP发送到服务器,打开PowerShell并在那里成功运行gwmi Win32_Share 。 因此,通过WinRM运行时,权限检查似乎有点不同! 我发现http://www.adilhindistan.com/2013/10/permissions-to-access-wmi-remotely.html,但在许多服务器上看起来相当复杂。 除此之外,我不需要远程WMI访问。 也许还有另一种方式来解决这个份额的本地path? 或者,也可以以某种方式运行WMI查询并对其应用本地权限检查? 毕竟,我已经在远程服务器上的代码,所以应该有一些方法来做到这一点。
我正在尝试从OU中获得权限列表,并使用“Get-ACL”; (Get-Acl $OUName).access | Select Identityreference,ActiveDirectoryRights,accesscontroltype 结果并不令人满意,显示出许多“ReadProperty”和“WriteProperty”权限,并且模糊了背景上的确切属性名称。 有没有办法用“Get-ACL”来获取确切的属性名称? 让我知道是否有任何额外的问题或需要确认。
我正在使用Sql Server SMO和Powershell脚本编写SQL脚本的执行脚本。 我们发现了两个问题: Powershell的事件处理按顺序处理 在所有事件都被处理之前,控制权被返回到调用脚本(这是有道理的,因为它们应该是asynchronous的)。 鉴于这个脚本: Add-Type -AssemblyName "Microsoft.SqlServer.SMO, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" | Out-Null Add-Type -AssemblyName "Microsoft.SqlServer.ConnectionInfo, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" | Out-Null (Get-Date -format "dd-MMM-yyyy HH:mm:ss.fff") + ": Starting Script" | Out-File -FilePath $sqlOutputFilename -Append $serverConnection = New-Object ('Microsoft.SqlServer.Management.Common.ServerConnection') "FTS-DEVSERVER", "SA", "avid4uin)*" $serverSMO = new-object ('Microsoft.SqlServer.Management.Smo.Server') $serverConnection $sqlOutputFilename = "output.log" $serverMessage = { (Get-Date […]
什么是用于部署虚拟机的整个networking,然后在Azure上configuration它们的最有效和最现代的工具链? 我们正在尝试使用负载平衡器在Azure云上自动部署4个子网上的14个虚拟机。 目前我们使用Azure Powershell和JSON模板完成configuration,之后我们还必须select一个工具来将代码部署到这些机器并configuration它们(我已经读过厨师和Puppet,但是我们会喜欢尽可能简单地做到这一点)。 使用Powershell和模板,configurationRedis VM需要大约25分钟,有时会超时。 有没有办法让Powershell脚本几乎立即执行,只需将JSON模板上传到Azure,并让Azure执行所有的REST API工作来指导configuration?