从php中执行Powershell脚本
我正在尝试从PHP执行PowerShell脚本,但似乎不起作用. 脚本" newevent.ps1"在Exchange Server上创建一个事件. $psPath = "powershell.exe"; $psDIR = "C:\\wamp\\www\\ant\\assets\\ps\\"; $psScript = "newEvent.ps1"; $runScript = $psDIR. $psScript; $runCMD = $psPath." ".$runScript." 2>&1"; echo "\$psPath $psPath "; echo "\$psDIR $psDIR "; echo "\$psScript $psScript "; echo "\$runScript $runScript "; echo "\$runCMD $runCMD "; exec( $runCMD,$out,$ret);
2 2023-05-26
编程技术问答社区
在Powershell中的icacls权限脚本
让我首先说我很熟悉脚本!基本上我要做的是编写一个将创建所有这些文件的脚本:对于上一年和当前年份的文件中的13-14是14-15.顶级文件夹是AD,CC,DC,FS,IT,OP: 例如 c:\ test \ ad \ 13-14 \ audit \ fir c:\ test \ cc \ 13-14 \ osa c:\ test \ dc \ 13-14 \ vendor c:\ test \ fs \ 13-14 \维护 c:\ test \ it \ 13-14 \细节 c:\ test \ op \ 13-14 \训练 (还有更多文件夹,这只是一个示例) 我编写的脚本到目前为止创建所有这些文件夹是: $Users = Get-Content "C:\Users\david\Desktop\PowershellFoldersDB.txt" ForEach ($user in $users) { $newPath = Join-path
0 2023-05-25
编程技术问答社区
如果应用程序许可full_access_as_app未授予PowerShell Exchange EWS脚本身份验证,则使用OAuth获取401错误
我正在尝试将一些EWS脚本转换为使用OAuth.我发现,当Azure注册应用程序获得了应用程序许可Full_access_as_app时,它可以正常工作,但是当它仅设置为授权的权限ews.accessasuser.all时,它不行.看来,如果给出了full_access_as_app,那么拥有appid和秘密的任何人都可以访问任何邮箱.当ews.accessasuser.ly提供时,没有人可以访问任何邮箱.我希望的是,邻接和秘密本质上是通往大门的钥匙,但是访问邮箱将基于运行脚本的特定用户或使用它传递的凭据(我不知道如何除非是登录用户),否则邮箱具有权限.因此,从本质上讲,您进入大门,但随后您使用模仿.似乎也不能像凭据那样将应用程序秘密保存在安全的哈希文件中,因此秘密被暴露了.谢谢您的帮助. ## Request an access token # Define AppId, secret and scope, your tenant name and endpoint URL $
10 2023-05-25
编程技术问答社区
在通过Powershell改变ACL时获得错误信息
我正在处理一个小脚本,该脚本会在添加额外权限的文件夹上使用ACL;我执行" set-acl"命令时会遇到错误;请让我知道我做错了什么. $AddAccessRule = New-Object security.accesscontrol.filesystemaccessrul("CREATOROWNER",@("ReadAndExecute,Synchronize"),"ContainerInherit,Objectinherit","Inheritonly","Allow") $objacl = get-acl $FolderPath $ObjAcl.AddAccessRule($AddAccessRule) Set-acl $FolderPath $objacl 当我执行它时,发生了错误错误; 与" 1"参数的" addAccessrule"的例外:"某些或所有身份引用无法翻译". 在C:\ Users \ Kakulva \ Desktop \ Scripts \
0 2023-05-25
编程技术问答社区
为"域用户"设置WMI权限
我已经在PowerShell中创建了两个函数,该功能创建了名称空间ROOT\CustomCMClasses和一个创建类Test的功能.这件作品正常: Param ( $Namespace = 'CustomCMClasses', $Class = 'Test' ) Function New-WMINamespaceHC{ if (Get-WmiObject -Namespace 'root' -Class '__NAMESPACE' | Where-Object {$_.Name -eq $Namespace}) { Write-Verbose "WMI Namespace 'root\$Namespace' exists" } else { Write-Verbose "Create WMI namespace 'root\$Namespace'" $Ns = [WMICLASS]'
0 2023-05-25
编程技术问答社区
改变注册表文件夹权限抛出的访问被拒绝
我尝试使用以下代码来更改一些reg-permissions: $acl = Get-Acl HKLM:\SYSTEM\CurrentControlSet\Services\TrustedInstaller $inheritance = [System.Security.AccessControl.InheritanceFlags]"None" $propagation = [System.Security.AccessControl.PropagationFlags]"None" $Rule = New-Object System.Security.AccessControl.RegistryAccessRule ("Administrators","FullControl","ContainerInherit","none","Allow") $acl.AddAccessRule($Rule) $acl | Set-Acl 当我运行时,我会收到错误 set-acl :
0 2023-05-25
编程技术问答社区
在Windows Server 2008 R2上将HKCR\CLSID\*键的所有者改变为管理员
Win Server 2008 R2有一个注册表密钥, HKCR:\CLSID\{76A64158-CB41-11D1-8B02-00600806D9B6} 其所有者不是管理员.它是可信赖的.现在使远程 DCOM/WMI连接工作,我需要授予管理员的权限 完全控制此钥匙和所有权.因为这需要完成 几台机器,我希望我可以使用PowerShell做到这一点.我跟着 这些 控制注册表均使用PowerShell 用PowerShell更改目录的所有者 ,但我仍然有这个错误 Exception calling "OpenSubKey" with "3" argument(s): "Requested registry access is not allowed." 我要运行的代码很简单 $key = [Microsoft.Win32.Registry]::ClassesRoot.OpenSubKey( "CLSID\{76A64158-CB41-11D1
4 2023-05-25
编程技术问答社区
TFS构建:作为管理员运行PowerShell脚本
我为我们的夜间构建服务器创建了一个构建定义. 构建项目(Windows Service)后,我需要执行一个PowerShell脚本以安装和启动服务.因此,我添加了一个构建步骤来运行特定的PowerShell脚本.然后,我在(即将成为)每晚构建服务器上安装了TFS Build Agent&Visual Studio. 运行构建脚本后,我得到了"退出代码5",这似乎与缺少的管理权限有关. 如果我手动在服务器上启动脚本,则可以正常工作. 代理使用的用户已经获得了管理权限. 有没有一种方法可以使用Admin权限执行构建代理/构建定义的构建服务器上的PowerShell脚本? 解决方案 您只需要确保您的构建服务帐户(可以是本地帐户,域帐户或工作组中的本地服务)也获得了管理许可.
10 2023-05-25
编程技术问答社区
用PowerShell设置私钥权限
我有一个PowerShell脚本,该脚本将PFX证书安装到 localmachine 证书存储中.该功能看起来像这样: function Add-Certificate { param ( [Parameter(Position=1, Mandatory=$true)] [ValidateNotNullOrEmpty()] [string]$pfxPath, [Parameter(Position=2, Mandatory=$true)] [ValidateNotNullOrEmpty()] [string]$pfxPassword ) Write-Host "Installing certificate" -ForegroundColor Yellow try { $pfxcert = new-object system.security.cryptography.x509certif
0 2023-05-25
编程技术问答社区
如何使用PowerShell在每个人的文件夹上设置写入权限
我试图与所有人共享一个文件夹并使用以下命令,但它不起作用. NET SHARE Movies=C:\foldername "/GRANT:Everyone,FULL" runnign此命令之后,消息是"成功共享"的消息,但是当我检查文件夹许可时,它不会显示相同的. 谁能告诉我正确的命令? 解决方案 您的净份额效果很好.要设置文件夹权限,您需要设置ACL权限: $sharepath = "C:\foldername" $Acl = Get-ACL $SharePath $AccessRule= New-Object System.Security.AccessControl.FileSystemAccessRule("everyone","FullControl","ContainerInherit,Objectinherit","none","Allow") $Acl.AddAccessRule($AccessRule) Set-Acl $SharePat
2 2023-05-25
编程技术问答社区
提升Powershell脚本
是否有可能提高PowerShell脚本的权限,以便没有管理员特权的用户可以运行脚本?我们的网络管理员正试图找到更多时间效率的方法来完成某些任务,目前他们必须使用远程桌面来...使用PS脚本自动化它们会有所帮助,但是用户没有管理员权利. 解决方案 任务更像是setuid,而不是sudo ...而且值得庆幸的是,setuid 是可能:您可以简单地创建一个计划的任务(没有设置的时间表 ),并将其设置为升高.然后,赋予您的用户执行该任务的权利.我概述了该过程在一篇博客文章中不久前,还有一个PowerShell脚本,以帮助创建任务和快捷方式来运行它们. 问题(正如Jaredpar所建议的那样)是,您必须确保您计划运行的应用程序升高或"作为管理员"受到保护,如果您将运行脚本,则尤其如此.确保没有人,但是管理员可以编辑或替换该脚本,或者您正在赠送王国的众所周知的钥匙. 其他解决方案 如果您使用的是V2,则可以使用以下以下内容,该以下内容 powershell团队博客 Sta
0 2023-05-25
编程技术问答社区
在PowerShell中共享一个文件夹并设置权限
我需要一个脚本来在Vista Ultimate上运行,以共享外部驱动器并为所有人分配完整的控制.我有一个批处理文件可以使用net share创建共享,但是似乎没有一种更改权限的方法.我认为在PowerShell中必须有可能,但我不知道从哪里开始. 解决方案 两个答案. 在PowerShell中,Get-Acl CMDLET将检索现有的权限.然后,您可以修改使用.NET命令的命令,然后运行set -acl将其应用于文件夹 - 这两个cmdlet的帮助包括示例,您可以从www.sapienpress.com下载书籍示例,用于" Windows PowerShell:TFM: " =这本书还包含明确的示例. 但是,这不值得您时间.实际上,档案ACL是皇家痛苦,并且非常复杂.微软已经编写了可爱的工具来做到这一点,例如CACLS,并且使用这些工具更容易. 现在,这就是所有文件权限 - 您可能也有兴趣更改共享本身的权限.该工具是subInacl,您可以从Microsoft下
2 2023-05-25
编程技术问答社区
如何使用Powershell设置文件夹的权限
我正在尝试编写一个脚本,该脚本在所有文件服务器上添加了"创建者"权限$. 即,将"创建者"权限添加到" \ fileserver \ profile $" 有人可以告诉我什么命令和语法? 请问是否有任何问题. 解决方案 这样做的一种方法是使用WMI和UNC路径. $AccessRule = New-Object system.security.accesscontrol.filesystemaccessrule("CREATOR OWNER","FullControl","ContainerInherit, ObjectInherit","InheritOnly","Allow") $profileshare = Get-WmiObject Win32_Share -ComputerName fileserver -Filter "name = 'profile$'" $driveletter, $path = $profileshare.path $p
0 2023-05-25
编程技术问答社区
如何用PowerShell获取文件所有权?
问题:我希望对我绝对没有权限的文件进行编程(使用PowerShell). Update :我已经彻底重写了一个问题以重现问题.这是我在做的: ########################################################## # Logon as UserA ########################################################## $file = "C:\temp\file.txt" new-item C:\temp -type dir new-item $file -type file # Remove inheritence $isProtected = $true $preserveInheritance = $true $FileSecurity = Get-ACL $file $FileSecurity.SetAccessRuleProtection($isProtected, $pr
0 2023-05-25
编程技术问答社区
powershell删除一个特定用户的文件夹的所有权限
我需要一个脚本或简单的powershell代码,以将这些删除的所有权限删除给特定用户的文件夹,并将这些删除也继承到所有子文件夹和文件 - 递归... 预先感谢您! 解决方案 $acl=get-acl c:\temp $accessrule = New-Object system.security.AccessControl.FileSystemAccessRule("domain\user","Read",,,"Allow") $acl.RemoveAccessRuleAll($accessrule) Set-Acl -Path "c:\temp" -AclObject $acl 这应该擦除C:\ temp递归 中用户的所有安全规则 其他解决方案 我认为这样做的简单方法是从具有正确权限的文件或文件夹中复制ACL,并将其应用于需要特定访问的文件夹. 示例: $acl= get-acl /path/to/file_with_correct acl $file
0 2023-05-25
编程技术问答社区
启动-进程。拒绝访问(即使我已经提供了凭证
试图执行代码行 时,我会遇到以下错误 Start-Process : This command cannot be executed due to the error: Access is denied. 这是被执行的代码 $username = "domain\username" $passwordPlainText = "password" $password = ConvertTo-SecureString "$passwordPlainText" -asplaintext -force $cred = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $username,$password $powershellArguments = "D:\path\ps.script.ps1", "arg1", "arg2", "arg3", "arg4" St
0 2023-05-25
编程技术问答社区
用set-acl和powerhell设置继承和传播标记
我正在尝试模仿在文件夹上右键单击,在文件夹上"修改"的操作,并将权限应用于特定文件夹和子文件夹和文件. 我主要是在那里使用PowerShell,但是继承仅设置为"子文件夹和文件",而不是整个"此文件夹,子文件夹和文件". 是否有一些system.Security.AccessControl.propagationflags可以正确设置此的flag. 这是我到目前为止与之合作的. $Folders = Get-childItem c:\TEMP\ $InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit $PropagationFlag = [System.Security.AccessControl.Propagat
2 2023-05-25
编程技术问答社区
在脚本中设置MSMQ队列的权限
任何人都可以给我一些关于如何在脚本中设置MSMQ队列的权限的指示,最好是PowerShell,但我会使用vbscript 解决方案 礼物(2015)对此问题的回答. 示例: New-MsmqQueue -Name "MyQueue" -QueueType Private Get-MsmqQueue -Name "MyQueue" -QueueType Private | Set-MsmqQueueAcl -UserName "Everyone" -Allow FullControl 适用于:Windows 8.1,Windows PowerShell 4.0,Windows Server 2012 R2 参考: .com/en-us/library/dn391735(v = wps.630).aspx 其他解决方案 这是一些示例PowerShell,包括设置权限... 对长度 的抱歉 Write-Host "" Write-Host "Ex
0 2023-05-25
编程技术问答社区
如何使用Powershell为用户授予证书私钥的权限?
证书已经安装在机器上.现在,我想在private of证书上授予应用程序用户的读取许可. 解决方案 这是答案. 创建一个powershell脚本文件addusertocertificate.ps1 这是脚本文件的内容. param( [string]$userName, [string]$permission, [string]$certStoreLocation, [string]$certThumbprint ); # check if certificate is already installed $certificateInstalled = Get-ChildItem cert:$certStoreLocation | Where thumbprint -eq $certThumbprint # download & install only if certificate is not already install
6 2023-05-25
编程技术问答社区
在一个.Net调用中,在哪里应用-ErrorAction?
这可以计算 *.jpg文件. PS C:\> @([System.IO.Directory]::EnumerateFiles('C:\Users\Public\Pictures', '*.jpg', 'AllDirectories')).Count 8 如何将-ErrorAction Continue应用于此? PS C:\> @([System.IO.Directory]::EnumerateFiles('C:\Users', '*.jpg', 'AllDirectories')).Count An error occurred while enumerating through a collection: Access to the path 'C:\Users\Administrator' is denied.. At line:1 char:1 + @([System.IO.Directory]::EnumerateFiles('C:\Users', '*.jpg
0 2023-05-25
编程技术问答社区