{"id":331,"date":"2006-11-28T05:14:21","date_gmt":"2006-11-28T13:14:21","guid":{"rendered":"http:\/\/testblog.sapien.com\/index.php\/2006\/11\/28\/command-line-one-liners\/"},"modified":"2006-11-28T05:14:21","modified_gmt":"2006-11-28T13:14:21","slug":"command-line-one-liners","status":"publish","type":"post","link":"https:\/\/dev.sapien.com\/blog\/2006\/11\/28\/command-line-one-liners\/","title":{"rendered":"Command Line One-Liners"},"content":{"rendered":"<p>I recently did a <a href=\"http:\/\/www.mcpmag.com\/columns\/article.asp?EditorialsID=1535\">TipSheet column<\/a>listing some of my favorite quick, one line commands. Reader Wayne waskind enough to share with me his list of oft-used one-liners which hegraciously offered to share. I have not tested many of thesepersonally, but you always test things in a non-production environmentanyway, right? The command entry should all be on one line. I&#8217;vewrapped lines just to get everything displayed in the post.<br \/><span style=\"color: rgb(51, 51, 255);\">FSMO Roles          <\/span><br \/>ntdsutilroles Connections &#8220;Connect to server %logonserver%&#8221; Quit &#8220;selectOperation Target&#8221; &#8220;List roles for conn server&#8221; Quit Quit Quit<br \/>[JDH: This is really a series of steps, not a single command<br \/>expression]<br \/><span style=\"color: rgb(0, 0, 153);\">Domain Controllers        <\/span><br \/>Nltest \/dclist:%userdnsdomain%<br \/><span style=\"color: rgb(0, 0, 153);\">Domain Controller IP Configuration       <\/span><br \/>for \/f %i in (&#8216;dsquery server -domain %userdnsdomain% -o rdn&#8217;) do psexec \\\\%i ipconfig \/all<br \/><span style=\"color: rgb(0, 0, 153);\">Stale computer accounts        <\/span><br \/>dsquery computer domainroot -stalepwd 180 -limit 0<br \/><span style=\"color: rgb(0, 0, 153);\">Stale user accounts        <\/span><br \/> dsquery user domainroot -stalepwd 180 -limit 0<br \/><span style=\"color: rgb(0, 0, 153);\">Disabled user accounts        <\/span><br \/> dsquery user domainroot -disabled -limit 0<br \/><span style=\"color: rgb(0, 0, 153);\">AD Database disk usage        <\/span><br \/> for \/f %i in (&#8216;dsquery server -domain %userdnsdomain% -o rdn&#8217;) do dir \\\\%i\\admin$\\ntds<br \/><span style=\"color: rgb(0, 0, 153);\">Global Catalog Servers from DNS       <\/span><br \/> dnscmd %logonserver% \/enumrecords %userdnsdomain% _tcp | find \/i &#8220;3268&#8221;<br \/><span style=\"color: rgb(0, 0, 153);\">Global Catalog Servers from AD       <\/span><br \/> dsquery * &#8220;CN=Configuration,DC=forestRootDomain&#8221; -filter <span style=\"color: rgb(0, 0, 153);\">&#8220;(&amp;(objectCategory=nTDSDSA)(options:1.2.840.113556.1.4.803:=1))&#8221;<\/span><br \/><span style=\"color: rgb(0, 0, 153);\">Users with no logon script       <\/span><br \/>dsquery * domainroot -filter&#8221;(&amp;(objectCategory=Person)(objectClass=User)(!scriptPath=*))&#8221;-limit 0 -attr sAMAccountName sn givenName pwdLastSet distinguishedName<br \/><span style=\"color: rgb(0, 0, 153);\">User accounts with no pwd required      <\/span><br \/> dsquery * domainroot -filter &#8220;(&amp;(objectCategory=Person)(objectClass=User)(userAccountControl:1.2.840.113556.1.4.803:=32))&#8221;<br \/><span style=\"color: rgb(0, 0, 153);\">User accounts with no pwd expiry      <\/span><br \/>dsquery * domainroot -filter&#8221;(&amp;(objectCategory=Person)(objectClass=User)(userAccountControl:1.2.840.113556.1.4.803:=65536))&#8221;<br \/><span style=\"color: rgb(0, 0, 153);\">User accounts that are disabled       <\/span><br \/> dsquery * domainroot -filter &#8220;(&amp;(objectCategory=Person)(objectClass=User)(userAccountControl:1.2.840.113556.1.4.803:=2))&#8221;<br \/><span style=\"color: rgb(0, 0, 153);\">DNS Information         <\/span><br \/> for \/f %i in (&#8216;dsquery server -domain %userdnsdomain% -o rdn&#8217;) do dnscmd %i \/info<br \/><span style=\"color: rgb(0, 0, 153);\">DNS Zone Detailed information       <\/span><br \/> dnscmd \/zoneinfo %userdnsdomain%<br \/><span style=\"color: rgb(0, 0, 153);\">Garbage Collection and tombstone      <\/span><br \/>dsquery * &#8220;cn=Directory Service,cn=WindowsNT,cn=Services,cn=Configuration,DC=forestRootDomain&#8221; -attrgarbageCollPeriod tombstoneLifetime<br \/><span style=\"color: rgb(0, 0, 153);\">Netsh authorised DHCP Servers        <\/span><br \/> netsh dhcp show server<br \/><span style=\"color: rgb(0, 0, 153);\">DSQuery authorised DHCP Servers       <\/span><br \/> Dsquery * &#8220;cn=NetServices,cn=Services,cn=Configuration, DC=forestRootDomain&#8221; -attr dhcpServers<br \/><span style=\"color: rgb(0, 0, 153);\">DHCP server information        <\/span><br \/> netsh dhcp server \\\\DHCP_SERVER show all<br \/><span style=\"color: rgb(0, 0, 153);\">DHCP server dump        <\/span><br \/> netsh dhcp server \\\\DHCP_SERVER dump<br \/><span style=\"color: rgb(0, 0, 153);\">WINS serer information        <\/span><br \/> Netsh wins server \\\\WINS_SERVER dump<br \/><span style=\"color: rgb(0, 0, 153);\">Group Policy Verification Tool        <\/span><br \/> gpotool.exe \/checkacl \/verbose<br \/><span style=\"color: rgb(0, 0, 153);\">AD OU membership        <\/span><br \/> dsquery computer -limit 0<br \/><span style=\"color: rgb(0, 0, 153);\">AD OU membership        <\/span><br \/> dsquery user -limit 0<br \/><span style=\"color: rgb(0, 0, 153);\">List Service Principal Names       <\/span><br \/> for \/f %i in (&#8216;dsquery server -domain %userdnsdomain% -o rdn&#8217;) do setspn -L %i<br \/><span style=\"color: rgb(0, 0, 153);\">Compare DC Replica Object Count       <\/span><br \/> dsastat ?s:DC1;DC2;&#8230; ?b:Domain ?gcattrs:objectclass ?p:999<br \/><span style=\"color: rgb(0, 0, 153);\">Check AD ACLs         <\/span><br \/> acldiag dc=domainTree<br \/><span style=\"color: rgb(0, 0, 153);\">NTFRS Replica Sets        <\/span><br \/> for \/f %i in (&#8216;dsquery server -domain %userdnsdomain% -o rdn&#8217;) do  ntfrsutl sets %i<br \/><span style=\"color: rgb(0, 0, 153);\">NTFRS DS View         <\/span><br \/> for \/f %i in (&#8216;dsquery server -domain %userdnsdomain% -o rdn&#8217;) do  ntfrsutl ds %i<br \/><span style=\"color: rgb(0, 0, 153);\">Domain Controllers per site       <\/span><br \/> Dsquery * &#8220;CN=Sites,CN=Configuration,DC=forestRootDomain&#8221; -filter (objectCategory=Server)<br \/><span style=\"color: rgb(0, 0, 153);\">DNS Zones in AD         <\/span><br \/> for \/f %i in (&#8216;dsquery server -o rdn&#8217;) do Dsquery * -s %i domainroot -filter (objectCategory=dnsZone)<br \/><span style=\"color: rgb(0, 0, 153);\">Enumerate DNS Server Zones       <\/span><br \/> for \/f %i in (&#8216;dsquery server -o rdn&#8217;) do dnscmd %i \/enumzones<br \/><span style=\"color: rgb(0, 0, 153);\">Subnet information        <\/span><br \/> Dsquery subnet ?limit 0<br \/><span style=\"color: rgb(0, 0, 153);\">List Organisational Units       <\/span><br \/> Dsquery OU<br \/><span style=\"color: rgb(0, 0, 153);\">ACL on all OUs         <\/span><br \/> For \/f &#8220;delims=|&#8221; %i in (&#8216;dsquery OU&#8217;) do acldiag %i<br \/><span style=\"color: rgb(0, 0, 153);\">Domain Trusts         <\/span><br \/> nltest \/domain_trusts \/v<br \/><span style=\"color: rgb(0, 0, 153);\">Print DNS Zones         <\/span><br \/> dnscmd DNSServer \/zoneprint DNSZone<br \/><span style=\"color: rgb(0, 0, 153);\">Active DHCP leases        <\/span><br \/>For \/f %i in (DHCPServers.txt) do for \/f &#8220;delims=- &#8221; %j in (&#8216;&#8221;netshdhcp server \\\\%i show scope | find \/i &#8220;active&#8221;&#8221;&#8216;) do netsh dhcp server\\\\%i scope %j show clientsv5<br \/><span style=\"color: rgb(0, 0, 153);\">DHCP Server Active Scope  Info       <\/span><br \/> For \/f %i in (DHCPServers.txt) do netsh dhcp server \\\\%i show scope | find \/i &#8220;active&#8221;<br \/><span style=\"color: rgb(0, 0, 153);\">Resolve DHCP clients hostnames        <\/span><br \/>for \/f &#8220;tokens=1,2,3 delims=,&#8221; %i in (Output from &#8216;Find Subnets fromDHCP clients&#8217;) do @for \/f &#8220;tokens=2 delims=: &#8221; %m in (&#8216;&#8221;nslookup %j |find \/i &#8220;Name:&#8221;&#8221;&#8216;) do echo %m,%j,%k,%i<br \/><span style=\"color: rgb(0, 0, 153);\">Find two online PCs per subnet       <\/span><br \/>Echo. &gt; TwoClientsPerSubnet.txt &amp; for \/f &#8220;tokens=1,2,3,4delims=, &#8221; %i in (&#8216;&#8221;find \/i &#8220;pc&#8221; &#8216;Output from Resolve DHCP clientshostnames'&#8221;&#8216;) do for \/f &#8220;tokens=3 skip=1 delims=: &#8221; %m in (&#8216;&#8221;Find \/i \/c&#8221;%l&#8221; TwoClientsPerSubnet.txt&#8221;&#8216;) do If %m LEQ 1 for \/f %p in (&#8216;&#8221;ping -n1 %i | find \/i \/c &#8220;(0% loss&#8221;&#8221;&#8216;) do If %p==1 Echo %i,%j,%k,%l<br \/><span style=\"color: rgb(0, 0, 153);\">AD Subnet and Site Information       <\/span><br \/> dsquery * &#8220;CN=Subnets,CN=Sites,CN=Configuration,DC=forestRootDomain&#8221; -attr cn siteObject description location<br \/><span style=\"color: rgb(0, 0, 153);\">AD Site Information        <\/span><br \/> dsquery * &#8220;CN=Sites,CN=Configuration,DC=forestRootDomain&#8221; -attr cn description location -filter (objectClass=site) <br \/><span style=\"color: rgb(0, 0, 153);\">Printer Queue Objects in AD       <\/span><br \/> dsquery * domainroot -filter &#8220;(objectCategory=printQueue)&#8221; -limit 0<br \/><span style=\"color: rgb(0, 0, 153);\">Group Membership with user details      <\/span><br \/> dsget group &#8220;groupDN&#8221; -members | dsget user -samid -fn -mi -ln -display -empid -desc -office -tel -email -title -dept -mgr<br \/><span style=\"color: rgb(0, 0, 153);\">Total DHCP Scopes        <\/span><br \/> find \/i &#8220;subnet&#8221; &#8220;Output from DHCP server information&#8221; | find \/i &#8220;subnet&#8221;  <br \/><span style=\"color: rgb(0, 0, 153);\">Site Links and Cost        <\/span><br \/>dsquery * &#8220;CN=Sites,CN=Configuration,DC=forestRootDomain&#8221; -attr cn costdescription replInterval siteList -filter (objectClass=siteLink)<br \/><span style=\"color: rgb(0, 0, 153);\">Time gpresult         <\/span><br \/> timethis gpresult \/v<br \/><span style=\"color: rgb(0, 0, 153);\">Check time against Domain       <\/span><br \/> w32tm \/monitor \/computers:ForestRootPDC<br \/><span style=\"color: rgb(0, 0, 153);\">Domain Controller Diagnostics       <\/span><br \/> dcdiag \/s:%logonserver% \/v \/e \/c<br \/><span style=\"color: rgb(0, 0, 153);\">Domain Replication Bridgeheads       <\/span><br \/> repadmin \/bridgeheads<br \/><span style=\"color: rgb(0, 0, 153);\">Replication Failures from KCC       <\/span><br \/> repadmin \/failcache<br \/><span style=\"color: rgb(0, 0, 153);\">Inter-site Topology servers per site      <\/span><br \/> Repadmin \/istg * \/verbose<br \/><span style=\"color: rgb(0, 0, 153);\">Replication latency<\/span>        <br \/> repadmin \/latency \/verbose<br \/><span style=\"color: rgb(0, 0, 153);\">Queued replication requests       <\/span><br \/> repadmin \/queue *<br \/><span style=\"color: rgb(0, 0, 153);\">Show connections for a DC       <\/span><br \/> repadmin \/showconn *<br \/><span style=\"color: rgb(0, 0, 153);\">Replication summary        <\/span><br \/> Repadmin \/replsummary<br \/><span style=\"color: rgb(0, 0, 153);\">Show replication partners       <\/span><br \/> repadmin \/showrepl * \/all<br \/><span style=\"color: rgb(0, 0, 153);\">All DCs in the forest        <\/span><br \/> repadmin \/viewlist *<br \/><span style=\"color: rgb(0, 0, 153);\">ISTG from AD attributes        <\/span><br \/> dsquery * &#8220;CN=NTDS Site Settings,CN=siteName,CN=Sites,CN=Configuration,DC=forestRootDomain&#8221; -attr interSiteTopologyGenerator <br \/><span style=\"color: rgb(0, 0, 153);\">Return the object if KCC Intra\/Inter site is disabled for each site  <\/span><br \/> Dsquery site | dsquery * -attr * -filter &#8220;(|(Options:1.2.840.113556.1.4.803:=1)(Options:1.2.840.113556.1.4.803:=16))&#8221;<br \/><span style=\"color: rgb(0, 0, 153);\">Find all connection objects       <\/span><br \/> dsquery * forestRoot -filter (objectCategory=nTDSConnection) ?attr distinguishedName fromServer whenCreated displayName<br \/><span style=\"color: rgb(0, 0, 153);\">Find all connection schedules        <\/span><br \/> adfind -b &#8220;cn=Configuration,dc=qraps,dc=com,dc=au&#8221; -f &#8220;objectcategory=ntdsConnection&#8221; cn Schedule -csv<br \/><span style=\"color: rgb(0, 0, 153);\">Software Information for each serve<\/span>r      <br \/>for \/f %i in (Output from &#8216;Domain Controllers&#8217;) do psinfo \\\\%i &amp;filever \\\\%i\\admin$\\explorer.exe \\\\%i\\admin$\\system32\\vbscript.dll\\\\%i\\admin$\\system32\\kernel32.dll \\\\%i\\admin$\\system32\\wbem\\winmgmt.exe\\\\%i\\admin$\\system32\\oleaut32.dll<br \/>Check Terminal Services Delete Temp on Exit flag    <br \/>For \/f %i in (Output from &#8216;Domain Controllers&#8217;) do Reg query&#8221;\\\\%i\\HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\TerminalServer&#8221; \/v DeleteTempDirsOnExit<br \/><span style=\"color: rgb(0, 0, 153);\">For each XP workstation, query the current site and what Group Policy info <\/span><br \/>@dsquery * domainroot -filter&#8221;(&amp;(objectCategory=Computer)(operatingSystem=Windows XPProfessional))&#8221; -limit 0 -attr cn &gt; Workstations.txt &amp; @For \/f%i in (Workstations.txt) do @ping %i -n 1 &gt;NUL &amp; @if ErrorLevel0 If NOT ErrorLevel 1 @Echo %i &amp; for \/f &#8220;tokens=3&#8221; %k in (&#8216;&#8221;regquery &#8220;\\\\%i\\hklm\\software\\microsoft\\windows\\currentversion\\grouppolicy\\history&#8221; \/v DCName | Find \/i &#8220;DCName&#8221;&#8221;&#8216;) do @for \/f %m in(&#8216;&#8221;nltest \/server:%i \/dsgetsite | find \/i \/v &#8220;completedsuccessfully&#8221;&#8221;&#8216;) do @echo %i,%k,%m<br \/><span style=\"color: rgb(0, 0, 153);\">Information on existing GPOs       <\/span><br \/>dsquery * &#8220;CN=Policies,CN=System,domainRoot&#8221; -filter&#8221;(objectCategory=groupPolicyContainer)&#8221; -attr displayName cnwhenCreated gPCFileSysPath<br \/><span style=\"color: rgb(0, 0, 153);\">Copy all Group Policy .pol files      <\/span><br \/>for \/f &#8220;tokens=1-8 delims=\\&#8221; %i in (&#8216;dir \/b \/s\\\\%userdnsdomain%\\sysvol\\%userdnsdomain%\\policies\\*.pol&#8217;) do @echo copy\\\\%i\\%j\\%k\\%l\\%m\\%n\\%o %m_%n.pol<br \/><span style=\"color: rgb(0, 0, 153);\">Domain Controller Netlogon entries      <\/span><br \/>for \/f %i in (&#8216;dsquery server \/o rdn&#8217;) do echo %i &amp; reg query\\\\%i\\hklm\\system\\currentcontrolset\\services\\netlogon\\parameters<br \/><span style=\"color: rgb(0, 0, 153);\">WINS Statistics         <\/span><br \/> for \/f &#8220;tokens=1,2 delims=,&#8221; %i in (WINSServers.txt) do netsh wins server \\\\%i show statistics<br \/><span style=\"color: rgb(0, 0, 153);\">WINS Record counts per server       <\/span><br \/> for \/f &#8220;tokens=1,2 delims=,&#8221; %i in (WINSServers.txt) do netsh wins server \\\\%i show reccount <span style=\"color: rgb(0, 0, 153);\">%i<\/span><br \/><span style=\"color: rgb(0, 0, 153);\">WINS Server Information        <\/span><br \/> for \/f &#8220;tokens=2 delims=,&#8221; %i in (WINSServers.txt) do netsh wins server \\\\%i show info<br \/><span style=\"color: rgb(0, 0, 153);\">WINS Server Dump        <\/span><br \/> for \/f &#8220;tokens=2 delims=,&#8221; %i in (WINSServers.txt) do netsh wins server \\\\%i dump<br \/><span style=\"color: rgb(0, 0, 153);\">WINS Static Records per Server       <\/span><br \/> netsh wins server \\\\LocalWINSServer show database servers={} rectype=1<br \/><span style=\"color: rgb(0, 0, 153);\">Find policy display name given the GUID      <\/span><br \/> dsquery * &#8220;CN=Policies,CN=System,DC=domainRoot&#8221; -filter (objectCategory=groupPolicyContainer) -attr Name displayName<br \/><span style=\"color: rgb(0, 0, 153);\">Find empty groups        <\/span><br \/>dsquery * -filter &#8220;&amp;(objectCategory=group)(!member=*)&#8221; -limit 0-attr whenCreated whenChanged groupType sAMAccountNamedistinguishedName memberOf<br \/><span style=\"color: rgb(0, 0, 153);\">Find remote NIC bandwidth        <\/span><br \/> wmic \/node:%server% path Win32_PerfRawData_Tcpip_NetworkInterface GET Name,CurrentBandwidth<br \/><span style=\"color: rgb(0, 0, 153);\">Find remote free physical memory       <\/span><br \/> wmic \/node:%Computer% path Win32_OperatingSystem GET FreePhysicalMemory<br \/><span style=\"color: rgb(0, 0, 153);\">Find remote system information       <\/span><br \/> SystemInfo \/s %Computer%<br \/><span style=\"color: rgb(0, 0, 153);\">Disk statistics, including the number of files on the filesystem  <\/span><br \/> chkdsk \/i \/c<br \/><span style=\"color: rgb(0, 0, 153);\">Query IIS web sites        <\/span><br \/> iisweb \/s %Server% \/query &#8220;Default Web Site&#8221;<br \/><span style=\"color: rgb(0, 0, 153);\">Check port state and connectivity      <\/span><br \/> portqry -n %server% -e %endpoint% -v<br \/><span style=\"color: rgb(51, 51, 255);\">Forest\/Domain Functional Levels       <\/span><br \/>ldifde -d cn=partitions,cn=configuration,dc=%domain% -r&#8221;(|(systemFlags=3)(systemFlags=-2147483648))&#8221; -lmsds-behavior-version,dnsroot,ntmixeddomain,NetBIOSName -p subtree -fcon<br \/><span style=\"color: rgb(0, 0, 153);\">Forest\/Domain Functional Levels       <\/span><br \/>dsquery * cn=partitions,cn=configuration,dc=%domain% -filter&#8221;(|(systemFlags=3)(systemFlags=-2147483648))&#8221; -attrmsDS-Behavior-Version Name dnsroot ntmixeddomain NetBIOSName<br \/><span style=\"color: rgb(0, 0, 153);\">Find the parent of a process       <\/span><br \/> wmic path Win32_Process WHERE Name=&#8217;notepad.exe&#8217; GET Name,ParentProcessId<br \/><span style=\"color: rgb(0, 0, 153);\">Lookup SRV records from DNS       <\/span><br \/> nslookup -type=srv _ldap._tcp.dc._msdcs.{domainRoot}<br \/><span style=\"color: rgb(0, 0, 153);\">Find when the AD was installed       <\/span><br \/> dsquery * cn=configuration,DC=forestRootDomain -attr whencreated -scope base<br \/><span style=\"color: rgb(0, 0, 153);\">Enumerate the trusts from the specified domain     <\/span><br \/> dsquery * &#8220;CN=System,DC=domainRoot&#8221; -filter &#8220;(objectClass=trustedDomain)&#8221; -attr trustPartner flatName<br \/><span style=\"color: rgb(0, 0, 153);\">Find a DC for each trusted domain      <\/span><br \/>for \/f &#8220;skip=1&#8221; %i in (&#8216;&#8221;dsquery * CN=System,DC=domainRoot -filter(objectClass=trustedDomain) -attr trustPartner&#8221;&#8216;) do nltest \/dsgetdc:%i<br \/><span style=\"color: rgb(0, 0, 153);\">Check the notification packages installed on all DCs    <\/span><br \/>for \/f %i in (&#8216;dsquery server \/o rdn&#8217;) do @for \/f &#8220;tokens=4&#8243; %m in(&#8216;&#8221;reg query\\\\%i\\HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Lsa \/v&#8221;Notification Packages&#8221; | find \/i &#8220;Notification&#8221;&#8221;&#8216;) do @echo %i,%m<br \/><span style=\"color: rgb(0, 0, 153);\">List ACLs in SDDL format       <\/span><br \/> setacl -on %filepath% -ot file -actn list -lst f:sddl<br \/><span style=\"color: rgb(0, 0, 153);\">Find out if a user account is currently enabled or disabled   <\/span><br \/> dsquery user DC=%userdnsdomain:.=,DC=% -name %username% | dsget user -disabled -dn<br \/><span style=\"color: rgb(0, 0, 153);\">Find servers in the domain       <\/span><br \/> dsquery * domainroot -filter &#8220;(&amp;(objectCategory=Computer)(objectClass=Computer)(operatingSystem=*Server*))&#8221; -limit 0<br \/><span style=\"color: rgb(0, 0, 153);\">Open DS query window        <\/span><br \/> rundll32 dsquery,OpenQueryWindow<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I recently did a TipSheet column listing some of my favorite quick, one line commands. Reader Wayne was kind enough to share with me his list of oft-used one-liners which he graciously offered to share.<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[18,2],"tags":[],"class_list":["post-331","post","type-post","status-publish","format-standard","hentry","category-batchcmd","category-general"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/comments?post=331"}],"version-history":[{"count":0,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/331\/revisions"}],"wp:attachment":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/media?parent=331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/categories?post=331"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/tags?post=331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}